commit 7a8444126f7d552252f5be9bcc364babde9f5aed Author: Vodes <48185123+Vodes@users.noreply.github.com> Date: Wed Aug 30 17:14:11 2023 +0200 Initial push of existing project diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..5110ac8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,17 @@ +language: python + +python: 3.6.7 + +install: + - pip install -r requirements.txt + +script: + - mkdocs build --verbose --clean --strict + +deploy: + provider: pages + skip_cleanup: true + github_token: $github_token + local_dir: site + on: + branch: master diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..432758f --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright 2023-202x fumo.photos Team & contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0d8e0ef --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# bemani.guide + +bemani.guide, a compendium of information and guides written to ease headaches for a certain enigmatic place. \ No newline at end of file diff --git a/docs/about.md b/docs/about.md new file mode 100644 index 0000000..aec9d35 --- /dev/null +++ b/docs/about.md @@ -0,0 +1,36 @@ + + +# About this site + +This site was written by a IIDX player with the help of a few prominent friends. One day I hope to match their intellect, wish me luck. + +The philosophy behind writing these guides and the information contained within is to remove repetitive troubleshooting. By this point, every server has answered the same questions over and over again, hundreds of times. Maddening to see over the years, don't you think? + +While a search function may be present across several communities, it is often unused by users, something I have never found an answer as to why, but my hope is that I can confidently link specific sections of this site to resolve 99% of issues people bring up until it becomes the norm. Each beginner setup guide is built to minimalize user interaction with the data itself, and to keep things simple via hand-holding. For example, with modern improvements to tools, games can now be ran successfully without the user ever touching a single file from the game's data. Days have long past for users incorrectly modifying their ea3-config. + +Still, as long as this website helps even 1 user enjoy these games, then its goal has been met. Whether it be within the first hour of its posting, or years later, I will be satisfied if I meet that goal. + +  + +### Credits + +!!! tip "" + + - Friends that wished to remain anonymous: motivation, technical assistance, inspiration. + + - Passionate rhythm game players worldwide that allow these games to exist, thank you for making it a lot of fun to be involved in the scene and around you all. + + - Contributors for taking the time to add improvements to the site. + +### Contact + +!!! tip "" + **Please do not contact me to troubleshoot your problems, I will not respond.** + + In the time thinking about this site I have wondered how best to open contact for the betterment of the site and overall community. I wish to remain largely private because I do not want credit for this work, but if you wish to contact me regarding wanting to contribute, or even site inaccuracies, improvements, and solutions that worked for you but aren't listed... + + Feel free to email me at: + + I now run a private discord to accept user contributions from, feel free to email to gain access if you are looking to contribute to the site (also include what you'd like to contribute in the email, of course) + + I can't promise I'll respond, but if you see some changes relating to what you emailed, I certainly read what you sent. \ No newline at end of file diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 0000000..555dedf --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,115 @@ +# Changelog + +### What's New: + +!!! tip "April 8th, 2021" + + - Added Hello Pop'n Music Guide + + - Added Pop'n Peace guide + + - Various fixes and error code improvements for IIDX + + - Added new guide to extras section: Exclusive Audio Workarounds + +!!! tip "March 24th, 2021" + + - Added Nostalgia Op. 2 guide + + - Updated Forte guide + + - Added more external resources + +!!! tip "March 21st, 2021" + + - Added misc small improvements + + - Added jubeat rubber part information (Immense delay on this, apologies) + + - Added information about VW final hex edits + +!!! tip "December 21st, 2020" + + - HTTPS fixed + + - robots.txt changes + + - Cleaned up some Heroic Verse related content + + - Actually updated content I said I would update 2 months ago (sorry!) + +!!! tip "October 27th, 2020" + + - Added IIDX 27: Heroic Verse setup/faq/etc + +!!! tip "July 27th, 2020" + + - Updated Arcade Parts List + + - Added an External Resources Section (sorry for delay to those that submitted resources, busy time) + + - Updates to all main guides/SpiceTools coming soon. + +!!! tip "April 23rd, 2020" + + - Added some minor info about WASAPI shared mode for SDVX V + +!!! tip "April 11th, 2020" + + - Adjusted some troubleshooting + + - Added user contributed polling rate + + - Misc bits and pieces + +!!! tip "April 1st, 2020" + + - Added SDVX V guides + +!!! tip "March 14th, 2020" + + - Site back online (hello everyone) + + - Pop'n Usaneko setup/faq/hex edits + + - Spice pages updated + +!!! tip "March 11th, 2020" + + - Formatting fixes for hex edits + + - Minor tinkering with ASC/Parts sections + + - DDR Ace cleanup + + - Museca cleanup + faq/hex edits + + - Beatstream cleanup + + - Misc changes + + +!!! tip "March 10th, 2020" + + - Add DDR ACE setup/faq/hex edits + + - Add IIDX 26: ROOTAGE setup/faq/hex edits + + - Additional cleanup + +!!! tip "March 7th, 2020" + + - Add GITADORA EXCHAIN setup/faq/hex edits + +!!! tip "March 6th, 2020" + + - Add Parts Documentation + + - Add to part considerations to ASC section + + - CSS changes, formatting, cleanup + +  +!!! tip "March 5th, 2020" + + - Revive project (sorry it was dead for so long!) diff --git a/docs/css/base.css b/docs/css/base.css new file mode 100644 index 0000000..7778e88 --- /dev/null +++ b/docs/css/base.css @@ -0,0 +1,274 @@ +html { + /* The nav header is 3.5rem high, plus 20px for the margin-top of the + main container. */ + scroll-padding-top: calc(3.5rem + 20px); +} + +body > .container { + margin-top: 20px; +} + +.navbar.fixed-top { + position: -webkit-sticky; + position: sticky; +} + +.source-links { + float: right; +} + +.col-md-9 img { + max-width: 100%; +} + +pre, code { + background: #202020; + color: #959595; + border: 1px solid rgba(0,0,0,0.125); + border-radius: 0.25rem; +} + +pre { + padding: 0.5em; +} + +code { + padding: 1px 3px; +} + +pre code { + border: none; + /* Override styles from hljs theme */ + background: transparent !important; + padding: 0 !important; +} + +a code { + color: #2a9fd6; +} + +a:hover code { + color: #1d7097; +} + +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); +} + +footer { + margin-top: 10px; + margin-bottom: 10px; + text-align: center; + font-weight: 200; +} + +.modal-dialog { + margin-top: 60px; +} + +/* Style the admonitions. */ + +.admonition { + margin-bottom: 1em; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; + background-color: #131313; + line-height: 1.55; +} + +.admonition > .admonition-title { + margin: 0; + padding: 0.25rem 1rem; + background: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; + font-size: 1rem; +} + +.admonition > * { + margin-left: 1rem; + margin-right: 1rem; +} + +.admonition > *:not(.admonition-title):first-of-type, +.admonition > .admonition-title + * { + margin-top: 1rem; +} + +.admonition > *:last-child { + margin-bottom: 1rem; +} + +/* Style each kind of admonition. */ + +.admonition.note, .admonition.note > .admonition-title { + border-color: #6e2caf; +} + +.admonition.note > .admonition-title { + color: #fff; + background-color: #9933cc; +} + +.admonition.warning, .admonition.warning > .admonition-title { + border-color: #9d5b02; +} + +.admonition.warning > .admonition-title { + color: #fff; + background-color: #9d5b02; +} + +.admonition.danger, .admonition.danger > .admonition-title { + border-color: #cc00008a; +} + +.admonition.danger > .admonition-title { + color: #fff; + background-color: #cc00008a; +} + +/* + * Side navigation + * + * Scrollspy and affixed enhanced navigation to highlight sections and secondary + * sections of docs content. + */ + +.bs-sidebar.affix { + position: -webkit-sticky; + position: sticky; + /* The nav header is 3.5rem high, plus 20px for the margin-top of the + main container. */ + top: calc(3.5rem + 20px); +} + +.bs-sidebar.card { + padding: 0; +} + +/* Toggle (vertically flip) sidebar collapse icon */ +.bs-sidebar .navbar-toggler span { + -moz-transform: scale(1, -1); + -webkit-transform: scale(1, -1); + -o-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +.bs-sidebar .navbar-toggler.collapsed span { + -moz-transform: scale(1, 1); + -webkit-transform: scale(1, 1); + -o-transform: scale(1, 1); + -ms-transform: scale(1, 1); + transform: scale(1, 1); +} + +/* First level of nav */ +.bs-sidebar > .navbar-collapse > .nav { + padding-top: 10px; + padding-bottom: 10px; + border-radius: 5px; + width: 100%; +} + +/* All levels of nav */ +.bs-sidebar .nav > li > a { + display: block; + padding: 5px 20px; + z-index: 1; +} +.bs-sidebar .nav > li > a:hover, +.bs-sidebar .nav > li > a:focus { + text-decoration: none; + border-right: 1px solid; +} +.bs-sidebar .nav > li > a.active, +.bs-sidebar .nav > li > a.active:hover, +.bs-sidebar .nav > li > a.active:focus { + font-weight: bold; + background-color: transparent; + border-right: 1px solid; +} + +.bs-sidebar .nav .nav .nav { + margin-left: 1em; +} + +.bs-sidebar .nav > li > a { + font-weight: bold; +} + +.bs-sidebar .nav .nav > li > a { + font-weight: normal; +} + +.headerlink { + display: none; + padding-left: .5em; +} + +h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink{ + display:inline-block; +} + +@media (max-width: 991.98px) { + .navbar-collapse.show { + overflow-y: auto; + max-height: calc(100vh - 3.5rem); + } +} + +.dropdown-item.open { + color: #fff; + background-color: #2A9FD6; +} + +.dropdown-submenu > .dropdown-menu { + margin: 0 0 0 1.5rem; + padding: 0; + border-width: 0; +} + +.dropdown-submenu > a::after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #999999; + margin-top: 5px; + margin-right: -10px; +} + +.dropdown-submenu:hover > a::after { + border-left-color: #fff; +} + +@media (min-width: 992px) { + .dropdown-menu { + overflow-y: auto; + max-height: calc(100vh - 3.5rem); + } + + .dropdown-submenu { + position: relative; + } + + .dropdown-submenu > .dropdown-menu { + position: fixed !important; + margin-top: -9px; + margin-left: -2px; + border-width: 1px; + padding: 0.5rem 0; + } +} diff --git a/docs/css/bootstrap.min.css b/docs/css/bootstrap.min.css new file mode 100644 index 0000000..6ef41dc --- /dev/null +++ b/docs/css/bootstrap.min.css @@ -0,0 +1,11410 @@ +/*! + * Bootswatch v4.4.1 + * Homepage: https://bootswatch.com + * Copyright 2012-2019 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*/ + + +/*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +@import url("https://fonts.googleapis.com/css?family=Roboto:400,700"); +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #d9534f; + --orange: #fd7e14; + --yellow: #f0ad4e; + --green: #4BBF73; + --teal: #20c997; + --cyan: #1F9BCF; + --white: #fff; + --gray: #919aa1; + --gray-dark: #343a40; + --primary: #1a1a1a; + --secondary: #fff; + --success: #4BBF73; + --info: #1F9BCF; + --warning: #f0ad4e; + --danger: #d9534f; + --light: #fff; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace +} + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +article, +aside, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block +} + +body { + margin: 0; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #C8C8C8C2; + text-align: left; + background-color: #060606 +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important +} + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; + overflow: visible +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem +} + +p { + margin-top: 0; + margin-bottom: 1rem +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + text-decoration-skip-ink: none +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0 +} + +dt { + font-weight: 700 +} + +dd { + margin-bottom: .5rem; + margin-left: 0 +} + +blockquote { + margin: 0 0 1rem +} + +b, +strong { + font-weight: bolder +} + +small { + font-size: 80% +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +a { + color: #2A9FD6; + text-decoration: none; + background-color: transparent +} + +a:hover { + color: #1d7097; + text-decoration: underline +} + +a:not([href]) { + color: inherit; + text-decoration: none +} + +a:not([href]):hover { + color: inherit; + text-decoration: none +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto +} + +figure { + margin: 0 0 1rem +} + +img { + vertical-align: middle; + border-style: none +} + +svg { + overflow: hidden; + vertical-align: middle +} + +table { + border-collapse: collapse +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #555; + text-align: left; + caption-side: bottom +} + +th { + text-align: inherit +} + +label { + display: inline-block; + margin-bottom: 0.5rem +} + +button { + border-radius: 0 +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit +} + +button, +input { + overflow: visible +} + +button, +select { + text-transform: none +} + +select { + word-wrap: normal +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none +} + +input[type="radio"], +input[type="checkbox"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0 +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox +} + +textarea { + overflow: auto; + resize: vertical +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal +} + +progress { + vertical-align: baseline +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button +} + +output { + display: inline-block +} + +summary { + display: list-item; + cursor: pointer +} + +template { + display: none +} + +[hidden] { + display: none !important +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: #C8C8C8 +} + +h1, +.h1 { + font-size: 2.2rem +} + +h2, +.h2 { + font-size: 2.0rem +} + +h3, +.h3 { + font-size: 1.7rem +} + +h4, +.h4 { + font-size: 2rem +} + +h5, +.h5 { + font-size: 1.5rem +} + +h6, +.h6 { + font-size: 0.875rem +} + +.lead { + font-size: 1.09375rem; + font-weight: 300 +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2 +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2 +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2 +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2 +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1) +} + +small, +.small { + font-size: 80%; + font-weight: 400 +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3 +} + +.list-unstyled { + padding-left: 0; + list-style: none +} + +.list-inline { + padding-left: 0; + list-style: none +} + +.list-inline-item { + display: inline-block +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem +} + +.initialism { + font-size: 90%; + text-transform: uppercase +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.09375rem +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #555 +} + +.blockquote-footer::before { + content: "\2014\00A0" +} + +.img-fluid { + max-width: 100%; + height: auto +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #060606; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto +} + +.figure { + display: inline-block +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1 +} + +.figure-caption { + font-size: 90%; + color: #555 +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word +} + +a>code { + color: inherit +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700 +} + +pre { + display: block; + font-size: 87.5%; + color: inherit +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +@media (min-width: 576px) { + .container { + max-width: 540px + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px + } +} + +.container-fluid, +.container-sm, +.container-md, +.container-lg, +.container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +@media (min-width: 576px) { + .container, + .container-sm { + max-width: 540px + } +} + +@media (min-width: 768px) { + .container, + .container-sm, + .container-md { + max-width: 720px + } +} + +@media (min-width: 992px) { + .container, + .container-sm, + .container-md, + .container-lg { + max-width: 960px + } +} + +@media (min-width: 1200px) { + .container, + .container-sm, + .container-md, + .container-lg, + .container-xl { + max-width: 1140px + } +} + +.row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px +} + +.no-gutters { + margin-right: 0; + margin-left: 0 +} + +.no-gutters>.col, +.no-gutters>[class*="col-"] { + padding-right: 0; + padding-left: 0 +} + +.col-1, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-10, +.col-11, +.col-12, +.col, +.col-auto, +.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, +.col-sm, +.col-sm-auto, +.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, +.col-md, +.col-md-auto, +.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, +.col-lg, +.col-lg-auto, +.col-xl-1, +.col-xl-2, +.col-xl-3, +.col-xl-4, +.col-xl-5, +.col-xl-6, +.col-xl-7, +.col-xl-8, +.col-xl-9, +.col-xl-10, +.col-xl-11, +.col-xl-12, +.col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% +} + +.row-cols-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% +} + +.row-cols-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% +} + +.row-cols-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% +} + +.row-cols-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% +} + +.row-cols-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% +} + +.row-cols-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% +} + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% +} + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% +} + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% +} + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% +} + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% +} + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% +} + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% +} + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% +} + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% +} + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% +} + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% +} + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% +} + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% +} + +.order-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 +} + +.order-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 +} + +.order-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 +} + +.order-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 +} + +.order-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 +} + +.order-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 +} + +.order-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 +} + +.order-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 +} + +.order-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 +} + +.order-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 +} + +.order-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 +} + +.order-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 +} + +.order-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 +} + +.order-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 +} + +.order-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 +} + +.offset-1 { + margin-left: 8.3333333333% +} + +.offset-2 { + margin-left: 16.6666666667% +} + +.offset-3 { + margin-left: 25% +} + +.offset-4 { + margin-left: 33.3333333333% +} + +.offset-5 { + margin-left: 41.6666666667% +} + +.offset-6 { + margin-left: 50% +} + +.offset-7 { + margin-left: 58.3333333333% +} + +.offset-8 { + margin-left: 66.6666666667% +} + +.offset-9 { + margin-left: 75% +} + +.offset-10 { + margin-left: 83.3333333333% +} + +.offset-11 { + margin-left: 91.6666666667% +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-sm-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-sm-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-sm-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-sm-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-sm-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-sm-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-sm-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-sm-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-sm-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-sm-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-sm-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-sm-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-sm-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-sm-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-sm-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-sm-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-sm-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-sm-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-sm-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-sm-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-sm-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-sm-0 { + margin-left: 0 + } + .offset-sm-1 { + margin-left: 8.3333333333% + } + .offset-sm-2 { + margin-left: 16.6666666667% + } + .offset-sm-3 { + margin-left: 25% + } + .offset-sm-4 { + margin-left: 33.3333333333% + } + .offset-sm-5 { + margin-left: 41.6666666667% + } + .offset-sm-6 { + margin-left: 50% + } + .offset-sm-7 { + margin-left: 58.3333333333% + } + .offset-sm-8 { + margin-left: 66.6666666667% + } + .offset-sm-9 { + margin-left: 75% + } + .offset-sm-10 { + margin-left: 83.3333333333% + } + .offset-sm-11 { + margin-left: 91.6666666667% + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-md-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-md-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-md-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-md-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-md-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-md-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-md-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-md-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-md-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-md-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-md-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-md-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-md-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-md-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-md-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-md-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-md-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-md-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-md-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-md-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-md-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-md-0 { + margin-left: 0 + } + .offset-md-1 { + margin-left: 8.3333333333% + } + .offset-md-2 { + margin-left: 16.6666666667% + } + .offset-md-3 { + margin-left: 25% + } + .offset-md-4 { + margin-left: 33.3333333333% + } + .offset-md-5 { + margin-left: 41.6666666667% + } + .offset-md-6 { + margin-left: 50% + } + .offset-md-7 { + margin-left: 58.3333333333% + } + .offset-md-8 { + margin-left: 66.6666666667% + } + .offset-md-9 { + margin-left: 75% + } + .offset-md-10 { + margin-left: 83.3333333333% + } + .offset-md-11 { + margin-left: 91.6666666667% + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-lg-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-lg-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-lg-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-lg-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-lg-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-lg-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-lg-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-lg-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-lg-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-lg-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-lg-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-lg-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-lg-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-lg-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-lg-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-lg-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-lg-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-lg-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-lg-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-lg-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-lg-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-lg-0 { + margin-left: 0 + } + .offset-lg-1 { + margin-left: 8.3333333333% + } + .offset-lg-2 { + margin-left: 16.6666666667% + } + .offset-lg-3 { + margin-left: 25% + } + .offset-lg-4 { + margin-left: 33.3333333333% + } + .offset-lg-5 { + margin-left: 41.6666666667% + } + .offset-lg-6 { + margin-left: 50% + } + .offset-lg-7 { + margin-left: 58.3333333333% + } + .offset-lg-8 { + margin-left: 66.6666666667% + } + .offset-lg-9 { + margin-left: 75% + } + .offset-lg-10 { + margin-left: 83.3333333333% + } + .offset-lg-11 { + margin-left: 91.6666666667% + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-xl-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-xl-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-xl-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-xl-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-xl-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-xl-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-xl-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-xl-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-xl-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-xl-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-xl-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-xl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-xl-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-xl-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-xl-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-xl-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-xl-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-xl-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-xl-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-xl-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-xl-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-xl-0 { + margin-left: 0 + } + .offset-xl-1 { + margin-left: 8.3333333333% + } + .offset-xl-2 { + margin-left: 16.6666666667% + } + .offset-xl-3 { + margin-left: 25% + } + .offset-xl-4 { + margin-left: 33.3333333333% + } + .offset-xl-5 { + margin-left: 41.6666666667% + } + .offset-xl-6 { + margin-left: 50% + } + .offset-xl-7 { + margin-left: 58.3333333333% + } + .offset-xl-8 { + margin-left: 66.6666666667% + } + .offset-xl-9 { + margin-left: 75% + } + .offset-xl-10 { + margin-left: 83.3333333333% + } + .offset-xl-11 { + margin-left: 91.6666666667% + } +} + +.table { + width: 100%; + margin-bottom: 1rem; + color: #fff +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #282828 +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #282828 +} + +.table tbody+tbody { + border-top: 2px solid #282828 +} + +.table-sm th, +.table-sm td { + padding: 0.3rem +} + +.table-bordered { + border: 1px solid #282828 +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #282828 +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody+tbody { + border: 0 +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05) +} + +.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075) +} + +.table-primary, +.table-primary>th, +.table-primary>td { + background-color: #c3e4f4 +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody+tbody { + border-color: #90cdea +} + +.table-hover .table-primary:hover { + background-color: #addaf0 +} + +.table-hover .table-primary:hover>td, +.table-hover .table-primary:hover>th { + background-color: #addaf0 +} + +.table-secondary, +.table-secondary>th, +.table-secondary>td { + background-color: #cfcfcf +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody+tbody { + border-color: #a7a7a7 +} + +.table-hover .table-secondary:hover { + background-color: #c2c2c2 +} + +.table-hover .table-secondary:hover>td, +.table-hover .table-secondary:hover>th { + background-color: #c2c2c2 +} + +.table-success, +.table-success>th, +.table-success>td { + background-color: #d9eab8 +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody+tbody { + border-color: #b8d77a +} + +.table-hover .table-success:hover { + background-color: #cee4a4 +} + +.table-hover .table-success:hover>td, +.table-hover .table-success:hover>th { + background-color: #cee4a4 +} + +.table-info, +.table-info>th, +.table-info>td { + background-color: #e2c6f1 +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody+tbody { + border-color: #ca95e4 +} + +.table-hover .table-info:hover { + background-color: #d8b2ec +} + +.table-hover .table-info:hover>td, +.table-hover .table-info:hover>th { + background-color: #d8b2ec +} + +.table-warning, +.table-warning>th, +.table-warning>td { + background-color: #ffdeb8 +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody+tbody { + border-color: #ffc17a +} + +.table-hover .table-warning:hover { + background-color: #ffd29f +} + +.table-hover .table-warning:hover>td, +.table-hover .table-warning:hover>th { + background-color: #ffd29f +} + +.table-danger, +.table-danger>th, +.table-danger>td { + background-color: #f1b8b8 +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody+tbody { + border-color: #e47a7a +} + +.table-hover .table-danger:hover { + background-color: #eda3a3 +} + +.table-hover .table-danger:hover>td, +.table-hover .table-danger:hover>th { + background-color: #eda3a3 +} + +.table-light, +.table-light>th, +.table-light>td { + background-color: #c1c1c1 +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody+tbody { + border-color: #8c8c8c +} + +.table-hover .table-light:hover { + background-color: #b4b4b4 +} + +.table-hover .table-light:hover>td, +.table-hover .table-light:hover>th { + background-color: #b4b4b4 +} + +.table-dark, +.table-dark>th, +.table-dark>td { + background-color: #e8e9e8 +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody+tbody { + border-color: #d4d5d5 +} + +.table-hover .table-dark:hover { + background-color: #dbdddb +} + +.table-hover .table-dark:hover>td, +.table-hover .table-dark:hover>th { + background-color: #dbdddb +} + +.table-active, +.table-active>th, +.table-active>td { + background-color: rgba(255, 255, 255, 0.075) +} + +.table-hover .table-active:hover { + background-color: rgba(242, 242, 242, 0.075) +} + +.table-hover .table-active:hover>td, +.table-hover .table-active:hover>th { + background-color: rgba(242, 242, 242, 0.075) +} + +.table .thead-dark th { + color: #fff; + background-color: #888; + border-color: #757575 +} + +.table .thead-light th { + color: #282828; + background-color: #e9ecef; + border-color: #282828 +} + +.table-dark { + color: #fff; + background-color: #888 +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #757575 +} + +.table-dark.table-bordered { + border: 0 +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05) +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075) +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-sm>.table-bordered { + border: 0 + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-md>.table-bordered { + border: 0 + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-lg>.table-bordered { + border: 0 + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-xl>.table-bordered { + border: 0 + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch +} + +.table-responsive>.table-bordered { + border: 0 +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1rem; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #282828; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #fff; + border-radius: 0.25rem; + -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + -webkit-transition: none; + transition: none + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0 +} + +.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #282828 +} + +.form-control:focus { + color: #282828; + background-color: #fff; + border-color: #95cfeb; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.form-control::-webkit-input-placeholder { + color: #555; + opacity: 1 +} + +.form-control::-ms-input-placeholder { + color: #555; + opacity: 1 +} + +.form-control::placeholder { + color: #555; + opacity: 1 +} + +.form-control:disabled, +.form-control[readonly] { + background-color: #ADAFAE; + opacity: 1 +} + +select.form-control:focus::-ms-value { + color: #282828; + background-color: #fff +} + +.form-control-file, +.form-control-range { + display: block; + width: 100% +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5 +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.09375rem; + line-height: 1.5 +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.765625rem; + line-height: 1.5 +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 0.875rem; + line-height: 1.5; + color: #ADAFAE; + background-color: transparent; + border: solid transparent; + border-width: 1px 0 +} + +.form-control-plaintext.form-control-sm, +.form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0 +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5; + border-radius: 0.2rem +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.09375rem; + line-height: 1.5; + border-radius: 0.3rem +} + +select.form-control[size], +select.form-control[multiple] { + height: auto +} + +textarea.form-control { + height: auto +} + +.form-group { + margin-bottom: 1rem +} + +.form-text { + display: block; + margin-top: 0.25rem +} + +.form-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px +} + +.form-row>.col, +.form-row>[class*="col-"] { + padding-right: 5px; + padding-left: 5px +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #555 +} + +.form-check-label { + margin-bottom: 0 +} + +.form-check-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0 +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #77B300 +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.765625rem; + line-height: 1.5; + color: #fff; + background-color: #77b300; + border-radius: 0.25rem +} + +.was-validated:valid ~ .valid-feedback, +.was-validated:valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block +} + +.was-validated .form-control:valid, +.form-control.is-valid { + border-color: #77B300; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2377B300' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .form-control:valid:focus, +.form-control.is-valid:focus { + border-color: #77B300; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.was-validated textarea.form-control:valid, +textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem) +} + +.was-validated .custom-select:valid, +.custom-select.is-valid { + border-color: #77B300; + padding-right: calc(0.75em + 2.5625rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2377B300' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .custom-select:valid:focus, +.custom-select.is-valid:focus { + border-color: #77B300; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.was-validated .form-check-input:valid ~ .form-check-label, +.form-check-input.is-valid ~ .form-check-label { + color: #77B300 +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, +.form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, +.custom-control-input.is-valid ~ .custom-control-label { + color: #77B300 +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, +.custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #77B300 +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, +.custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #99e600; + background-color: #99e600 +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, +.custom-control-input.is-valid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #77B300 +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, +.custom-file-input.is-valid ~ .custom-file-label { + border-color: #77B300 +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, +.custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #77B300; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #CC0000 +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.765625rem; + line-height: 1.5; + color: #fff; + background-color: #cc0000; + border-radius: 0.25rem +} + +.was-validated:invalid ~ .invalid-feedback, +.was-validated:invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block +} + +.was-validated .form-control:invalid, +.form-control.is-invalid { + border-color: #CC0000; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23CC0000' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23CC0000' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .form-control:invalid:focus, +.form-control.is-invalid:focus { + border-color: #CC0000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.was-validated textarea.form-control:invalid, +textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem) +} + +.was-validated .custom-select:invalid, +.custom-select.is-invalid { + border-color: #CC0000; + padding-right: calc(0.75em + 2.5625rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23CC0000' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23CC0000' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .custom-select:invalid:focus, +.custom-select.is-invalid:focus { + border-color: #CC0000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.was-validated .form-check-input:invalid ~ .form-check-label, +.form-check-input.is-invalid ~ .form-check-label { + color: #CC0000 +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, +.form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, +.custom-control-input.is-invalid ~ .custom-control-label { + color: #CC0000 +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, +.custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #CC0000 +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, +.custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: red; + background-color: red +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #CC0000 +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, +.custom-file-input.is-invalid ~ .custom-file-label { + border-color: #CC0000 +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, +.custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #CC0000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.form-inline { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.form-inline .form-check { + width: 100% +} + +@media (min-width: 576px) { + .form-inline label { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0 + } + .form-inline .form-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0 + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle + } + .form-inline .form-control-plaintext { + display: inline-block + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto + } + .form-inline .form-check { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0 + } + .form-inline .form-check-input { + position: relative; + -ms-flex-negative: 0; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0 + } + .form-inline .custom-control { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center + } + .form-inline .custom-control-label { + margin-bottom: 0 + } +} + +.btn { + display: inline-block; + font-weight: 400; + color: #ADAFAE; + text-align: center; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 1rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.25rem; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .btn { + -webkit-transition: none; + transition: none + } +} + +.btn:hover { + color: #ADAFAE; + text-decoration: none +} + +.btn:focus, +.btn.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.btn.disabled, +.btn:disabled { + opacity: 0.65 +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none +} + +.btn-primary { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-primary:hover { + color: #fff; + background-color: #2387b7; + border-color: #2180ac +} + +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #2387b7; + border-color: #2180ac; + -webkit-box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5); + box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5) +} + +.btn-primary.disabled, +.btn-primary:disabled { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-primary:not(:disabled):not(.disabled):active, +.btn-primary:not(:disabled):not(.disabled).active, +.show>.btn-primary.dropdown-toggle { + color: #fff; + background-color: #2180ac; + border-color: #1f78a1 +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, +.btn-primary:not(:disabled):not(.disabled).active:focus, +.show>.btn-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5); + box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5) +} + +.btn-secondary { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-secondary:hover { + color: #fff; + background-color: #424242; + border-color: #3c3b3b +} + +.btn-secondary:focus, +.btn-secondary.focus { + color: #fff; + background-color: #424242; + border-color: #3c3b3b; + -webkit-box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); + box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5) +} + +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-secondary:not(:disabled):not(.disabled):active, +.btn-secondary:not(:disabled):not(.disabled).active, +.show>.btn-secondary.dropdown-toggle { + color: #fff; + background-color: #3c3b3b; + border-color: #353535 +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, +.btn-secondary:not(:disabled):not(.disabled).active:focus, +.show>.btn-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); + box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5) +} + +.btn-success { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-success:hover { + color: #fff; + background-color: #5e8d00; + border-color: #558000 +} + +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #5e8d00; + border-color: #558000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5) +} + +.btn-success.disabled, +.btn-success:disabled { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-success:not(:disabled):not(.disabled):active, +.btn-success:not(:disabled):not(.disabled).active, +.show>.btn-success.dropdown-toggle { + color: #fff; + background-color: #558000; + border-color: #4d7300 +} + +.btn-success:not(:disabled):not(.disabled):active:focus, +.btn-success:not(:disabled):not(.disabled).active:focus, +.show>.btn-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5) +} + +.btn-info { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-info:hover { + color: #fff; + background-color: #822bad; + border-color: #7a29a3 +} + +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #822bad; + border-color: #7a29a3; + -webkit-box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5); + box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5) +} + +.btn-info.disabled, +.btn-info:disabled { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-info:not(:disabled):not(.disabled):active, +.btn-info:not(:disabled):not(.disabled).active, +.show>.btn-info.dropdown-toggle { + color: #fff; + background-color: #7a29a3; + border-color: #732699 +} + +.btn-info:not(:disabled):not(.disabled):active:focus, +.btn-info:not(:disabled):not(.disabled).active:focus, +.show>.btn-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5); + box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5) +} + +.btn-warning { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-warning:hover { + color: #fff; + background-color: #d97400; + border-color: #cc6d00 +} + +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #d97400; + border-color: #cc6d00; + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5) +} + +.btn-warning.disabled, +.btn-warning:disabled { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-warning:not(:disabled):not(.disabled):active, +.btn-warning:not(:disabled):not(.disabled).active, +.show>.btn-warning.dropdown-toggle { + color: #fff; + background-color: #cc6d00; + border-color: #bf6600 +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, +.btn-warning:not(:disabled):not(.disabled).active:focus, +.show>.btn-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5) +} + +.btn-danger { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-danger:hover { + color: #fff; + background-color: #a60000; + border-color: #990000 +} + +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #a60000; + border-color: #990000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5) +} + +.btn-danger.disabled, +.btn-danger:disabled { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-danger:not(:disabled):not(.disabled):active, +.btn-danger:not(:disabled):not(.disabled).active, +.show>.btn-danger.dropdown-toggle { + color: #fff; + background-color: #990000; + border-color: #8c0000 +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, +.btn-danger:not(:disabled):not(.disabled).active:focus, +.show>.btn-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5) +} + +.btn-light { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-light:hover { + color: #fff; + background-color: #0f0f0f; + border-color: #090808 +} + +.btn-light:focus, +.btn-light.focus { + color: #fff; + background-color: #0f0f0f; + border-color: #090808; + -webkit-box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5); + box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5) +} + +.btn-light.disabled, +.btn-light:disabled { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-light:not(:disabled):not(.disabled):active, +.btn-light:not(:disabled):not(.disabled).active, +.show>.btn-light.dropdown-toggle { + color: #fff; + background-color: #090808; + border-color: #020202 +} + +.btn-light:not(:disabled):not(.disabled):active:focus, +.btn-light:not(:disabled):not(.disabled).active:focus, +.show>.btn-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5); + box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5) +} + +.btn-dark { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-dark:hover { + color: #fff; + background-color: #9a9c9b; + border-color: #939695 +} + +.btn-dark:focus, +.btn-dark.focus { + color: #fff; + background-color: #9a9c9b; + border-color: #939695; + -webkit-box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5); + box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5) +} + +.btn-dark.disabled, +.btn-dark:disabled { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-dark:not(:disabled):not(.disabled):active, +.btn-dark:not(:disabled):not(.disabled).active, +.show>.btn-dark.dropdown-toggle { + color: #fff; + background-color: #939695; + border-color: #8d908e +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, +.btn-dark:not(:disabled):not(.disabled).active:focus, +.show>.btn-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5); + box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5) +} + +.btn-outline-primary { + color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-outline-primary:focus, +.btn-outline-primary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5) +} + +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: #2A9FD6; + background-color: transparent +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, +.btn-outline-primary:not(:disabled):not(.disabled).active, +.show>.btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, +.btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5) +} + +.btn-outline-secondary { + color: #555; + border-color: #555 +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-outline-secondary:focus, +.btn-outline-secondary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); + box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5) +} + +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #555; + background-color: transparent +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, +.btn-outline-secondary:not(:disabled):not(.disabled).active, +.show>.btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, +.btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); + box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5) +} + +.btn-outline-success { + color: #77B300; + border-color: #77B300 +} + +.btn-outline-success:hover { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-outline-success:focus, +.btn-outline-success.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5) +} + +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #77B300; + background-color: transparent +} + +.btn-outline-success:not(:disabled):not(.disabled):active, +.btn-outline-success:not(:disabled):not(.disabled).active, +.show>.btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, +.btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5) +} + +.btn-outline-info { + color: #9933CC; + border-color: #9933CC +} + +.btn-outline-info:hover { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-outline-info:focus, +.btn-outline-info.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5); + box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5) +} + +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #9933CC; + background-color: transparent +} + +.btn-outline-info:not(:disabled):not(.disabled):active, +.btn-outline-info:not(:disabled):not(.disabled).active, +.show>.btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, +.btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5); + box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5) +} + +.btn-outline-warning { + color: #FF8800; + border-color: #FF8800 +} + +.btn-outline-warning:hover { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-outline-warning:focus, +.btn-outline-warning.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5) +} + +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #FF8800; + background-color: transparent +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, +.btn-outline-warning:not(:disabled):not(.disabled).active, +.show>.btn-outline-warning.dropdown-toggle { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, +.btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5) +} + +.btn-outline-danger { + color: #CC0000; + border-color: #CC0000 +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-outline-danger:focus, +.btn-outline-danger.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5) +} + +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #CC0000; + background-color: transparent +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, +.btn-outline-danger:not(:disabled):not(.disabled).active, +.show>.btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, +.btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5) +} + +.btn-outline-light { + color: #222; + border-color: #222 +} + +.btn-outline-light:hover { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-outline-light:focus, +.btn-outline-light.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5); + box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5) +} + +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #222; + background-color: transparent +} + +.btn-outline-light:not(:disabled):not(.disabled):active, +.btn-outline-light:not(:disabled):not(.disabled).active, +.show>.btn-outline-light.dropdown-toggle { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, +.btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5); + box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5) +} + +.btn-outline-dark { + color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-outline-dark:focus, +.btn-outline-dark.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5); + box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5) +} + +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #ADAFAE; + background-color: transparent +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, +.btn-outline-dark:not(:disabled):not(.disabled).active, +.show>.btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, +.btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5); + box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5) +} + +.btn-link { + font-weight: 400; + color: #2A9FD6; + text-decoration: none +} + +.btn-link:hover { + color: #1d7097; + text-decoration: underline +} + +.btn-link:focus, +.btn-link.focus { + text-decoration: underline; + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-link:disabled, +.btn-link.disabled { + color: #555; + pointer-events: none +} + +.btn-lg, +.btn-group-lg>.btn { + padding: 0.5rem 1rem; + font-size: 1.09375rem; + line-height: 1.5; + border-radius: 0.3rem +} + +.btn-sm, +.btn-group-sm>.btn { + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5; + border-radius: 0.2rem +} + +.btn-block { + display: block; + width: 100% +} + +.btn-block+.btn-block { + margin-top: 0.5rem +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100% +} + +.fade { + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear +} + +@media (prefers-reduced-motion: reduce) { + .fade { + -webkit-transition: none; + transition: none + } +} + +.fade:not(.show) { + opacity: 0 +} + +.collapse:not(.show) { + display: none +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + -webkit-transition: none; + transition: none + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative +} + +.dropdown-toggle { + white-space: nowrap +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent +} + +.dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 0.875rem; + color: #ADAFAE; + text-align: left; + list-style: none; + background-color: #282828; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem +} + +.dropdown-menu-left { + right: auto; + left: 0 +} + +.dropdown-menu-right { + right: 0; + left: auto +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0 + } + .dropdown-menu-sm-right { + right: 0; + left: auto + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0 + } + .dropdown-menu-md-right { + right: 0; + left: auto + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0 + } + .dropdown-menu-lg-right { + right: 0; + left: auto + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0 + } + .dropdown-menu-xl-right { + right: 0; + left: auto + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropright .dropdown-toggle::after { + vertical-align: 0 +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: "" +} + +.dropleft .dropdown-toggle::after { + display: none +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0 +} + +.dropdown-menu[x-placement^="top"], +.dropdown-menu[x-placement^="right"], +.dropdown-menu[x-placement^="bottom"], +.dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #222 +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #fff; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0 +} + +.dropdown-item:hover, +.dropdown-item:focus { + color: #fff; + text-decoration: none; + background-color: #2A9FD6 +} + +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #2A9FD6 +} + +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #555; + pointer-events: none; + background-color: transparent +} + +.dropdown-menu.show { + display: block +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.765625rem; + color: #555; + white-space: nowrap +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #fff +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle +} + +.btn-group>.btn, +.btn-group-vertical>.btn { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto +} + +.btn-group>.btn:hover, +.btn-group-vertical>.btn:hover { + z-index: 1 +} + +.btn-group>.btn:focus, +.btn-group>.btn:active, +.btn-group>.btn.active, +.btn-group-vertical>.btn:focus, +.btn-group-vertical>.btn:active, +.btn-group-vertical>.btn.active { + z-index: 1 +} + +.btn-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start +} + +.btn-toolbar .input-group { + width: auto +} + +.btn-group>.btn:not(:first-child), +.btn-group>.btn-group:not(:first-child) { + margin-left: -1px +} + +.btn-group>.btn:not(:last-child):not(.dropdown-toggle), +.btn-group>.btn-group:not(:last-child)>.btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group>.btn:not(:first-child), +.btn-group>.btn-group:not(:first-child)>.btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0 +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0 +} + +.btn-sm+.dropdown-toggle-split, +.btn-group-sm>.btn+.dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem +} + +.btn-lg+.dropdown-toggle-split, +.btn-group-lg>.btn+.dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem +} + +.btn-group-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center +} + +.btn-group-vertical>.btn, +.btn-group-vertical>.btn-group { + width: 100% +} + +.btn-group-vertical>.btn:not(:first-child), +.btn-group-vertical>.btn-group:not(:first-child) { + margin-top: -1px +} + +.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical>.btn-group:not(:last-child)>.btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical>.btn:not(:first-child), +.btn-group-vertical>.btn-group:not(:first-child)>.btn { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.btn-group-toggle>.btn, +.btn-group-toggle>.btn-group>.btn { + margin-bottom: 0 +} + +.btn-group-toggle>.btn input[type="radio"], +.btn-group-toggle>.btn input[type="checkbox"], +.btn-group-toggle>.btn-group>.btn input[type="radio"], +.btn-group-toggle>.btn-group>.btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none +} + +.input-group { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100% +} + +.input-group>.form-control, +.input-group>.form-control-plaintext, +.input-group>.custom-select, +.input-group>.custom-file { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + min-width: 0; + margin-bottom: 0 +} + +.input-group>.form-control+.form-control, +.input-group>.form-control+.custom-select, +.input-group>.form-control+.custom-file, +.input-group>.form-control-plaintext+.form-control, +.input-group>.form-control-plaintext+.custom-select, +.input-group>.form-control-plaintext+.custom-file, +.input-group>.custom-select+.form-control, +.input-group>.custom-select+.custom-select, +.input-group>.custom-select+.custom-file, +.input-group>.custom-file+.form-control, +.input-group>.custom-file+.custom-select, +.input-group>.custom-file+.custom-file { + margin-left: -1px +} + +.input-group>.form-control:focus, +.input-group>.custom-select:focus, +.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3 +} + +.input-group>.custom-file .custom-file-input:focus { + z-index: 4 +} + +.input-group>.form-control:not(:last-child), +.input-group>.custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>.form-control:not(:first-child), +.input-group>.custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group>.custom-file { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.input-group>.custom-file:not(:last-child) .custom-file-label, +.input-group>.custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>.custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group-prepend, +.input-group-append { + display: -webkit-box; + display: -ms-flexbox; + display: flex +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2 +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3 +} + +.input-group-prepend .btn+.btn, +.input-group-prepend .btn+.input-group-text, +.input-group-prepend .input-group-text+.input-group-text, +.input-group-prepend .input-group-text+.btn, +.input-group-append .btn+.btn, +.input-group-append .btn+.input-group-text, +.input-group-append .input-group-text+.input-group-text, +.input-group-append .input-group-text+.btn { + margin-left: -1px +} + +.input-group-prepend { + margin-right: -1px +} + +.input-group-append { + margin-left: -1px +} + +.input-group-text { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #282828; + border: 1px solid transparent; + border-radius: 0.25rem +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0 +} + +.input-group-lg>.form-control:not(textarea), +.input-group-lg>.custom-select { + height: calc(1.5em + 1rem + 2px) +} + +.input-group-lg>.form-control, +.input-group-lg>.custom-select, +.input-group-lg>.input-group-prepend>.input-group-text, +.input-group-lg>.input-group-append>.input-group-text, +.input-group-lg>.input-group-prepend>.btn, +.input-group-lg>.input-group-append>.btn { + padding: 0.5rem 1rem; + font-size: 1.09375rem; + line-height: 1.5; + border-radius: 0.3rem +} + +.input-group-sm>.form-control:not(textarea), +.input-group-sm>.custom-select { + height: calc(1.5em + 0.5rem + 2px) +} + +.input-group-sm>.form-control, +.input-group-sm>.custom-select, +.input-group-sm>.input-group-prepend>.input-group-text, +.input-group-sm>.input-group-append>.input-group-text, +.input-group-sm>.input-group-prepend>.btn, +.input-group-sm>.input-group-append>.btn { + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5; + border-radius: 0.2rem +} + +.input-group-lg>.custom-select, +.input-group-sm>.custom-select { + padding-right: 2rem +} + +.input-group>.input-group-prepend>.btn, +.input-group>.input-group-prepend>.input-group-text, +.input-group>.input-group-append:not(:last-child)>.btn, +.input-group>.input-group-append:not(:last-child)>.input-group-text, +.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle), +.input-group>.input-group-append:last-child>.input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>.input-group-append>.btn, +.input-group>.input-group-append>.input-group-text, +.input-group>.input-group-prepend:not(:first-child)>.btn, +.input-group>.input-group-prepend:not(:first-child)>.input-group-text, +.input-group>.input-group-prepend:first-child>.btn:not(:first-child), +.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.custom-control { + position: relative; + display: block; + min-height: 1.3125rem; + padding-left: 1.5rem +} + +.custom-control-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.15625rem; + opacity: 0 +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #2A9FD6; + background-color: #2A9FD6 +} + +.custom-control-input:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #95cfeb +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #c0e2f3; + border-color: #c0e2f3 +} + +.custom-control-input[disabled] ~ .custom-control-label, +.custom-control-input:disabled ~ .custom-control-label { + color: #555 +} + +.custom-control-input[disabled] ~ .custom-control-label::before, +.custom-control-input:disabled ~ .custom-control-label::before { + background-color: #ADAFAE +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top +} + +.custom-control-label::before { + position: absolute; + top: 0.15625rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #888 solid 1px +} + +.custom-control-label::after { + position: absolute; + top: 0.15625rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50% +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e") +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #2A9FD6; + background-color: #2A9FD6 +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e") +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-radio .custom-control-label::before { + border-radius: 50% +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-switch { + padding-left: 2.25rem +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem +} + +.custom-switch .custom-control-label::after { + top: calc(0.15625rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #888; + border-radius: 0.5rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + -webkit-transition: none; + transition: none + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + -webkit-transform: translateX(0.75rem); + transform: translateX(0.75rem) +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 2rem 0.375rem 1rem; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #282828; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px; + border: 1px solid #fff; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +.custom-select:focus { + border-color: #95cfeb; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-select:focus::-ms-value { + color: #282828; + background-color: #fff +} + +.custom-select[multiple], +.custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 1rem; + background-image: none +} + +.custom-select:disabled { + color: #555; + background-color: #e9ecef +} + +.custom-select::-ms-expand { + display: none +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #282828 +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.765625rem +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.09375rem +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0 +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0 +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #95cfeb; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #ADAFAE +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse" +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse) +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + background-color: #fff; + border: 1px solid #282828; + border-radius: 0.25rem +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 1rem; + line-height: 1.5; + color: #fff; + content: "Browse"; + background-color: #282828; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0 +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +.custom-range:focus { + outline: none +} + +.custom-range:focus::-webkit-slider-thumb { + -webkit-box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-range::-moz-focus-outer { + border: 0 +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #2A9FD6; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #c0e2f3 +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #2A9FD6; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -webkit-transition: none; + transition: none + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #c0e2f3 +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #2A9FD6; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -webkit-transition: none; + transition: none + } +} + +.custom-range::-ms-thumb:active { + background-color: #c0e2f3 +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #888 +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #888 +} + +.custom-range:disabled::-moz-range-track { + cursor: default +} + +.custom-range:disabled::-ms-thumb { + background-color: #888 +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + -webkit-transition: none; + transition: none + } +} + +.nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.nav-link { + display: block; + padding: 0.5rem 1rem +} + +.nav-link:hover, +.nav-link:focus { + text-decoration: none +} + +.nav-link.disabled { + color: #555; + pointer-events: none; + cursor: default +} + +.nav-tabs { + border-bottom: 1px solid #282828 +} + +.nav-tabs .nav-item { + margin-bottom: -1px +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem +} + +.nav-tabs .nav-link:hover, +.nav-tabs .nav-link:focus { + border-color: #282828 +} + +.nav-tabs .nav-link.disabled { + color: #555; + background-color: transparent; + border-color: transparent +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #fff; + background-color: #282828; + border-color: #282828 +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav-pills .nav-link { + border-radius: 0.25rem +} + +.nav-pills .nav-link.active, +.nav-pills .show>.nav-link { + color: #fff; + background-color: #2A9FD6 +} + +.nav-fill .nav-item { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center +} + +.tab-content>.tab-pane { + display: none +} + +.tab-content>.active { + display: block +} + +.navbar { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem +} + +.navbar .container, +.navbar .container-fluid, +.navbar .container-sm, +.navbar .container-md, +.navbar .container-lg, +.navbar .container-xl { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3359375rem; + padding-bottom: 0.3359375rem; + margin-right: 1rem; + font-size: 1.09375rem; + line-height: inherit; + white-space: nowrap +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none +} + +.navbar-nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0 +} + +.navbar-nav .dropdown-menu { + position: static; + float: none +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.09375rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem +} + +.navbar-toggler:hover, +.navbar-toggler:focus { + text-decoration: none +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100% +} + +@media (max-width: 575.98px) { + .navbar-expand-sm>.container, + .navbar-expand-sm>.container-fluid, + .navbar-expand-sm>.container-sm, + .navbar-expand-sm>.container-md, + .navbar-expand-sm>.container-lg, + .navbar-expand-sm>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-sm .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-sm>.container, + .navbar-expand-sm>.container-fluid, + .navbar-expand-sm>.container-sm, + .navbar-expand-sm>.container-md, + .navbar-expand-sm>.container-lg, + .navbar-expand-sm>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-sm .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-sm .navbar-toggler { + display: none + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md>.container, + .navbar-expand-md>.container-fluid, + .navbar-expand-md>.container-sm, + .navbar-expand-md>.container-md, + .navbar-expand-md>.container-lg, + .navbar-expand-md>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-md .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-md>.container, + .navbar-expand-md>.container-fluid, + .navbar-expand-md>.container-sm, + .navbar-expand-md>.container-md, + .navbar-expand-md>.container-lg, + .navbar-expand-md>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-md .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-md .navbar-toggler { + display: none + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg>.container, + .navbar-expand-lg>.container-fluid, + .navbar-expand-lg>.container-sm, + .navbar-expand-lg>.container-md, + .navbar-expand-lg>.container-lg, + .navbar-expand-lg>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-lg .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-lg>.container, + .navbar-expand-lg>.container-fluid, + .navbar-expand-lg>.container-sm, + .navbar-expand-lg>.container-md, + .navbar-expand-lg>.container-lg, + .navbar-expand-lg>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-lg .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-lg .navbar-toggler { + display: none + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl>.container, + .navbar-expand-xl>.container-fluid, + .navbar-expand-xl>.container-sm, + .navbar-expand-xl>.container-md, + .navbar-expand-xl>.container-lg, + .navbar-expand-xl>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-xl .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-xl>.container, + .navbar-expand-xl>.container-fluid, + .navbar-expand-xl>.container-sm, + .navbar-expand-xl>.container-md, + .navbar-expand-xl>.container-lg, + .navbar-expand-xl>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-xl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-xl .navbar-toggler { + display: none + } +} + +.navbar-expand { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start +} + +.navbar-expand>.container, +.navbar-expand>.container-fluid, +.navbar-expand>.container-sm, +.navbar-expand>.container-md, +.navbar-expand>.container-lg, +.navbar-expand>.container-xl { + padding-right: 0; + padding-left: 0 +} + +.navbar-expand .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem +} + +.navbar-expand>.container, +.navbar-expand>.container-fluid, +.navbar-expand>.container-sm, +.navbar-expand>.container-md, +.navbar-expand>.container-lg, +.navbar-expand>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap +} + +.navbar-expand .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto +} + +.navbar-expand .navbar-toggler { + display: none +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-brand:hover, +.navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5) +} + +.navbar-light .navbar-nav .nav-link:hover, +.navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7) +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3) +} + +.navbar-light .navbar-nav .show>.nav-link, +.navbar-light .navbar-nav .active>.nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1) +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5) +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-dark .navbar-brand { + color: #fff +} + +.navbar-dark .navbar-brand:hover, +.navbar-dark .navbar-brand:focus { + color: #fff +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5) +} + +.navbar-dark .navbar-nav .nav-link:hover, +.navbar-dark .navbar-nav .nav-link:focus { + color: #fff +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25) +} + +.navbar-dark .navbar-nav .show>.nav-link, +.navbar-dark .navbar-nav .active>.nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1) +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5) +} + +.navbar-dark .navbar-text a { + color: #fff +} + +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff +} + +.card { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #282828; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem +} + +.card>hr { + margin-right: 0; + margin-left: 0 +} + +.card>.list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem +} + +.card>.list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem +} + +.card-body { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem +} + +.card-title { + margin-bottom: 0.75rem +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0 +} + +.card-text:last-child { + margin-bottom: 0 +} + +.card-link:hover { + text-decoration: none +} + +.card-link+.card-link { + margin-left: 1.25rem +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125) +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0 +} + +.card-header+.list-group .list-group-item:first-child { + border-top: 0 +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125) +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px) +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0 +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem +} + +.card-img, +.card-img-top, +.card-img-bottom { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100% +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px) +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px) +} + +.card-deck .card { + margin-bottom: 15px +} + +@media (min-width: 576px) { + .card-deck { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px + } + .card-deck .card { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px + } +} + +.card-group>.card { + margin-bottom: 15px +} + +@media (min-width: 576px) { + .card-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap + } + .card-group>.card { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0 + } + .card-group>.card+.card { + margin-left: 0; + border-left: 0 + } + .card-group>.card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 + } + .card-group>.card:not(:last-child) .card-img-top, + .card-group>.card:not(:last-child) .card-header { + border-top-right-radius: 0 + } + .card-group>.card:not(:last-child) .card-img-bottom, + .card-group>.card:not(:last-child) .card-footer { + border-bottom-right-radius: 0 + } + .card-group>.card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 + } + .card-group>.card:not(:first-child) .card-img-top, + .card-group>.card:not(:first-child) .card-header { + border-top-left-radius: 0 + } + .card-group>.card:not(:first-child) .card-img-bottom, + .card-group>.card:not(:first-child) .card-footer { + border-bottom-left-radius: 0 + } +} + +.card-columns .card { + margin-bottom: 0.75rem +} + +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1 + } + .card-columns .card { + display: inline-block; + width: 100% + } +} + +.accordion>.card { + overflow: hidden +} + +.accordion>.card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.accordion>.card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.accordion>.card>.card-header { + border-radius: 0; + margin-bottom: -1px +} + +.breadcrumb { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #282828; + border-radius: 0.25rem +} + +.breadcrumb-item+.breadcrumb-item { + padding-left: 0.5rem +} + +.breadcrumb-item+.breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #555; + content: "/" +} + +.breadcrumb-item+.breadcrumb-item:hover::before { + text-decoration: underline +} + +.breadcrumb-item+.breadcrumb-item:hover::before { + text-decoration: none +} + +.breadcrumb-item.active { + color: #555 +} + +.pagination { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #fff; + background-color: #282828; + border: 1px solid transparent +} + +.page-link:hover { + z-index: 2; + color: #fff; + text-decoration: none; + background-color: #2A9FD6; + border-color: transparent +} + +.page-link:focus { + z-index: 3; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.page-item.disabled .page-link { + color: #555; + pointer-events: none; + cursor: auto; + background-color: #282828; + border-color: transparent +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.09375rem; + line-height: 1.5 +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5 +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .badge { + -webkit-transition: none; + transition: none + } +} + +a.badge:hover, +a.badge:focus { + text-decoration: none +} + +.badge:empty { + display: none +} + +.btn .badge { + position: relative; + top: -1px +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem +} + +.badge-primary { + color: #fff; + background-color: #2A9FD6 +} + +a.badge-primary:hover, +a.badge-primary:focus { + color: #fff; + background-color: #2180ac +} + +a.badge-primary:focus, +a.badge-primary.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5) +} + +.badge-secondary { + color: #fff; + background-color: #555 +} + +a.badge-secondary:hover, +a.badge-secondary:focus { + color: #fff; + background-color: #3c3b3b +} + +a.badge-secondary:focus, +a.badge-secondary.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); + box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5) +} + +.badge-success { + color: #fff; + background-color: #77B300 +} + +a.badge-success:hover, +a.badge-success:focus { + color: #fff; + background-color: #558000 +} + +a.badge-success:focus, +a.badge-success.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5) +} + +.badge-info { + color: #fff; + background-color: #9933CC +} + +a.badge-info:hover, +a.badge-info:focus { + color: #fff; + background-color: #7a29a3 +} + +a.badge-info:focus, +a.badge-info.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5); + box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5) +} + +.badge-warning { + color: #fff; + background-color: #FF8800 +} + +a.badge-warning:hover, +a.badge-warning:focus { + color: #fff; + background-color: #cc6d00 +} + +a.badge-warning:focus, +a.badge-warning.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5) +} + +.badge-danger { + color: #fff; + background-color: #CC0000 +} + +a.badge-danger:hover, +a.badge-danger:focus { + color: #fff; + background-color: #990000 +} + +a.badge-danger:focus, +a.badge-danger.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5) +} + +.badge-light { + color: #fff; + background-color: #222 +} + +a.badge-light:hover, +a.badge-light:focus { + color: #fff; + background-color: #090808 +} + +a.badge-light:focus, +a.badge-light.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5); + box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5) +} + +.badge-dark { + color: #fff; + background-color: #ADAFAE +} + +a.badge-dark:hover, +a.badge-dark:focus { + color: #fff; + background-color: #939695 +} + +a.badge-dark:focus, +a.badge-dark.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5); + box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5) +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #282828; + border-radius: 0.3rem +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0 +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem +} + +.alert-heading { + color: inherit +} + +.alert-link { + font-weight: 700 +} + +.alert-dismissible { + padding-right: 3.8125rem +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit +} + +.alert-primary { + color: #16536f; + background-color: #d4ecf7; + border-color: #c3e4f4 +} + +.alert-primary hr { + border-top-color: #addaf0 +} + +.alert-primary .alert-link { + color: #0e3344 +} + +.alert-secondary { + color: #2c2c2c; + background-color: #dddddd; + border-color: #cfcfcf +} + +.alert-secondary hr { + border-top-color: #c2c2c2 +} + +.alert-secondary .alert-link { + color: #131212 +} + +.alert-success { + color: #3e5d00; + background-color: #e4f0cc; + border-color: #d9eab8 +} + +.alert-success hr { + border-top-color: #cee4a4 +} + +.alert-success .alert-link { + color: #1c2a00 +} + +.alert-info { + color: #501b6a; + background-color: #ebd6f5; + border-color: #e2c6f1 +} + +.alert-info hr { + border-top-color: #d8b2ec +} + +.alert-info .alert-link { + color: #311141 +} + +.alert-warning { + color: #854700; + background-color: #ffe7cc; + border-color: #ffdeb8 +} + +.alert-warning hr { + border-top-color: #ffd29f +} + +.alert-warning .alert-link { + color: #522c00 +} + +.alert-danger { + color: #6a0000; + background-color: #f5cccc; + border-color: #f1b8b8 +} + +.alert-danger hr { + border-top-color: #eda3a3 +} + +.alert-danger .alert-link { + color: #370000 +} + +.alert-light { + color: #121212; + background-color: lightgray; + border-color: #c1c1c1 +} + +.alert-light hr { + border-top-color: #b4b4b4 +} + +.alert-light .alert-link { + color: black +} + +.alert-dark { + color: #5a5b5a; + background-color: #efefef; + border-color: #e8e9e8 +} + +.alert-dark hr { + border-top-color: #dbdddb +} + +.alert-dark .alert-link { + color: #414141 +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0 + } + to { + background-position: 0 0 + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0 + } + to { + background-position: 0 0 + } +} + +.progress { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.65625rem; + background-color: #282828; + border-radius: 0.25rem +} + +.progress-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #2A9FD6; + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + -webkit-transition: none; + transition: none + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none + } +} + +.media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start +} + +.media-body { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1 +} + +.list-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0 +} + +.list-group-item-action { + width: 100%; + color: #282828; + text-align: inherit +} + +.list-group-item-action:hover, +.list-group-item-action:focus { + z-index: 1; + color: #282828; + text-decoration: none; + background-color: #2A9FD6 +} + +.list-group-item-action:active { + color: #ADAFAE; + background-color: #2A9FD6 +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #222; + border: 1px solid #282828 +} + +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem +} + +.list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem +} + +.list-group-item.disabled, +.list-group-item:disabled { + color: #555; + pointer-events: none; + background-color: #282828 +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.list-group-item+.list-group-item { + border-top-width: 0 +} + +.list-group-item+.list-group-item.active { + margin-top: -1px; + border-top-width: 1px +} + +.list-group-horizontal { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row +} + +.list-group-horizontal .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 +} + +.list-group-horizontal .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 +} + +.list-group-horizontal .list-group-item.active { + margin-top: 0 +} + +.list-group-horizontal .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 +} + +.list-group-horizontal .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-sm .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-sm .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-sm .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-sm .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-sm .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-md .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-md .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-md .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-md .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-md .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-lg .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-lg .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-lg .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-lg .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-lg .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-xl .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-xl .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-xl .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-xl .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-xl .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +.list-group-flush .list-group-item { + border-right-width: 0; + border-left-width: 0; + border-radius: 0 +} + +.list-group-flush .list-group-item:first-child { + border-top-width: 0 +} + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom-width: 0 +} + +.list-group-item-primary { + color: #16536f; + background-color: #c3e4f4 +} + +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color: #16536f; + background-color: #addaf0 +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #16536f; + border-color: #16536f +} + +.list-group-item-secondary { + color: #2c2c2c; + background-color: #cfcfcf +} + +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color: #2c2c2c; + background-color: #c2c2c2 +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #2c2c2c; + border-color: #2c2c2c +} + +.list-group-item-success { + color: #3e5d00; + background-color: #d9eab8 +} + +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color: #3e5d00; + background-color: #cee4a4 +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #3e5d00; + border-color: #3e5d00 +} + +.list-group-item-info { + color: #501b6a; + background-color: #e2c6f1 +} + +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color: #501b6a; + background-color: #d8b2ec +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #501b6a; + border-color: #501b6a +} + +.list-group-item-warning { + color: #854700; + background-color: #ffdeb8 +} + +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color: #854700; + background-color: #ffd29f +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #854700; + border-color: #854700 +} + +.list-group-item-danger { + color: #6a0000; + background-color: #f1b8b8 +} + +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color: #6a0000; + background-color: #eda3a3 +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #6a0000; + border-color: #6a0000 +} + +.list-group-item-light { + color: #121212; + background-color: #c1c1c1 +} + +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color: #121212; + background-color: #b4b4b4 +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #121212; + border-color: #121212 +} + +.list-group-item-dark { + color: #5a5b5a; + background-color: #e8e9e8 +} + +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color: #5a5b5a; + background-color: #dbdddb +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #5a5b5a; + border-color: #5a5b5a +} + +.close { + float: right; + font-size: 1.3125rem; + font-weight: 700; + line-height: 1; + color: #fff; + text-shadow: none; + opacity: .5 +} + +.close:hover { + color: #fff; + text-decoration: none +} + +.close:not(:disabled):not(.disabled):hover, +.close:not(:disabled):not(.disabled):focus { + opacity: .75 +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +a.close.disabled { + pointer-events: none +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem +} + +.toast.showing { + opacity: 1 +} + +.toast.show { + display: block; + opacity: 1 +} + +.toast.hide { + display: none +} + +.toast-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.25rem 0.75rem; + color: #555; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05) +} + +.toast-body { + padding: 0.75rem +} + +.modal-open { + overflow: hidden +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0 +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px) +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + -webkit-transition: none; + transition: none + } +} + +.modal.show .modal-dialog { + -webkit-transform: none; + transform: none +} + +.modal.modal-static .modal-dialog { + -webkit-transform: scale(1.02); + transform: scale(1.02) +} + +.modal-dialog-scrollable { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-height: calc(100% - 1rem) +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto +} + +.modal-dialog-centered { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - 1rem) +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + content: "" +} + +.modal-dialog-centered.modal-dialog-scrollable { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + height: 100% +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none +} + +.modal-content { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #222; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0 +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000 +} + +.modal-backdrop.fade { + opacity: 0 +} + +.modal-backdrop.show { + opacity: 0.5 +} + +.modal-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #282828; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px) +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5 +} + +.modal-body { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem +} + +.modal-footer { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #282828; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px) +} + +.modal-footer>* { + margin: 0.25rem +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem) + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem) + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem) + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem) + } + .modal-sm { + max-width: 300px + } +} + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px + } +} + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.765625rem; + word-wrap: break-word; + opacity: 0 +} + +.tooltip.show { + opacity: 1 +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-tooltip-top, +.bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0 +} + +.bs-tooltip-top .arrow, +.bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0 +} + +.bs-tooltip-top .arrow::before, +.bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #282828 +} + +.bs-tooltip-right, +.bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem +} + +.bs-tooltip-right .arrow, +.bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem +} + +.bs-tooltip-right .arrow::before, +.bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #282828 +} + +.bs-tooltip-bottom, +.bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0 +} + +.bs-tooltip-bottom .arrow, +.bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0 +} + +.bs-tooltip-bottom .arrow::before, +.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #282828 +} + +.bs-tooltip-left, +.bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem +} + +.bs-tooltip-left .arrow, +.bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem +} + +.bs-tooltip-left .arrow::before, +.bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #282828 +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #282828; + border-radius: 0.25rem +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.765625rem; + word-wrap: break-word; + background-color: #282828; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem +} + +.popover .arrow::before, +.popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-popover-top, +.bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem +} + +.bs-popover-top>.arrow, +.bs-popover-auto[x-placement^="top"]>.arrow { + bottom: calc(-0.5rem - 1px) +} + +.bs-popover-top>.arrow::before, +.bs-popover-auto[x-placement^="top"]>.arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-top>.arrow::after, +.bs-popover-auto[x-placement^="top"]>.arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #282828 +} + +.bs-popover-right, +.bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem +} + +.bs-popover-right>.arrow, +.bs-popover-auto[x-placement^="right"]>.arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0 +} + +.bs-popover-right>.arrow::before, +.bs-popover-auto[x-placement^="right"]>.arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-right>.arrow::after, +.bs-popover-auto[x-placement^="right"]>.arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #282828 +} + +.bs-popover-bottom, +.bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem +} + +.bs-popover-bottom>.arrow, +.bs-popover-auto[x-placement^="bottom"]>.arrow { + top: calc(-0.5rem - 1px) +} + +.bs-popover-bottom>.arrow::before, +.bs-popover-auto[x-placement^="bottom"]>.arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-bottom>.arrow::after, +.bs-popover-auto[x-placement^="bottom"]>.arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #282828 +} + +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #202020 +} + +.bs-popover-left, +.bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem +} + +.bs-popover-left>.arrow, +.bs-popover-auto[x-placement^="left"]>.arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0 +} + +.bs-popover-left>.arrow::before, +.bs-popover-auto[x-placement^="left"]>.arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-left>.arrow::after, +.bs-popover-auto[x-placement^="left"]>.arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #282828 +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #fff; + background-color: #202020; + border-bottom: 1px solid #141414; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px) +} + +.popover-header:empty { + display: none +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #ADAFAE +} + +.carousel { + position: relative +} + +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner::after { + display: block; + clear: both; + content: "" +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: -webkit-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + -webkit-transition: none; + transition: none + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%) +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%) +} + +.carousel-fade .carousel-item { + opacity: 0; + -webkit-transition-property: opacity; + transition-property: opacity; + -webkit-transform: none; + transform: none +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1 +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + -webkit-transition: opacity 0s 0.6s; + transition: opacity 0s 0.6s +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + -webkit-transition: none; + transition: none + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + -webkit-transition: opacity 0.15s ease; + transition: opacity 0.15s ease +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + -webkit-transition: none; + transition: none + } +} + +.carousel-control-prev:hover, +.carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9 +} + +.carousel-control-prev { + left: 0 +} + +.carousel-control-next { + right: 0 +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100% +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e") +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e") +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none +} + +.carousel-indicators li { + -webkit-box-sizing: content-box; + box-sizing: content-box; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + -webkit-transition: opacity 0.6s ease; + transition: opacity 0.6s ease +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + -webkit-transition: none; + transition: none + } +} + +.carousel-indicators .active { + opacity: 1 +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center +} + +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0) + } + 50% { + opacity: 1 + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0) + } + 50% { + opacity: 1 + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem +} + +.align-baseline { + vertical-align: baseline !important +} + +.align-top { + vertical-align: top !important +} + +.align-middle { + vertical-align: middle !important +} + +.align-bottom { + vertical-align: bottom !important +} + +.align-text-bottom { + vertical-align: text-bottom !important +} + +.align-text-top { + vertical-align: text-top !important +} + +.bg-primary { + background-color: #060606 !important +} + +a.bg-primary:hover, +a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #2180ac !important +} + +.bg-secondary { + background-color: #131313 !important +} + +a.bg-secondary:hover, +a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #3c3b3b !important +} + +.bg-success { + background-color: #77B300 !important +} + +a.bg-success:hover, +a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #558000 !important +} + +.bg-info { + background-color: #9933CC !important +} + +a.bg-info:hover, +a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #7a29a3 !important +} + +.bg-warning { + background-color: #FF8800 !important +} + +a.bg-warning:hover, +a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #cc6d00 !important +} + +.bg-danger { + background-color: #CC0000 !important +} + +a.bg-danger:hover, +a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #990000 !important +} + +.bg-light { + background-color: #222 !important +} + +a.bg-light:hover, +a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #090808 !important +} + +.bg-dark { + background-color: #ADAFAE !important +} + +a.bg-dark:hover, +a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #939695 !important +} + +.bg-white { + background-color: #fff !important +} + +.bg-transparent { + background-color: transparent !important +} + +.border { + border: 1px solid #dee2e6 !important +} + +.border-top { + border-top: 1px solid #dee2e6 !important +} + +.border-right { + border-right: 1px solid #dee2e6 !important +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important +} + +.border-left { + border-left: 1px solid #dee2e6 !important +} + +.border-0 { + border: 0 !important +} + +.border-top-0 { + border-top: 0 !important +} + +.border-right-0 { + border-right: 0 !important +} + +.border-bottom-0 { + border-bottom: 0 !important +} + +.border-left-0 { + border-left: 0 !important +} + +.border-primary { + border-color: #2A9FD6 !important +} + +.border-secondary { + border-color: #555 !important +} + +.border-success { + border-color: #77B300 !important +} + +.border-info { + border-color: #9933CC !important +} + +.border-warning { + border-color: #FF8800 !important +} + +.border-danger { + border-color: #CC0000 !important +} + +.border-light { + border-color: #222 !important +} + +.border-dark { + border-color: #ADAFAE !important +} + +.border-white { + border-color: #fff !important +} + +.rounded-sm { + border-radius: 0.2rem !important +} + +.rounded { + border-radius: 0.25rem !important +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important +} + +.rounded-lg { + border-radius: 0.3rem !important +} + +.rounded-circle { + border-radius: 50% !important +} + +.rounded-pill { + border-radius: 50rem !important +} + +.rounded-0 { + border-radius: 0 !important +} + +.clearfix::after { + display: block; + clear: both; + content: "" +} + +.d-none { + display: none !important +} + +.d-inline { + display: inline !important +} + +.d-inline-block { + display: inline-block !important +} + +.d-block { + display: block !important +} + +.d-table { + display: table !important +} + +.d-table-row { + display: table-row !important +} + +.d-table-cell { + display: table-cell !important +} + +.d-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important +} + +.d-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important + } + .d-sm-inline { + display: inline !important + } + .d-sm-inline-block { + display: inline-block !important + } + .d-sm-block { + display: block !important + } + .d-sm-table { + display: table !important + } + .d-sm-table-row { + display: table-row !important + } + .d-sm-table-cell { + display: table-cell !important + } + .d-sm-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-sm-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important + } + .d-md-inline { + display: inline !important + } + .d-md-inline-block { + display: inline-block !important + } + .d-md-block { + display: block !important + } + .d-md-table { + display: table !important + } + .d-md-table-row { + display: table-row !important + } + .d-md-table-cell { + display: table-cell !important + } + .d-md-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-md-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important + } + .d-lg-inline { + display: inline !important + } + .d-lg-inline-block { + display: inline-block !important + } + .d-lg-block { + display: block !important + } + .d-lg-table { + display: table !important + } + .d-lg-table-row { + display: table-row !important + } + .d-lg-table-cell { + display: table-cell !important + } + .d-lg-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-lg-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important + } + .d-xl-inline { + display: inline !important + } + .d-xl-inline-block { + display: inline-block !important + } + .d-xl-block { + display: block !important + } + .d-xl-table { + display: table !important + } + .d-xl-table-row { + display: table-row !important + } + .d-xl-table-cell { + display: table-cell !important + } + .d-xl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-xl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media print { + .d-print-none { + display: none !important + } + .d-print-inline { + display: inline !important + } + .d-print-inline-block { + display: inline-block !important + } + .d-print-block { + display: block !important + } + .d-print-table { + display: table !important + } + .d-print-table-row { + display: table-row !important + } + .d-print-table-cell { + display: table-cell !important + } + .d-print-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-print-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden +} + +.embed-responsive::before { + display: block; + content: "" +} + +.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-21by9::before { + padding-top: 42.8571428571% +} + +.embed-responsive-16by9::before { + padding-top: 56.25% +} + +.embed-responsive-4by3::before { + padding-top: 75% +} + +.embed-responsive-1by1::before { + padding-top: 100% +} + +.flex-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important +} + +.flex-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important +} + +.flex-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important +} + +.flex-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important +} + +.flex-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important +} + +.flex-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important +} + +.flex-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important +} + +.justify-content-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important +} + +.justify-content-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important +} + +.justify-content-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important +} + +.justify-content-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important +} + +.align-items-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important +} + +.align-items-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important +} + +.align-items-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important +} + +.align-items-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important +} + +.align-items-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important +} + +@media (min-width: 576px) { + .flex-sm-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-sm-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-sm-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-sm-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-sm-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-sm-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-sm-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-sm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-sm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-sm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-sm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-sm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-sm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-sm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-sm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-sm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +@media (min-width: 768px) { + .flex-md-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-md-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-md-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-md-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-md-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-md-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-md-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-md-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-md-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-md-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-md-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-md-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-md-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-md-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-md-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-md-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-lg-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-lg-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-lg-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-lg-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-lg-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-lg-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-lg-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-lg-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-lg-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-lg-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-lg-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-lg-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-lg-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-lg-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-lg-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-xl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-xl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-xl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-xl-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-xl-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-xl-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-xl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-xl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-xl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-xl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-xl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-xl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-xl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-xl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-xl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +.float-left { + float: left !important +} + +.float-right { + float: right !important +} + +.float-none { + float: none !important +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important + } + .float-sm-right { + float: right !important + } + .float-sm-none { + float: none !important + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important + } + .float-md-right { + float: right !important + } + .float-md-none { + float: none !important + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important + } + .float-lg-right { + float: right !important + } + .float-lg-none { + float: none !important + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important + } + .float-xl-right { + float: right !important + } + .float-xl-none { + float: none !important + } +} + +.overflow-auto { + overflow: auto !important +} + +.overflow-hidden { + overflow: hidden !important +} + +.position-static { + position: static !important +} + +.position-relative { + position: relative !important +} + +.position-absolute { + position: absolute !important +} + +.position-fixed { + position: fixed !important +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030 +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030 +} + +@supports (position: -webkit-sticky) or (position: sticky) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0 +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal +} + +.shadow-sm { + -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important +} + +.shadow { + -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important +} + +.shadow-lg { + -webkit-box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important +} + +.shadow-none { + -webkit-box-shadow: none !important; + box-shadow: none !important +} + +.w-25 { + width: 25% !important +} + +.w-50 { + width: 50% !important +} + +.w-75 { + width: 75% !important +} + +.w-100 { + width: 100% !important +} + +.w-auto { + width: auto !important +} + +.h-25 { + height: 25% !important +} + +.h-50 { + height: 50% !important +} + +.h-75 { + height: 75% !important +} + +.h-100 { + height: 100% !important +} + +.h-auto { + height: auto !important +} + +.mw-100 { + max-width: 100% !important +} + +.mh-100 { + max-height: 100% !important +} + +.min-vw-100 { + min-width: 100vw !important +} + +.min-vh-100 { + min-height: 100vh !important +} + +.vw-100 { + width: 100vw !important +} + +.vh-100 { + height: 100vh !important +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0) +} + +.m-0 { + margin: 0 !important +} + +.mt-0, +.my-0 { + margin-top: 0 !important +} + +.mr-0, +.mx-0 { + margin-right: 0 !important +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important +} + +.ml-0, +.mx-0 { + margin-left: 0 !important +} + +.m-1 { + margin: 0.25rem !important +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important +} + +.m-2 { + margin: 0.5rem !important +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important +} + +.m-3 { + margin: 1rem !important +} + +.mt-3, +.my-3 { + margin-top: 1rem !important +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important +} + +.m-4 { + margin: 1.5rem !important +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important +} + +.m-5 { + margin: 3rem !important +} + +.mt-5, +.my-5 { + margin-top: 3rem !important +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important +} + +.p-0 { + padding: 0 !important +} + +.pt-0, +.py-0 { + padding-top: 0 !important +} + +.pr-0, +.px-0 { + padding-right: 0 !important +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important +} + +.pl-0, +.px-0 { + padding-left: 0 !important +} + +.p-1 { + padding: 0.25rem !important +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important +} + +.p-2 { + padding: 0.5rem !important +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important +} + +.p-3 { + padding: 1rem !important +} + +.pt-3, +.py-3 { + padding-top: 1rem !important +} + +.pr-3, +.px-3 { + padding-right: 1rem !important +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important +} + +.pl-3, +.px-3 { + padding-left: 1rem !important +} + +.p-4 { + padding: 1.5rem !important +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important +} + +.p-5 { + padding: 3rem !important +} + +.pt-5, +.py-5 { + padding-top: 3rem !important +} + +.pr-5, +.px-5 { + padding-right: 3rem !important +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important +} + +.pl-5, +.px-5 { + padding-left: 3rem !important +} + +.m-n1 { + margin: -0.25rem !important +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important +} + +.m-n2 { + margin: -0.5rem !important +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important +} + +.m-n3 { + margin: -1rem !important +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important +} + +.m-n4 { + margin: -1.5rem !important +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important +} + +.m-n5 { + margin: -3rem !important +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important +} + +.m-auto { + margin: auto !important +} + +.mt-auto, +.my-auto { + margin-top: auto !important +} + +.mr-auto, +.mx-auto { + margin-right: auto !important +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important +} + +.ml-auto, +.mx-auto { + margin-left: auto !important +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important + } + .m-sm-1 { + margin: 0.25rem !important + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important + } + .m-sm-2 { + margin: 0.5rem !important + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important + } + .m-sm-3 { + margin: 1rem !important + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important + } + .m-sm-4 { + margin: 1.5rem !important + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important + } + .m-sm-5 { + margin: 3rem !important + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important + } + .p-sm-0 { + padding: 0 !important + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important + } + .p-sm-1 { + padding: 0.25rem !important + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important + } + .p-sm-2 { + padding: 0.5rem !important + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important + } + .p-sm-3 { + padding: 1rem !important + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important + } + .p-sm-4 { + padding: 1.5rem !important + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important + } + .p-sm-5 { + padding: 3rem !important + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important + } + .m-sm-n1 { + margin: -0.25rem !important + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important + } + .m-sm-n2 { + margin: -0.5rem !important + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important + } + .m-sm-n3 { + margin: -1rem !important + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important + } + .m-sm-n4 { + margin: -1.5rem !important + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important + } + .m-sm-n5 { + margin: -3rem !important + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important + } + .m-sm-auto { + margin: auto !important + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important + } + .m-md-1 { + margin: 0.25rem !important + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important + } + .m-md-2 { + margin: 0.5rem !important + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important + } + .m-md-3 { + margin: 1rem !important + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important + } + .m-md-4 { + margin: 1.5rem !important + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important + } + .m-md-5 { + margin: 3rem !important + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important + } + .p-md-0 { + padding: 0 !important + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important + } + .p-md-1 { + padding: 0.25rem !important + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important + } + .p-md-2 { + padding: 0.5rem !important + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important + } + .p-md-3 { + padding: 1rem !important + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important + } + .p-md-4 { + padding: 1.5rem !important + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important + } + .p-md-5 { + padding: 3rem !important + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important + } + .m-md-n1 { + margin: -0.25rem !important + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important + } + .m-md-n2 { + margin: -0.5rem !important + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important + } + .m-md-n3 { + margin: -1rem !important + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important + } + .m-md-n4 { + margin: -1.5rem !important + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important + } + .m-md-n5 { + margin: -3rem !important + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important + } + .m-md-auto { + margin: auto !important + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important + } + .m-lg-1 { + margin: 0.25rem !important + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important + } + .m-lg-2 { + margin: 0.5rem !important + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important + } + .m-lg-3 { + margin: 1rem !important + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important + } + .m-lg-4 { + margin: 1.5rem !important + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important + } + .m-lg-5 { + margin: 3rem !important + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important + } + .p-lg-0 { + padding: 0 !important + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important + } + .p-lg-1 { + padding: 0.25rem !important + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important + } + .p-lg-2 { + padding: 0.5rem !important + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important + } + .p-lg-3 { + padding: 1rem !important + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important + } + .p-lg-4 { + padding: 1.5rem !important + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important + } + .p-lg-5 { + padding: 3rem !important + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important + } + .m-lg-n1 { + margin: -0.25rem !important + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important + } + .m-lg-n2 { + margin: -0.5rem !important + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important + } + .m-lg-n3 { + margin: -1rem !important + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important + } + .m-lg-n4 { + margin: -1.5rem !important + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important + } + .m-lg-n5 { + margin: -3rem !important + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important + } + .m-lg-auto { + margin: auto !important + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important + } + .m-xl-1 { + margin: 0.25rem !important + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important + } + .m-xl-2 { + margin: 0.5rem !important + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important + } + .m-xl-3 { + margin: 1rem !important + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important + } + .m-xl-4 { + margin: 1.5rem !important + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important + } + .m-xl-5 { + margin: 3rem !important + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important + } + .p-xl-0 { + padding: 0 !important + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important + } + .p-xl-1 { + padding: 0.25rem !important + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important + } + .p-xl-2 { + padding: 0.5rem !important + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important + } + .p-xl-3 { + padding: 1rem !important + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important + } + .p-xl-4 { + padding: 1.5rem !important + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important + } + .p-xl-5 { + padding: 3rem !important + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important + } + .m-xl-n1 { + margin: -0.25rem !important + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important + } + .m-xl-n2 { + margin: -0.5rem !important + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important + } + .m-xl-n3 { + margin: -1rem !important + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important + } + .m-xl-n4 { + margin: -1.5rem !important + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important + } + .m-xl-n5 { + margin: -3rem !important + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important + } + .m-xl-auto { + margin: auto !important + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important + } +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important +} + +.text-justify { + text-align: justify !important +} + +.text-wrap { + white-space: normal !important +} + +.text-nowrap { + white-space: nowrap !important +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +.text-left { + text-align: left !important +} + +.text-right { + text-align: right !important +} + +.text-center { + text-align: center !important +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important + } + .text-sm-right { + text-align: right !important + } + .text-sm-center { + text-align: center !important + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important + } + .text-md-right { + text-align: right !important + } + .text-md-center { + text-align: center !important + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important + } + .text-lg-right { + text-align: right !important + } + .text-lg-center { + text-align: center !important + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important + } + .text-xl-right { + text-align: right !important + } + .text-xl-center { + text-align: center !important + } +} + +.text-lowercase { + text-transform: lowercase !important +} + +.text-uppercase { + text-transform: uppercase !important +} + +.text-capitalize { + text-transform: capitalize !important +} + +.font-weight-light { + font-weight: 300 !important +} + +.font-weight-lighter { + font-weight: lighter !important +} + +.font-weight-normal { + font-weight: 400 !important +} + +.font-weight-bold { + font-weight: 700 !important +} + +.font-weight-bolder { + font-weight: bolder !important +} + +.font-italic { + font-style: italic !important +} + +.text-white { + color: #fff !important +} + +.text-primary { + color: #2A9FD6 !important +} + +a.text-primary:hover, +a.text-primary:focus { + color: #1d7097 !important +} + +.text-secondary { + color: #555 !important +} + +a.text-secondary:hover, +a.text-secondary:focus { + color: #2f2f2f !important +} + +.text-success { + color: #77B300 !important +} + +a.text-success:hover, +a.text-success:focus { + color: #446700 !important +} + +.text-info { + color: #9933CC !important +} + +a.text-info:hover, +a.text-info:focus { + color: #6b248f !important +} + +.text-warning { + color: #FF8800 !important +} + +a.text-warning:hover, +a.text-warning:focus { + color: #b35f00 !important +} + +.text-danger { + color: #CC0000 !important +} + +a.text-danger:hover, +a.text-danger:focus { + color: maroon !important +} + +.text-light { + color: #222 !important +} + +a.text-light:hover, +a.text-light:focus { + color: black !important +} + +.text-dark { + color: #ADAFAE !important +} + +a.text-dark:hover, +a.text-dark:focus { + color: #868988 !important +} + +.text-body { + color: #ADAFAE !important +} + +.text-muted { + color: #555 !important +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0 +} + +.text-decoration-none { + text-decoration: none !important +} + +.text-break { + word-break: break-word !important; + overflow-wrap: break-word !important +} + +.text-reset { + color: inherit !important +} + +.visible { + visibility: visible !important +} + +.invisible { + visibility: hidden !important +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important + } + a:not(.btn) { + text-decoration: underline + } + abbr[title]::after { + content: " (" attr(title) ")" + } + pre { + white-space: pre-wrap !important + } + pre, + blockquote { + border: 1px solid #888; + page-break-inside: avoid + } + thead { + display: table-header-group + } + tr, + img { + page-break-inside: avoid + } + p, + h2, + h3 { + orphans: 3; + widows: 3 + } + h2, + h3 { + page-break-after: avoid + } + @page { + size: a3 + } + body { + min-width: 992px !important + } + .container { + min-width: 992px !important + } + .navbar { + display: none + } + .badge { + 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 #dee2e6 !important + } + .table-dark { + color: inherit + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody+tbody { + border-color: #282828 + } + .table .thead-dark th { + color: inherit; + border-color: #282828 + } +} + +.navbar.bg-primary { + border: 1px solid #282828 +} + +.navbar.bg-dark { + background-color: #060606 !important; + border: 1px solid #282828 +} + +.navbar.bg-light { + background-color: #888 !important +} + +.navbar.fixed-top { + border-width: 0 0 1px 0 +} + +.navbar.fixed-bottom { + border-width: 1px 0 0 0 +} + +.btn-primary { + background-color: #2A9FD6 +} + +.btn-secondary { + background-color: #555 +} + +.btn-success { + background-color: #77B300 +} + +.btn-info { + background-color: #9933CC +} + +.btn-warning { + background-color: #FF8800 +} + +.btn-danger { + background-color: #CC0000 +} + +.btn-light { + background-color: #222 +} + +.btn-dark { + background-color: #ADAFAE +} + +table { + color: #fff +} + +.table-primary, +.table-primary>th, +.table-primary>td { + background-color: #2A9FD6 +} + +.table-secondary, +.table-secondary>th, +.table-secondary>td { + background-color: #555 +} + +.table-light, +.table-light>th, +.table-light>td { + background-color: #222 +} + +.table-dark, +.table-dark>th, +.table-dark>td { + background-color: #ADAFAE +} + +.table-success, +.table-success>th, +.table-success>td { + background-color: #77B300 +} + +.table-info, +.table-info>th, +.table-info>td { + background-color: #9933CC +} + +.table-danger, +.table-danger>th, +.table-danger>td { + background-color: #CC0000 +} + +.table-warning, +.table-warning>th, +.table-warning>td { + background-color: #FF8800 +} + +.table-active, +.table-active>th, +.table-active>td { + background-color: rgba(255, 255, 255, 0.075) +} + +.table-hover .table-primary:hover, +.table-hover .table-primary:hover>th, +.table-hover .table-primary:hover>td { + background-color: #258fc1 +} + +.table-hover .table-secondary:hover, +.table-hover .table-secondary:hover>th, +.table-hover .table-secondary:hover>td { + background-color: #484848 +} + +.table-hover .table-light:hover, +.table-hover .table-light:hover>th, +.table-hover .table-light:hover>td { + background-color: #151515 +} + +.table-hover .table-dark:hover, +.table-hover .table-dark:hover>th, +.table-hover .table-dark:hover>td { + background-color: #a0a2a1 +} + +.table-hover .table-success:hover, +.table-hover .table-success:hover>th, +.table-hover .table-success:hover>td { + background-color: #669a00 +} + +.table-hover .table-info:hover, +.table-hover .table-info:hover>th, +.table-hover .table-info:hover>td { + background-color: #8a2eb8 +} + +.table-hover .table-danger:hover, +.table-hover .table-danger:hover>th, +.table-hover .table-danger:hover>td { + background-color: #b30000 +} + +.table-hover .table-warning:hover, +.table-hover .table-warning:hover>th, +.table-hover .table-warning:hover>td { + background-color: #e67a00 +} + +.table-hover .table-active:hover, +.table-hover .table-active:hover>th, +.table-hover .table-active:hover>td { + background-color: rgba(255, 255, 255, 0.075) +} + +legend { + color: #fff +} + +.form-control { + background-clip: border-box +} + +.form-control:disabled, +.form-control[readonly] { + border-color: transparent +} + +.nav-tabs .nav-link, +.nav-pills .nav-link { + color: #fff +} + +.nav-tabs .nav-link:hover, +.nav-pills .nav-link:hover { + background-color: #282828 +} + +.nav-tabs .nav-link.disabled, +.nav-tabs .nav-link.disabled:hover, +.nav-pills .nav-link.disabled, +.nav-pills .nav-link.disabled:hover { + background-color: transparent; + color: #555 +} + +.nav-tabs .nav-link.active, +.nav-pills .nav-link.active { + background-color: #2A9FD6 +} + +.breadcrumb a { + color: #fff +} + +.pagination a:hover { + text-decoration: none +} + +.alert { + border: none; + color: #fff +} + +.alert a, +.alert .alert-link { + color: #fff; + text-decoration: underline +} + +.alert-primary { + background-color: #2A9FD6 +} + +.alert-secondary { + background-color: #555 +} + +.alert-success { + background-color: #77B300 +} + +.alert-info { + background-color: #9933CC +} + +.alert-warning { + background-color: #FF8800 +} + +.alert-danger { + background-color: #CC0000 +} + +.alert-light { + background-color: #222 +} + +.alert-dark { + background-color: #ADAFAE +} + +.badge-warning { + color: #fff +} + +.close { + opacity: 0.6 +} + +.close:hover { + opacity: 1 +} + +.list-group-item:hover { + background-color: #282828; + color: #fff +} + +.list-group-item-action { + color: #888 +} + +.list-group-item-action .list-group-item-heading { + color: #888 +} + +.list-group-item:hover .list-group-item-heading { + color: #fff +} + +.card h1, +.card h2, +.card h3, +.card h4, +.card h5, +.card h6, +.list-group-item h1, +.list-group-item h2, +.list-group-item h3, +.list-group-item h4, +.list-group-item h5, +.list-group-item h6 { + color: inherit +} + +.popover-title { + border-bottom: none +} \ No newline at end of file diff --git a/docs/errorcodes.md b/docs/errorcodes.md new file mode 100644 index 0000000..681f0e6 --- /dev/null +++ b/docs/errorcodes.md @@ -0,0 +1,173 @@ +# BEMANI Error Codes + +!!! warning "Before reading:" + This section contains various gamecode errors that a user may run across. There is an innumerable amount of these and I sometimes wonder if it's truly possible to have them all listed. + Nonetheless, dozens, if not hundreds are currently missing. This list is a massive work in progress and will be updated with time. + + Furthermore, not every solution listed can be the definitive solution to your error, sometimes various odd software and hardware nuances occur to create yet unseen issues. + I encourage you to be vocal about your solutions so that they can be added to the guide by [contacting me.](/about/#contact) + + +## Universal Error Codes + +### 5-0000-0000 + +!!! tip "" + This error can appear across any game, it's a generic critical error with several possible solutions. + + It is usually caused by network adapters that are enabled, other than the primary one used for network service. Try to disable some network adapters in Windows Device Manager, including hidden adapters. + + It can also be caused by game files being set to read only, especially the dev folder. Uncheck read only property in file explorer for all game files. + +### 5-2000-0000 + +!!! tip "" + This error can appear across any game, it's a standard network error with several possible solutions. + + First, make sure you have correctly entered your network service's URL properly with the `-url` parameter, that your internet connection is fine, and that the service is not down. + Also make sure you have correctly entered your PCBID with the ``-p`` parameter. + + One other thing to check is that the data is supported by the service, and that the datecode used by the game + is not invalid. Don't modify things if you don't need to! If the data is from a clean, trusted source, then this is extremely unlikely to be the cause. + +### 5-2002-0915 + +!!! tip "" + This error can appear across any game, it's a standard network error with several possible solutions. + + First, make sure you have correctly entered your network service's URL properly with the `-url` parameter, that your internet connection is fine, and that the service is not down. + Also make sure you have correctly entered your PCBID with the ``-p`` parameter. + + One other thing to check is that the data is supported by the service, and that the datecode used by the game + is not invalid. Don't modify things if you don't need to! If the data is from a clean, trusted source, then this is extremely unlikely to be the cause. + +### 5-2600-0000 + +!!! tip "" + This error can appear across any game, it's a standard network error with several possible solutions. + + First, make sure you have correctly entered your network service's URL properly with the `-url` parameter, that your internet connection is fine, and that the service is not down. + Also make sure you have correctly entered your PCBID with the ``-p`` parameter. + + One other thing to check is that the data is supported by the service, and that the datecode used by the game + is not invalid. Don't modify things if you don't need to! If the data is from a clean, trusted source, then this is extremely unlikely to be the cause. + +  +## IIDX Error Codes + +### 5-1500-0002 + +!!! tip "SOUND DATA CREATE ERROR" + This error occured from a corrupted installation. If your data came from a trusted source and you're having this issue, consider redownloading the files and making sure your installation was done properly. Or, perhaps your hard drive is failing. + +### 5-1503-0004 + +!!! tip "USBIO ERROR (NO ANSWER...)" + This error occurs when the game times out trying to communicate with the I/O board. + + When using tools, this typically happens because I/O emulation in tools takes too long, which can be caused by long-running background services on your computer. Usual offenders are: file-syncing software (GDrive, OneDrive, back up service, etc), anti-virus / malware scans, Windows Updates, or possibly bad hardware. Try to see if you can run tools at elevated process priority (SpiceTools already does this, but you can also try -realtime as last resort). + + On a real cabinet this would typically be a hardware error with the I/O board. Check cable connection and the power supply to the I/O board. + +### 5-1505-0001 + +!!! tip "SSD DATA ERROR" + This error occurs when the data is horribly corrupt, incomplete, or modified incorrectly. Please redownload your data from a reliable source. + +### 5-1503-0042 + +!!! tip "CAMERA DEVICE ERROR" + This error occurs when camera devices are missing/not functional. To resolve either have two cameras connected to your machine or apply a [hex edit](/extras/hexguide/) for your game's specific version and date code to simply not have this error occur on startup. It can be bypassed by hitting the `Test` button so it is not a critical error. + +### 5-1506-0001 + +!!! tip "CLOCK ERROR" + This error occurs when the clock is not set. To resolve, set the `CLOCK` in the service menu by hitting `SAVE AND EXIT` inside of the menu. + +  +## Sound Voltex Error Codes + +### 5-1506-0000 + +!!! tip "ACIO ERROR" + A user had this error when they downloaded the game from an unreliable source, they redownloaded `libacio.dll` from a clean, trusted source and had no issues. If the error persists, consider redownloading the data from a reliable source entirely. + +### 5-2009-0000 + +!!! tip "" + This error was seen on Sound Voltex Booth, a user had messed up their dll files. Thus, the solution would be to leave files unmodified and do not needlessly tamper. If your data came from a trusted source and you're having this issue, consider redownloading the files and making sure your installation was done properly. + +  +## Pop'n Error Codes + +### 5-1509-0000 +!!! tip "" + A user experienced this error every few minutes or so during play. If this issue occurs, make sure you have correctly inputted your chosen network's service URL and your PCBID correctly. + +### 5-2002-2400 + +!!! tip "" + This error was seen on Pop'n Usaneko due to improper setup and bad parameter usage in SpiceTools, make sure to follow [the first time setup](/games/popnusaneko/setup/) and utilize the `-url` and `-p` parameters in SpiceTools + so that you're not needlessly risking making mistakes in modifying the game's files. + +  +## Jubeat Error Codes + +### 5-2500-0000 + +!!! tip "BACKUP DATA ERROR" + Follow the steps listed [here](/games/jubeatclan/setup/#final-steps-and-setting-up-the-game) + +  +## GITADORA Error Codes + +### 5-1698-0000 + +!!! tip "" + This was seen in GITADORA Tri-Boost Re:EVOLVE. To resolve, uncheck the `Read Only` attribute on the following `contents` folders. + + - \contents\data\product\aep_x64\ + - \contents\data\product\aep\ + + Also, remove the following files from these folders. + + - battle_matching_3.bin + - beargarden_3.bin + - common_3.bin + - custom_3.bin + - entry_3.bin + - game_combo_3.bin + - game_common_3.bin + - game_dm_3.bin + - game_gf_3.bin + - game_session.bin + - home.bin + - mission_result.bin + - record_3.bin + - select_music_3.bin + - tab_3.bin + - title_3.bin + - warning_3.bin + +### 5-1506-0000 + +!!! tip "" + Disable all the unused network adapters inside device manager (make sure to view the hidden ones as well and disable those too!) + +### 5-2500-0001 + +!!! tip "BACKUP DATA ERROR" + Follow the steps listed [here](/games/gitamatixx/setup/#final-steps-and-setting-up-the-game) + +### 5-2501-0000 + +!!! tip "GROUP ID ERROR" + The Group ID Error is caused when it finds another cab of the same kind (GF or DM) with the same Group ID on the network. In most cases for users, this means the computer is connected to BOTH Ethernet and Wi-fi so the game sees 2 instances of itself. Thus to resolve, make sure you do not have 2 devices on the same subnet like this by checking your connections accordingly. + +  +## NOSTALGIA Error Codes + +### 5-1501-0000 + +!!! tip "" + This error was seen in NOSTALGIA Op. 2 when a user had a bad AVS config, make sure your data is from a reliable source and consider redownloading or replacing the file. \ No newline at end of file diff --git a/docs/externalresources.md b/docs/externalresources.md new file mode 100644 index 0000000..43a84c1 --- /dev/null +++ b/docs/externalresources.md @@ -0,0 +1,53 @@ +# External Resources + +!!! warning "Before reading:" + + This section contains a variety of external resources outside of this website, some even submitted by users! + + I'll try to keep this pertaining primarily to resources useful to home-play like the rest of the site. + + It might get a bit messy with time, but that's half the fun! + + +## General + +!!! tip "" + - [Remywiki](https://remywiki.com/Main_Page) - Generalized BEMANI content wiki + + - [GameRepair.info](https://gamerepair.info/) - Repository of arcade part repair & misc information + + - [Cons&Stuff](https://consandstuff.github.io/) - Community resource for DIY controllers + + - [BemaniPatcher](https://mon.im/bemanipatcher/) - Drag and drop hex edit solution for a myriad of games + +### IIDX + +!!! tip "" + - [sp12](https://sp12.iidx.app/) - IIDX SP☆12 reference site/difficulty tier list + + - [iidx.insane.pe.kr](https://iidx.insane.pe.kr/!/) - IIDX difficulty tier list + + - [Statistik](http://statistik.benhgreen.com/) - IIDX difficulty tier list + + - [atwiki](https://w.atwiki.jp/bemani2sp/sp/) - IIDX wiki in JP (includes tier lists) + + - [textage.cc](https://textage.cc/score/) - Chart viewing resource + + - [DJ DAO IIDX troubleshooting guide](https://github.com/minsang-github/rhythmgame-docs/wiki/DJ-DAO-IIDX-controller-troubleshooting) - Step-by-step guide for FPS, FP7, PEE, RES, RED controllers. + +### SDVX + +!!! tip "" + - [sdvx.in](https://sdvx.in/) - SDVX chart reference + + - [SDVX Progress Chart](https://docs.google.com/spreadsheets/d/1cFltguBvPplBem-x1STHnG3k4TZzFfyNEZ-RwsQszoo/edit#gid=0) - Functions as a generalized tier list + + - [SDVX Unlock Guide](https://docs.google.com/spreadsheets/d/1VBYWSUaKqHUOyfCtvkHFYBSnEPwxhTh8-m4UlU8zUL0/) - Translated guide for unlocks + + +### GITADORA + +!!! tip "" + - [573Controller](https://github.com/limyz/573controller) - DIY guitar solution for converting official cab guitars to USB home-use + + - [Drummania English Menu Translation](https://twitter.com/approvedtx/status/1174028743989317632?s=21) - Handy for beginners, lots of options! \ No newline at end of file diff --git a/docs/extras/ascs.md b/docs/extras/ascs.md new file mode 100644 index 0000000..cec0f01 --- /dev/null +++ b/docs/extras/ascs.md @@ -0,0 +1,363 @@ +# Notes on the Most Common ASCs and Vendors + +!!! warning "Before proceeding, please read:" + + This section is a compilation of several of the most popular ASCs (arcade-style controllers) along with their respective vendors. Alongside this, this guide includes any aspects worth noting from usage over the years to help potential buyers make an educated purchase. For the most part, this section aims to inform buyers more of negatives and problems above all else, so expect the focus to be more negative as it's important to note all the potential problems one may come across with ownership over the years. + + Lastly, certain bits will repeat across controller categories. Please treat each controller's section as its own individual list of noteworthy elements. + +# IIDX + +### DJ DAO FP7 EMP + + + +!!! tip "" + This controller works really well, the spacing is [accurate](/img/ascs/dao_comp.png) to the arcade between buttons and the turntable, obviously the turntable size is reduced which is often noticed as a minor nuisance to players that play both at home and on cabs. + + One minor aspect that's appreciated are the feet of the controller, which hold up really well on all kinds of surfaces with a stable grip, alongside the fairly hefty weight of the controller it's rather unlikely it's going to budge even a little bit during play. + + This controller is not without fault though, one of the first things to go is the turntable sticker in the middle, it starts to peel pretty much instantly for several people. While some people have kept it on despite the peeling, some have ended up scratching their pinky fairly significantly on it, so it's worth considering its removal or finding a better adhesive. + + The rubberized turntable grip itself is also susceptible to peeling, but it's far more reliable, perhaps miscare or improper installations from Dao lead to problems sooner, but for many it will last several years without a problem. + + Another concern is in only in having a `START` and `EFFECT` at the top of the controller. IIDX utilizes 3 buttons in menu navigation, namely `START`, `EFFECT`, and `VEFX` so the limited option is a bit troublesome. However, the solution to this problem DJ DAO utilizes is the ability for the `EFFECT` button to take multiple inputs as separate bindings. To simplify this further, enabling this option allows single, double, and triple taps of the `EFFECT` button in rapid succession to be 3 different bindings, alleviating the need for another button. + + Unfortunately though, this does add latency to the button, it also doesn't feel too natural, and many owners use more responsive custom firmware over DJ DAO's firmware that, at the time of writing, doesn't support this multiselect feature anyways, meaning the problem is still present. Many users choose to upgrade from the default USB board to a custom one (Arduino, Arcin) since the button lights can't be controlled via software and it's only polling at the default 250hz. Of course that also means you can't use the original board's PS2 connector anymore. + + One thing to note with the rubberized turntable grip, this controller gets gross. Dead skin will build up around the edges of the turntable itself on the metal and along the edges of the rubber grip. Regular cleaning is required. + + All in all, this controller has a few minor problems but is often regarded as the best balance between price and performance, as it matches arcade play at a great price. + +### PHOENIXWAN + + + +!!! tip "" + The Phoenixwan, sometimes jokingly referred to as the wang, or phoenixwang, is a rather odd controller. It fills a niche that wasn't needed (Gamo2's site was already selling 6 different IIDX controllers) but still manages to be the smallest full-sized beatmania controller offered on the site. + + As expected, the spacing between the buttons and turntable is arcade accurate, and the turntable is full sized unlike the FP7. Moreover, 4 buttons are present for menu navigation this time around. + + The controller is also very flashy, with a customizable turntable LED that emits 16 million different colors, turntable sensitivity adjustment, and an audio light mode that tries its best to "dance with the music" in fanciful fashion, it's a neat gimmick. Lastly for maximum portability, this controller is very light and even features wire storage at the bottom. + + However, with the flashy style this controller brings it unfortunately takes a few steps backwards in other areas. One of the most perplexing areas are the feet, there's no other way to put it, some surfaces it's great and some it sucks. With the reduced weight, this controller will slide across some surfaces with ease leading to a really unpleasant experience. It would not be surprising if with improper play that the controller could be moved very easily by accident. + + Onto one of the more defining features though, the turntable grip. Gamo2's site says it's made of liquid silicone and space aluminum. The grip is fantastic, it's incredibly grippy and a lot of fun to stop on a dime back and forth on your hand. But this material doesn't come without some faults unfortunately, it gets turned into a fingerprint magnet right out of the box, and some users have reported the grip wears off and becomes flat after heavy usage. One could also argue that making a controller trying to replicate an arcade experience (hence arcade-style) that it's a bit backwards to deviate away from the arcade experience as well, but that's more semantics than anything. + + Lastly and most critically, a fair batch of buyers reported PCB problems where the board seemed to flat out die after just a few months. Apparently a firmware update can be pushed to work around some issues, but there's not much that's definitive as a solution in regards to this issue at the time of writing. + + Overall, the Phoenixwan is probably the best option in terms of portability and style, it's a very flashy device and great to take over to a friend's for some fun. But, with it comes a heftier price tag that might not be worth it for people looking to simply enjoy the game. With some critical issues, this controller might just be style over substance. + +### YuanCon IIDX + + + +!!! tip "" + YuanCon's IIDX controller looks rather plain, doesn't it? But the controller works really well, the spacing is of course accurate to arcade, and the turntable is full size as well. Obviously, it features 4 buttons for menu navigation too, which is incredibly convenient. + + The cost is very reasonable too, by default it comes with dubious microswitches labeled "Chinese" on the site, it's important to note that if a buyer upgrades to Omron switches on the site, it's a bit cheaper than buying Omrons separately later down the line. The "Chinese" switches are definitely not recommended and feel bad. + + This controller oddly uses an acrylic turntable as well, while it's a nice attempt it's somewhat disappointing overall. At the very least, it's fairly easy to modify the turntable and place something more proper such as an EMP mat on it for a better experience. Just note that the screws are not countersunk around the center of the turntable. + + Some people may be dissatisfied that the turntable has no lights too, an obvious cost cutting decision. + + The default buttons are typical cheap Chinese ones, these risk occasionally getting stuck around the enclosure's corners but it's less common than Chinese buttons for use on other games such as Pop'n and some users don't end up with any problems at all. Depending on a buyer's level of tolerance they may find these buttons fine or desperately yearn for an upgrade. + + One big positive for many is the detachable USB cable, it uses just one USB port which is quite handy. This comes at some costs though. The biggest issue is the lack of PS2 support, the lights are also dimmer than Dao's offerings which utilize 2 USB ports. + + Yuan's IIDX attempt is solid, but it's not without fault. Regardless, just about any buyer would be more than satisfied playing and enjoying the game on this controller regardless of the few minor faults it has. + +### IIDX Arcade Parts to Consider + +!!! tip "" + IIDX controllers have a lot of options to choose from and it can be daunting, especially if you've never played before. I'll try to cover springs, microswitches, and buttons to the best of my ability. + + I've also documented many of the parts that I talk about and where to buy them [here](/extras/parts) + +!!! tip "" + + - Buttons/Keys + + The most commonly used buttons are Sanwa, Gersung, and DJ DAO/Yuan Chinese buttons. + + I can't really speak for every arcade in Japan, but both in Japan and US almost all arcades use Sanwa buttons. The Samduck buttons are a Korean variant that can be found in Korean arcades, but are still superceded by Sanwa buttons. The DJ Dao/Yuancon buttons are cheap Chinese clones that feel less satisfying both in physical feedback and audio feedback. Some players find them servicable, but I ultimately recommend upgrading when possible. The travel distance is different on Dao buttons for example due to the inaccurate construction having a different height than official parts like Sanwa, so the feeling will be significantly different in using them. + + - Microswitches and Springs + + If you buy the keys sepearately it's worth noting what spring and microswitch setups they come with: + + - Sanwa keys come with 100g springs and 100g Omron switches. + - Samduck keys come with 20g springs and 65g Gersung switches. + - DJ DAO keys come with 40g springs and 20g Honeywell switches. + +   + + There are also many other cheap Chinese variants that I won't bother listing because I insist you do not play on them. Please stick to Omron or Gersung microswitches for an enjoyable play experience! The Honeywell microswitches for example are an incredibly cheap feeling switch that often breaks easily. + + With this in mind, the most common switch and spring setups are 50g/20g, 50g/60g, and 50g/100g setups (microswitch listed first, then springs in this case). However, you will find arcades around the world using a myriad of setups. + + By default for a new or inexperienced player, I would recommend a 50g/60g setup as it's a safe setup that won't require frequent maintenance, has a nice weighted feeling that will help build stamina, and isn't too light for charts with heavy amounts of jacks. That said, it ultimately comes down to user preference, with lighter setups running the risk of more maintenance, but being easier on one's hands especially for dense charts, and heavier setups being more sturdy, but easily tiring out one's hands, 100g/100g for example however, is too extreme for the grand majority of players and simply exhausting and painful to play on. + + One thing worth noting is many tournaments in Japan have utilized a 25g/60g setup as well, with the heavy springs being beneficial for jacks, just as one example. + + Your springs will also naturally lose resistance over time, so if you played at an arcade with a heavily worn setup I'm sure you'll find it feels very different to your brand new home setup even if you have the same weight ratings. + + Experimentation is strongly recommended regardless as you become a more developed and experienced player. If you love the game, don't be afraid of traveling to try out different setups or dropping some more cash on parts to experiment. + + +# Sound Voltex + +### DJ DAO SVSE5 + + + +!!! tip "" + The SVSE5 is a pretty straightforward controller without much to worry about, the sizing is very compact while retaining proper arcade spacing between the knobs and buttons at a very reasonable price, most of the gripes with this controller will come based on what parts are used. It uses the same firmware/board as the SVRE9 and also lacks HID-controlled lights. + + Dao's SDVX buttons are especially prone to sticking and getting stuck under their holders, notably more than their IIDX counterparts. Thankfully, this problem can be alleviated by sanding down the corners of the buttons but they still obviously do not feel as nice as Sanwa buttons and it requires taking apart the controller, which while simple, is a minor inconvenience. + + The default encoders (listed as `Knobs Structure` on the site) are horrendous, there's no nice way to put it. Please avoid these at all costs if you wish to enjoy the game or upgrade to Copals ASAP. But, it's worth noting that paying the upgrade cost when buying your controller ($30 at the time of writing) is cheaper than buying a set of Copal encoders separately (around $60+). + + Dao's SVSE5 is honestly somewhat odd to write on solely because there's not much to say, it's about as standard as it gets. The SVSE5 functions well and when avoiding the default encoders buyers will end up with a controller that's able to be enjoyed just as well as any other with minimal problems. + +### YuanCon SDVX + + + +!!! tip "" + YuanCon's SDVX controller has quickly become the most popular option for Sound Voltex players and is inarguably their best controller yet. The controller feels great in your hands thanks to its light weight and good sizing. Like the SVSE5, it matches arcade dimensions perfectly as well, so anyone can transfer their skills from home to the arcade 1 to 1. One other noteworthy convenience is the detachable USB cable, making transportation and storage a little more enjoyable. + + One of aspects people comment on a fair bit is the metal casing, after years of Dao's tacky glossy acrylic designs a lot of buyers have welcomed this addition with open arms. Yuan's SDVX controller is as durable and sturdy as any other out there. + + Yuan's stock SDVX buttons suffer the same problems as Dao's and are especially prone to sticking and getting stuck under their holders. While some people don't end up with any issues at all, others do, it's a mixed bag presumably based on luck on how the plastic mold came out. Thankfully, this problem can be alleviated by sanding down the corners of the buttons but they still obviously do not feel as nice as Sanwa buttons and it requires taking apart the controller, which while simple, is a minor inconvenience. + + The stock encoders on this controller are interesting to note too, they're a surprisingly decent option to use, they feel very smooth and function well during play, but it's worth noting not everyone likes how they feel. Of course they don't feel like the arcade experience, but they're more than suitable for enjoyment. + + Overall, YuanCon's SDVX is a very enticing option for many, it's a great controller with minimal issues. There's little negative outside of some minor gripes to say, and at this price range, buyers would be hard pressed to find a controller that's definitively superior. + +### DJ DAO SVRE9 + + + +!!! tip "" + The crown jewel for many Sound Voltex players, the SVRE9 is designed to match the dimensions of an arcade cab as best as possible, providing both maximum luxury and performance. This controller includes arcade knobs out of the box, offering no alternative and is no doubt a part of the heftier price tag. + + This controller is a monster, both in size and weight, it is probably one of the most inconvenient Sound Voltex controllers to transport but even still it's not honestly not that bad, make sure you have enough space to safely place the controller on any surface before playing. One positive about the greater size and weight is that there's almost no risk of it moving around when accidentally bumped. + + Dao uses a custom harness for the arcade knobs to connect with the encoders, it's an odd contraption but it works well enough. However, it is worth noting that the encoders themselves have a plastic shaft, if tightening the inner screws holding them in place make sure to not tighten them too much as the screws will end up actually drilling into the plastic and destroying the encoder beyond repair. + + The knobs unfortunately risk shipping damage wherein the knob will have a grinding feeling when being rotated, it's extremely unpleasant but thankfully solution is simple, it requires lubricating the inner parts of the knobs by taking apart a bit of the controller, a minor inconvenience. + + Dao's SDVX buttons are especially prone to sticking and getting stuck under their holders, notably more than their IIDX counterparts. Thankfully, this problem can be alleviated by sanding down the corners of the buttons but they still obviously do not feel as nice as Sanwa buttons and it requires taking apart the controller, which while simple, is a minor inconvenience. One could argue that in choosing to purchase a luxury product like this, it's questionable to skimp on button quality however. + + Another thing to note is that the default firmware registers itself as keyboard (buttons) and mouse (x/y for knob movement. This, the fact that it doesn't support HID-controlled lights and that it polls at 250hz is enough for many to replace it's internal control board with a custom one like the Arcin or Arduino. + + Overall, this controller is widely considered the "best" option solely based on the luxury factor alone. However, the cheaper options provide the same arcade-exact dimensions, parts, and experience. It's a fantastic controller, but not for those with tighter wallets as the vastly increased cost ultimately provides nothing different in terms of play experience. + +### SDVX Arcade Parts to Consider + +!!! tip "" + Sound Voltex controllers have a lot of options to choose from and it can be daunting, especially if you've never played before. I'll try to cover springs, microswitches, and encoders to the best of my ability. + + I've also documented many of the parts that I talk about and where to buy them [here](/extras/parts) + + +!!! tip "" + + - Springs and Microswitches + + For springs and microswitches, most [vendor](#vendors) options consist of 20g, 60g, and 100g springs. Alongside 25g, 50g, and 100g microswitches. Cabs around the world use a variety of setups but two of the most common setups are 20g springs with 100g microswitches, and 100g springs with 100g microswitches. Commonly referenced as 20g/100g and 100g/100g, though sometimes interchangably used as 100g/20g for example. (there's really no definitive order and people put the spring weight or switch weight first on a whim constantly.) + + There are also various manufacturers of these parts, arcades use Sanwa parts. Some Korean arcades use Gersung Samduck parts however, a good Korean-made alternative. There are also various Chinese parts of equally garbage quality. If you order a controller with the stock Chinese buttons, they are including the cheap Chinese springs. These are fine, it's only a spring after all! But for the microswitches, please never use Chinese microswitches, they are of garbage quality and make playing the game horrendously unfun, I am adamant you do not believe the lies of those who say otherwise. + + An incredibly light setup such as 20g/25g can result in an extremely dissatisfying feedback on button press, making it hard to get the feeling of actuation on button press. Not many people go for this setup. + + Lots of home users default to 50g/60g setups for their first time around, it's a nice balance until they become more comfortable with the game and begin to branch out a bit more and figure out their preferences. + + Furthermore, lots of Round1 arcade locations in the US use 20g spring 100g microswitch setups, so if you played at one of those, you probably felt this setting. Just keep in mind that as the springs/switches wear down the feeling will be a little different than a fresh set! + + - Encoders + + As for the encoders, they're the things that turn with the knob internally, they dictate the feeling of the rotation. The default encoders on most of the Dao controllers is the Alps 801 set, the Chinese default ones. These are beyond unplayable, with a clicky angle-snapping experience over a smooth twist. The grand majority of players opt for copal encoders, which are both incredibly smooth and sensitive. However, they are prone to breaking within about a year of moderate player. + + The YuanCon controllers use encoders that many feel are superior to copals both in feeling and durability, so they're a very worthwhile option as well. + + Lastly, the arcade encoders are extremely durable, reliable, and stiffer to turn than the other options, they're also more expensive as well. + + I've documented many of the parts and where to buy them [here](/extras/parts) + +# Pop'n Music + +### DJ DAO POP ASC + + + +!!! tip "" + Gamo2's Pop'n offering is a controller that results in a project for a lot of players. While it is a playable experience, for many, it will be dissatisfying out of the box. However, with a bit of knowledge one can turn it into a fantastic controller. + + One of the biggest issues with Pop'n controllers are the buttons. The Chinese default buttons are simply unacceptable, these things stick [like crazy](https://www.youtube.com/watch?v=lC7G8P-sGXY) and getting [Samduck buttons](http://istmall.eumshop.com/us/?menuType=product&mode=view&act=list&prodCode=2016062400008), a Korean alternative, is considered almost mandatory for a lot of players. It is possible to sand down the stock Chinese Dao buttons or get lucky and only have a few with problems, but the odds are heavily stacked against the buyer's favor here. The primary problem here and why Sanwas are not offered are their extreme cost, at around $40 a button it's simply out of reach for many. At the very least, one nice addition is that by default the controller comes with Omron microswitches. + + Dao's controller design here also isn't the best, it's big and bulky which has its pros and cons depending on preferences, but unlike Gamo2's other options providing magnetic bottoms that are easy to remove, the Pop'n ASC has *20* screws to gain access to the internals. While buyers hopefully won't need to be digging inside all that often, it's still a tedious process. + + This controller is notably loud too, any form of play is going to generate substantial noise that will annoy others in your household. Pop'n is naturally a loud game, but many attempts can be made to alleviate some of the noise. Some people play with a towel over the controller which is called toweling, but in the more desperate cases some people have [filled the internals to brim with cotton balls](/img/ascs/cotton.jpg) and other various materials. + + Many users choose to upgrade from the default USB board to a custom one (Arduino, Arcin) since the button lights can't be controlled via software and it's only polling at the default 250hz. Of course that also means you can't use the original board's PS2 connector anymore. + + The pricing on this controller is a bit rough for many, due to the size and weight the shipping charges can be a significant problem notably more than other game's options as well, at least US buyers benefit from free shipping when it's in stock at the US storehouse. This controller is a good option, but it requires a bit of time, work, and funds to be truly great. + +### YuanCon Pop'n + + + +!!! tip "" + YuanCon's Pop'n controller arrived on the scene many years after Dao's controller and seemingly has managed to address some of the more notable difficulties of its competitor at an expected competitive price point and with a sleek design. + + Right away it should be noted that this controller is a significantly smaller size than the Dao while retaining the expected arcade spacing between buttons. It's also in a metal shell for added durability yet it has notably less weight than the Dao. + + One big positive for many is the detachable USB cable, it uses just one USB port which is quite handy. This comes at some costs though. The biggest issue is the lack of PS2 support, the lights are also dimmer than Dao's offerings which utilize 2 USB ports. Like it's competitor, it also doesn't seem to support HID-controlled button lights currently. + + One of the biggest issues with Pop'n controllers are the buttons. Yuan's stock Chinese buttons are notably better than Dao's, but [Samduck buttons](http://istmall.eumshop.com/us/?menuType=product&mode=view&act=list&prodCode=2016062400008), a Korean alternative, are still preferred as the stock Chinese buttons don't always feel satisfying depending on preferences. Sanwa buttons are incredibly expensive at around $40 a pop for Pop'n controllers, so they're simply out of the question for many players. + + It's also worth noting that this controller comes with Chinese microswitches, which is a disappointment. Many players vastly prefer Omron microswitches over the Chinese clones. + + This controller is notably loud too, any form of play is going to generate substantial noise that will annoy others in your household. Pop'n is naturally a loud game and this applies to any controller, but many attempts can be made to alleviate some of the noise. Some people play with a towel over the controller which is called toweling, but in the more desperate cases some people have [filled the internals to brim with cotton balls](/img/ascs/cotton.jpg) and other various materials. + + Yuan's Pop'n controller and its pricing is very good, perhaps due to the known dissatisfaction with Chinese Pop'n buttons, the controller is offered to come with no buttons and switches to save further on cost, making it an extremely enticing option for anyone that would rather buy their buttons and switches separately. Compared to alternatives, the pricing on this Pop'n ASC is best in class by a significant margin and it functions just as well as any other out there. + +# jubeat + +### DJ DAO FB9 + + + +!!! tip "" + Gamo2's jubeat controller is a very fun contraption, buyers actually slide their own monitor under it in order to play. While neat, the pricing on this thing isn't for the faint of heart and unfortunately it doesn't come without some problems. + + Right away the need to buy your own monitor separately should be addressed, as it adds to the already high cost and the requirements for the monitor are somewhat specific as well, further complicating things. + + Dao's jubeat board is also laughably bad and skilled players notice difficulties with timing and accuracy issues compared to a cab, many FB9 owners actually swap out the board for [a P4IO alternative](https://zhousensor.world.taobao.com/) that matches arcade play far better for a more accurate and enjoyable experience. The biggest difference is in [how multiple buttons are pressed](https://www.youtube.com/watch?v=Q2ptgzlEmWE) so the issue is less prominent and earlier stages in the game. + + The rubbers for the buttons are also less than desirable, with a gummy and dissatisfying feeling that's prompted many to switch. [Zhousensor](https://zhousensor.world.taobao.com/) provides better replacements ([resold by YubiParts for US and international buyers](https://www.yubiparts.com/)) and official ones can be bought on sites like [Yahoo Auctions Japan](https://auctions.yahoo.co.jp/) for a reasonable price. + + The controller can also slide around a bit on some less than desirable surfaces and with inexperienced play, creating a need to readjust it fairly often after songs. + + Dao's buttons also have a slight rainbow effect going on around the edges inside the plastic on certain screens, some people may find it moderately distracting to see. + + Gamo2's jubeat offering isn't terrible, but it's not great either. The controller is for many people essentially a project that has a far greater pricetag than the notable one their site already lists. Buyers can end up going a few hundred over the controller's individual price just to get the controller to feel like a truly enjoyable experience. With the problems listed above, it's hard to fully recommend it. But ultimately, options are scarce for jubeat players. + +# DDR + +### StepManiaX Stage + + + +!!! tip "" + Dance games have the luxury of many pads functioning the same across a wide variety of games so while it's not specifically for DDR, this is simply the apex beyond buying your own arcade cab. At an extreme price tag, Kyle Ward spares no expense to create the ultimate controller. It's even hard to label this thing as a true ASC, as it's not styled like an arcade controller, it IS one! + + Getting into the important details though, a couple of changes on the latest model feature a new sleek design, superior FSR sensors that help to minimalize maintenance, and a fleet of sleek LED customization to really help a buyer individual their product and make it look and feel like theirs. + + There's really only two "problems" present. Firstly, the cost, it's a premium and then some. However, the experience is also the best of any option short of owning a cab or official arcade pads. Yet even then, there's a strong argument to be had that the newer technology present trumps some of the dated arcade parts and design. + + Second, the weight. While the pad is on wheels for easy movement the listed weight on the side is 220 pounds, getting the pad up and down staircases won't be fun. + + Purists might argue using the StepManiaX Stage on DDR isn't an authentic experience without brackets and no doubt the feeling is slightly different as well with the different sensors. But many prominent players prefer bracketless pads anyways and consider the design outdated. FSRs are undoubtedly superior technology as well. + + Overall, it's borderline impossible to find fault with the StepManiaX Stage beyond purist nitpicking, the controller is is simply the best. An entire separate page could be written on the difficulties DDR ASCs over the years have had with numerous disasters in regards of shipping challenges and historically bad controllers to the point that this is the best option short of building your own pad, buying a cab, or buying pads off a cab. Yet even then, the experience might be found superior here. + +### L-Tek pads (AKA Polish Dance Pads) + + + +!!! tip "" + + In terms of functionality, these pads are totally fine for beginner to intermediate play. Compared to the pads listed above they are obviously more "home grown" feeling, but they are perfectly functional and with regular maintenance will carry you well into the DDR 15/ITG 12 range before needing to think about modifications. + + Pads are availble in an array of configurations (4 panel or 5 panel variants are available) and prices, they have recently added a pad that has a bar pre installed and also offer it seperate if you would like to add it to an exsisting pad. + + In terms of pricing, they are relatively affordable coming in at 184.58USD+shipping. + + All in all, I'd say they are a totally acceptable pad for someone wanting to get back into the game or starting out and wanting something that will last with little upkeep. + +# Vendors + + + +### Gamo2 + +  + +!!! tip "" + - Website: + - Social Media: + + Gamo2 has been around for a rather long time and is still one of, if not the most popular choice for people looking to buy an ASC. Dao sells a wide variety of controllers and occasionally squeezes out a new one here and there. + + Buyers can expect their controllers to arrive in secure and snug packaging, shipping time varies but is often prompt. Alongside this, Gamo2's shipping is incredibly expensive, they only ship with EMS and charge a premium for it, it's not fun. However, Gamo2 provides a US storehouse for buyers in the US to enjoy free shipping and get packages sooner as well. Keep an eye on their social media as the US storehouse offerings only happen a few times a year and sell out quick! + + Some buyers have noted lengthy delays when buying from Gamo2 so it's not all good news, seemingly randomly as well without any communication too. It's worth checking if there's any Chinese holidays going on or coming up before making a purchase, as they will certainly add to the wait. Most people might be surprised how many of those holidays seem to arise at just the worst time. + + Gamo2's in-house buttons flat out suck across every controller, these buttons are cheapo Chinese knock offs of Sanwa buttons and it shows. Depending on a buyer's level of tolerance they may find these buttons fine or desperately yearn for an upgrade. Sanwa buttons may seem overpriced, but they are well worth the investment for those looking for arcade accuracy. Sound Voltex and [Pop'n Music](https://www.youtube.com/watch?v=lC7G8P-sGXY) Dao buttons are especially prone to getting stuck within the controller. + + Gamo2 also provides Honeywell switches by default while charging additional for Omron switches. Sadly, Honeywell switches are laughably bad compared to Omron and the almost unanimous consensus is to not even bother with Honeywell switches, they are far too sensitive and break far too easily. Upgrading to Omron switches should be an *immediate* decision for anyone unable to buy them right away alongside their controller, or simply holding out until the upgrade can be included with the purchase, it's that extreme of a difference. + + Finally, Gamo2's tech support is good. Dao's English isn't the best, but he is very patient and understanding, willing to work with buyers on almost any issue or question they could have. + + + +### YuanCon + +  + +!!! tip "" + - Website: + - Social Media: + + YuanCon has grown immensely in popularity in just a short amount of time, if Gamo2 is no longer on top, then look to YuanCon as they self-report they're currently ranked first in Chinese sales! YuanCon's approach so far has been fantastic communication and utilizing their Discord server and Twitter to get their name out there as much as possible, even partnering with prominent rhythm game players. + + Buyers can expect their controllers to arrive within a moderate timeframe and in fancy Yuan-branded packaging that's more than suitable. On top of this, the pricing is extremely competitive and shipping prices are more fair than Gamo2. With this however, comes a lack of availability. Controllers often go out of stock so it's important to keep up with when pre-orders and restocks are going up. + + Default Yuan buttons are the typical cheap Chinese buttons that are not ideal for play, some users report less trouble with the buttons than Dao's default buttons, but Sanwas are always preferable. Yuan thankfully doesn't even bother with Honeywell switches, only offering Omron microswitches instead, a welcomed decision. + + Perhaps due to inexperience or quality control issues, there has been a notable minority of people with issues that have to be acknowledged below. + + Shipping times have varied widely, the grand majority of buyers get their packages promptly within 1-2 weeks, but there have been reports of some extreme cases well over 4+ weeks. This situation however was met promptly with an [official statement](https://yuancon.store/official/aboutpcb.pdf) from Yuan and his team. However, at the time of writing, I am aware of someone that has been waiting for their controller to ship for over 3 months. + + Some controllers have also arrived damaged or with missing elements. One prominent example was a [large number of broken panels](https://twitter.com/yuancontop/status/1150695358688899072) prompting refunds and a manufacturing change. + + Also worth noting that again at the time of writing, YuanCon's RGB offerings literally have LEDs that brown out and their engineer "does not want to add HID lighting." Both a comical and egregious negative. + + It's worth noting that despite these negatives, Yuan and his team have made great efforts to stay very communicative and ensure that nobody ends up with a faulty product they're dissatisfied with, as shown in the above links. YuanCon's support and communication is top notch, and the future remains promising. Even if there's a small risk of initial hassle through slow shipping or quality control, buyers will ultimately end up with a fully functioning product that they can be satisfied with one way or another. + + + +### StepRevolution (StepManiaX) + +  + +!!! tip "" + - Website: + - Social Media: + + Premium pads, spare parts and full cabinets that are designed to either play StepmaniaX or have other games run on them are for sale, there is official support for setting up a normal computer for use with stepmania or if you have the right configuration you can use Pump it up simulators with the cabinet aswell, and Kyle Ward is always very helpful for anyone who has questions! + + Only downside is the pads/cabs sell out usually within minutes of them going on sale and the shipping time can be multiple months some times as they are done made to order. Buyers can expect their pads to arrive in secure pallet packaging and the few times things have arrived either damaged or non working, customer support has been excellent and issues are always resolved quickly. + + American based company and every person who has purchased a pad or cabinet has been nothing short of ecstatic with it, if you have the money and don't mind waiting, this is the best option on the market, in or out of the arcade! + + + +### L-Tek + +  + +!!! tip "" + - Website: + - Social Media: + + Pads are good starting points and most customers who've purchased them have been happy with them. Shipping is usually reasonably quick (upto a month depending on where in the world you are). + + They offer a range of products, both 4-panel and 5-panel pads, acecssories (replacement panels, sensors, bar attachment) to suit most people's dance pad needs. + + I have heard of cases of panels cracking under heavy use, but every case of this (I can recall one) has been resolved quickly and at no extra cost to the customer who had the pad. + + If you're in the market for a dance pad, and don't want to spend SMX money or hunt down an old arcade cabinet, I'd say they're worth the money. \ No newline at end of file diff --git a/docs/extras/hexguide.md b/docs/extras/hexguide.md new file mode 100644 index 0000000..468c1d9 --- /dev/null +++ b/docs/extras/hexguide.md @@ -0,0 +1,52 @@ +# Beginner's Guide to Hex Editing + +!!! warning "Before reading:" + This section is for users that have never hex edited their game before, if you already know how to do this, nothing here will be of any use to you. + + +### Before Beginning + +!!! tip "" + There's several ways to apply hex edits to games, for the sake of this guide we'll demonstrate the manual way of doing edits to games in the event that the sites/services that simplify the process ever go down. + + We'll be using HxD to edit beatmania IIDX 25 CANNON BALLERS, the process is the same for any other game so this guide can work universally. + + Here's what you'll need: + + - Your favorite hex editor, such as [HxD](https://mh-nexus.de/en/hxd/). + - A clean copy of your desired BEMANI game. + - A backup of your original `.dll` before editing in the event of any mistakes. + +### Getting Started + +!!! tip "" + So after downloading HxD or your preferred editor and deciding on what hex edits you want to apply, it's time to load it up for the first time. If you're using HxD, you'll be greeted with the screen below. + + + +!!! tip "" + Open up the appropriate `.dll` file inside HxD that you wish to edit, for the grand majority of hex edits, this is the main game file, such as `bm2dx.dll`, `soundvoltex.dll`, and so on. Pictured below, I've opened up `bm2dx.dll` inside of HxD. + + + +!!! warning "Please note:" + For demonstrative purposes, we're going to apply 1 edit to the game. The edit we'll be applying is EXCLUSIVE to this version of the game, meaning that it will not work on any other version of the game, nor any other games, because it's modifying specific addresses in memory that only apply to this specific version of the game. + +!!! tip "" + The edit we've chosen to apply is `Unlock All Songs` and its edit is `0xB60B2: 74 10 -> 90 90` so to start in HxD we're going to hit `Ctrl+G` to open the `Goto` window. From here, we'll input the offset `B60B2` inside the `Offset` section, as pictured, and hit OK. + + + +!!! tip "" + Your cursor should be taken to the offset at the exact location you're ready to edit. As you can see, the numbers in front of you are `74` and `10` the same exact ones we need to replace! If they're not, it's likely you put in the wrong offset so be sure to double check. + + + +!!! tip "" + From here, all we need to do is mouse over `74 10` and replace it with `90 90` you can do this by either manually typing `90 90` or by copy and pasting, it should look as it does below. + + + +!!! tip "" + Once that's done, all you need to do is save the changes and repeat for every additional edit you want to do! The whole process is merely repeating by going to whichever offsets an edit requires and replacing the values in each location just as we did! Simple, right? + \ No newline at end of file diff --git a/docs/extras/parts.md b/docs/extras/parts.md new file mode 100644 index 0000000..c217956 --- /dev/null +++ b/docs/extras/parts.md @@ -0,0 +1,265 @@ +# Arcade Part Documentation + +!!! warning "Before proceeding, please read:" + + This section is a list of various arcade part manufacturers with part model numbers and misc documentation concerning said parts as needed, alongside links on where to purchase parts from the most trusted locations (not every link to purchase will be included, there's too many parts sellers, only ones I've personally found reliable are listed.) + + I'm not confident this will be all-encompassing of every part ever, but it will be sufficient for those purchasing arcade style controllers (ASCs) and those in need of maintenance for said controllers. I'm omitting things like 400g springs, or 10g microswitches because no one really uses these products for regular play, but they exist nonetheless! + + One last thing, if there's for example, multiple model numbers of say, 25g microswitches, you can assume they have different internals and thus provide different feedback. I'm not aware of anyone qualified and experienced enough to give exact logistics on how these parts may feel different, so I've omitted any details and will simply specify what the most common [vendors](/extras/ascs#vendors) provide alongside these variants. + +!!! danger "7/26/2020 IMPORTANT Notice:" + + Rakuten has switched to separate services, namely Rakuten Ichiba and Rakuten Global Express, they have provided an FAQ [here.](https://global.rakuten.com/en/store/sanwadenshi/close/) Essentially, some vendors will continue to offer international shipping, but the proxy service now exists for those that do not. If Sanwa Denshi does not ship to your region, simply sign up for their proxy service, or another of your choosing that is willing to provide for you. + + Alongside this, Sanwa Denshi seemingly no longer provides the typical lamps in many of the old-model button types that has been custom for many years. Given I am unfamiliar with anyone currently using these new lamps in their controllers, at the time of writing, I will provide links to buttons with the lamp and lamp-less buttons. On some listings, they allow the option to select the LED voltage and on others, they do not. + + - Just for reference: + - DJ DAO boards: 5V + - YuanCon boards: 12V + - Arcin: 5V (or 12V if you only hook up the negative side) + + So, if you're overly concerned as a new buyer, you can choose to buy lamps at a later date. I apologize for the inconvenience and current inability to provide more detailed information, and will be working to update this ASAP. + + Lastly, I have to remove IST Mall (Korean seller) from many of the listings at this time because their Sanwa options seemingly have now begun to use the new-style connectors that are not compatible with provided connectors from existing ASC vendors. I apologize for this inconvenience, but feel free to buy this new style if you understand JST connectors and can wire things up with basic electronics skills. + +## IIDX Buttons + +### Sanwa + +!!! tip "Rectangular Gameplay Keys" + - Both OBSA-45UK-W and OBSA-45UK-B come with 100N springs and 100g switches (Omron V-10-1A4). + - OBSA-45UK-W (White keys) + - Where to buy: + - [Sanwa Rakuten (Official JP Store) - With Lamp](https://item.rakuten.co.jp/sanwadenshi/ilumb_099/) + - [Sanwa Rakuten (Official JP Store) - Lamp-less](https://item.rakuten.co.jp/sanwadenshi/ilumb_100/) + - [Buyee (Rakuten Proxy) - Old Lamp Holder With Lamp](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000151) + - [Buyee (Rakuten Proxy) - Old Lamp Holder Lamp-less](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000152) + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992239) + - OBSA-45UK-B (Black keys) + - Where to buy: + - [Sanwa Rakuten (Official JP Store) - With Lamp](https://item.rakuten.co.jp/sanwadenshi/ilumb_097/) + - [Sanwa Rakuten (Official JP Store) - Lamp-less](https://item.rakuten.co.jp/sanwadenshi/ilumb_098/) + - [Buyee (Rakuten Proxy) - Old Lamp Holder With Lamp](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000148) + - [Buyee (Rakuten Proxy) - Old Lamp Holder Lamp-less](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000149) + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992239) + +!!! tip "Square Menu/Option Buttons" + - OBSA-30UK + - Where to buy: + - [Sanwa Rakuten (Official JP Store - With Lamp)](https://item.rakuten.co.jp/sanwadenshi/ilumb_237/) + - [Sanwa Rakuten (Official JP Store - Lamp-less)](https://item.rakuten.co.jp/sanwadenshi/ilumb_239/) + +### Samduck + +!!! tip "Rectangular Gameplay Keys" + - CWB 405 + - Comes with Gersung switches (45g) and springs (20-30N) + - Does not come with lights but compatible with Dao lamps and ISTMall lamps. + - Can use the same switches and springs as Sanwa OBSA-45UK buttons. + - Where to buy: + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992351) + +!!! tip "Square Menu/Option Buttons" + - CWB 406 + - Does not come with lights but compatible with Dao lamps and ISTMall lamps. + - Where to buy: + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992352) + +  +## SDVX Buttons + +### Sanwa + +!!! tip "Square BT Gameplay Buttons" + - Sanwa OBSA-60UK + - Where to buy: + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_078/) + - [Buyee (Rakuten Proxy) - Old Lamp Holder With Lamp](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000121) + - [Buyee (Rakuten Proxy) - Old Lamp Holder Without Lamp](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000123) + + + +!!! tip "Rectangular FX Gameplay Buttons" + - OBSA-45UK-B (Black FX keys) + - Where to buy: + - [Sanwa Rakuten (Official JP Store - With Lamp)](https://item.rakuten.co.jp/sanwadenshi/ilumb_237/) + - [Sanwa Rakuten (Official JP Store - Lamp-less)](https://item.rakuten.co.jp/sanwadenshi/ilumb_239/) + - [Buyee (Rakuten Proxy) - Old Lamp Holder With Lamp](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000148) + - [Buyee (Rakuten Proxy) - Old Lamp Holder Lamp-less](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000149) + +!!! tip "Start Button" + - OBSA-30UK + - Where to buy: + - [Sanwa Rakuten (Official JP Store - With Lamp)](https://item.rakuten.co.jp/sanwadenshi/ilumb_237/) + - [Sanwa Rakuten (Official JP Store - Lamp-less)](https://item.rakuten.co.jp/sanwadenshi/ilumb_239/) + +### Samduck + +!!! tip "Rectangular FX Gameplay Buttons" + - CWB 405 + - Where to buy: + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992351) + +!!! tip "Start Button" + - CWB 406 + - Where to buy: + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992352) + +  +## SDVX Encoders + +### Options + +!!! tip "Copal Encoders" + - RES20D-50-201-1 + - Where to buy: + - [Octopart (Lists Multiple Sellers)](https://octopart.com/res20d-50-201-1-nidec+copal-87192281) + - [GAMO2 (Upgrade set from stock Chinese, CN seller)](https://www.gamo2.com/en/index.php?dispatch=products.view&product_id=316) + +!!! tip "YuanCon's Encoders" + - Where to buy: + - [Tabobao (CN Seller)](https://item.taobao.com/item.htm?spm=a1z10.1-c.w4023-4332278748.12.6619558dDKUwMr&id=545099516240) + +!!! tip "Sensatec Encoders (Arcade)" + - ELV-24Y36A-K (GAMO2 Arcade Encoders) + - Where to buy: + - [Sensatec (JP Seller)](https://www.sensatec.co.jp/e/products/detail.php?product_id=47) + - [Metro Electric (JP Seller)](http://www.e-metro.jp/quick/ELV-24.html) + - ELV-24M36A-K + - Where to buy: + - [Sensatec (JP Seller)](https://www.sensatec.co.jp/e/products/detail.php?product_id=336) + +  +## Pop'n Buttons + +### Sanwa + +!!! tip "Circular Dome Gameplay Buttons" + - OBSA-100UMQ + - Comes with 200N springs and 200g Omron switches. + - Where to buy: + - [Sanwa Rakuten (Official JP Store) - With Lamp](https://item.rakuten.co.jp/sanwadenshi/ilumb_133/) + - [Sanwa Rakuten (Official JP Store) - Lamp-less](https://item.rakuten.co.jp/sanwadenshi/ilumb_135/) + - [Buyee (Rakuten Proxy) - Old Lamp Holder With Lamp](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000193) + - [Buyee (Rakuten Proxy) - Old Lamp Holder Lamp-less](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000195) + +### Samduck + +!!! tip "Circular Dome Gameplay Buttons" + - CWB 401 + - IST Mall incorrectly claims to ship these with 40N springs and 45g Gersung switches, but in reality the springs are much, much heavier (suspected to be 200-300N springs). Recommended to separately purchase springs and switches. + - Where to buy: + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992353) + +  +## Jubeat Rubbers + +### Options + +!!! tip "ZhouSensor" + - Where to buy: + - [ZhouSensor Taobao Store(CN)](https://item.taobao.com/item.htm?id=44786039741) + - [YubiParts (US-based, ships internationally)](https://www.yubiparts.com/) + +  +## Microswitches + +### Omron + + +!!! tip "25g Microswitches" + - D2MV-01-1C2 (GAMO2 and YuanCon provided) + - Where to buy: + - [Digikey (US Seller)](https://www.digikey.com/product-detail/en/omron-electronics-inc-emc-div/D2MV-01-1C2/Z4707-ND/5236583) + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_222/) + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992803) + - [Buyee (Rakuten Proxy)](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000320) + + - VX-01-1C22 + - Where to buy: + - [Digikey (US Seller)](https://www.digikey.com/product-detail/en/omron-electronics-inc-emc-div/VX-01-1C22/Z4644-ND/369961) + - [Mouser (US Seller)](https://www.mouser.com/ProductDetail/Omron-Electronics/VX-01-1C22?qs=1tDaWCEHQQ6vTHtQABSaag%3D%3D) + +!!! tip "50g Microswitches" + - D2MV-01-1C3 (GAMO2 provided) + - Where to buy: + - [Digikey (US Seller)](https://www.digikey.com/product-detail/en/omron-electronics-inc-emc-div/D2MV-01-1C3/Z4708-ND/5236584) + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_223/) + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992804) + - [Buyee (Rakuten Proxy)](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000321) + - VX-01-1C23 + - Where to buy: + - [Digikey (US Seller)](https://www.digikey.com/product-detail/en/omron-electronics-inc-emc-div/D2MV-01-1C3/Z4708-ND/5236584) + - [Mouser (US Seller)](https://www.mouser.com/ProductDetail/Omron-Electronics/D2MV-01-1C3?qs=HDDQUw%2F3Phqm1Y5wA%2Fdz9w%3D%3D) + +!!! tip "100g Microswitches" + - V-10-1A4 (Arcade default, GAMO2 provided) + - Where to buy: + - [Digikey (US Seller)](https://www.digikey.com/product-detail/en/omron-electronics-inc-emc-div/V-10-1A4/Z4588-ND/1828942) + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992411) + - [Buyee (Rakuten Proxy)](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000283) + +### Gersung + +!!! tip "60g Microswitches" + - GSM-V0303A06 + - Advertised as "between 50g and 100g". + - Where to buy: + - [IST MALL (KR Seller)](http://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992526) + +  +## Springs + +### Options + +!!! tip "20g Springs" + - OBSA-SP-20 + - Where to buy: + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_218/) + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992953) + - [Buyee (Rakuten Proxy)](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000291) + - IST Spring + - Where to buy: + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992332) + +!!! tip "40g Springs" + - OBSA-SP-40 + - Where to buy: + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_303/) + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992953) + - [Buyee (Rakuten Proxy)](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000442) + +!!! tip "50g Springs" + - OBSA-SP-50 + - Where to buy: + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_500/) + - [Buyee (Rakuten Proxy)](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000449) + +!!! tip "60g Springs" + - OBSA-SP-60-K + - Where to buy: + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_300/) + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992953) + - [Buyee (Rakuten Proxy)](https://buyee.jp/rakuten/detail/sanwadenshi%3A10000392) + - IST Spring + - Where to buy: + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992332) + +!!! tip "100g Springs" + - OBSA-SP-100 + - Where to buy: + - [Sanwa Rakuten (Official JP Store)](https://item.rakuten.co.jp/sanwadenshi/ilumb_217/) + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992953) + + - IST Spring + - Where to buy: + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992332) + +## LED Lamps + +### Options + +!!! tip "ISTMall lamps" + - Where to buy: + - [IST MALL (KR Seller)](https://istmall.co.kr/us/goods/goods_view.php?goodsNo=1009992273) \ No newline at end of file diff --git a/docs/extras/pollingrates.md b/docs/extras/pollingrates.md new file mode 100644 index 0000000..60c7939 --- /dev/null +++ b/docs/extras/pollingrates.md @@ -0,0 +1,52 @@ +# List of Touchscreen Monitors and their Polling Rates + +!!! warning "Before reading:" + This section contains a few touchscreen monitors tested by community members over the years and their respective polling rates. Please note that a polling rate is **NOT THE REFRESH RATE** of a monitor, but is the critical factor in determining how responsive a touchscreen is and is unfortunately something every major retailer omits from their product listings due to lack of consumer awareness. + + At higher levels of gameplay, rapid button presses may fail to be acknowledged by touchscreen monitors with a low polling rate, making good scores impossible and creating a frustrating experience. + + Every BEMANI game with a touchscreen polls at 250hz, and some use an IR grid to achieve this. Thus, I am defining viable as 180hz or more, but I will include some monitors and manufacturer dates under this to help curious buyers be aware, as sometimes different manufacturer dates result in different polling rates and it's always good to document cruddy monitors to save people money. + + One thing to note is, this is not to say that monitors with low polling rates are unusable, they can still provide enjoyment and are often cheap enough to be a great option to see how far one may want to get into a certain touchscreen based game. But, the goal is to provide a potential buyer information to make an educated choice, and monitors with low polling rates will run the risk of needing to be replaced as higher levels of play, potentially causing frustration and wasted money. + + If you want to check your touch screen monitor's polling rate simply download [Mouse Rate Checker](https://www.softpedia.com/get/System/System-Miscellaneous/Mouse-Rate-Checker.shtml) and move your finger across the window at a reasonable pace, but not too fast! After you get your results, maybe even consider [contacting me with your monitor type, manufacturing date, and result](/about/#contact) so that I can include your results where applicable. + +### Dell S2240T + +!!! tip "" + + - 2013 Manufacturing Date: + - 200hz **GREAT!** + - 2014 Manufacturing Date: + - May: 200hz **GREAT!** + - September: 180hz + - 2015 Manufacturing Date: + - March: 200hz **GREAT!** + - September: 200hz **GREAT!** + - Late 2016 Manufacturing Date: + - 140hz **AVOID** + - Early 2017 Manufacturing Date: + - 180hz + - Mid 2017 Manufacturing Date: + - 140hz **AVOID** + - February 2018 Manufacturing Date: + - 180hz + +### Dell P2314T + +!!! tip "" + - November 2015 Manufacturing Date: + - 60hz **DO NOT BUY!** + +### Dell P2418HT + +!!! tip "" + - May 2018 Manufacturing Date: + - 60hz **DO NOT BUY!** + +### Iiyama T2336MSC + +!!! tip "" + + - Revision B1: + - 180hz diff --git a/docs/extras/spiceerrors.md b/docs/extras/spiceerrors.md new file mode 100644 index 0000000..b2e326d --- /dev/null +++ b/docs/extras/spiceerrors.md @@ -0,0 +1,55 @@ +# SpiceTools Error Messages + +!!! warning "Before reading:" + This section contains common errors that users may come across when utilizing SpiceTools that DO NOT pertain to [Error Codes.](/errorcodes/) While it's virtually impossible to write on every solution for every error, there's a small handful that arise from time to time. Consider this one of the weaker sections on the site due to the infinitely varying amounts of hardware and game-specific problems that may arise. Nonetheless, this section may be helpful as a last resort or for overly specific issues. Errors are listed in potpourri fashion with game specific notes inside said sections as applicable. + +### Initial Checklist + +!!! tip "" + There's always a couple quick things to check before even running SpiceTools, namely... + + - Your data comes from a clean and trusted source, ideally unmodified. + - You are not currently seeding your data and it's not already opened. + - You have specified within Windows that SpiceTools should be ran as an administrator. + - You're using the latest SpiceTools + - You've correctly followed the `First Time Setup` and `Common Problems/Tips` section of your desired game and your `.bat` file contains no errors. + +### Failed to Read /dev/nvram/coin.xml. + +!!! tip "" + Copy `coin.xml` from `prop` to `dev/nvram` or alternatively, update to a SpiceTools as new as 03/04/2020 or later. + +### Failed to Read /dev/nvram/eacoin.xml. + +!!! tip "" + Copy `eacoin.xml` from `prop` to `dev/nvram` or alternatively, update to a SpiceTools as new as 03/04/2020 or later. + +### Cannot create property: prop/ea3-config.xml + +!!! tip "" + Firstly make sure your `ea3-config.xml` is clean and that it is not set to `Read-only`. + + If it's been modified, common problems that might arise may be having `https` under `urlhere` or anywhere else a custom services URL has been added. Use `http` instead. + + Don't use notepad when modifying any of the .xml files, it can break the encoding and cause issues. + + Ideally just use SpiceTools `-url` and `-p` parameters to avoid modifying this file in most use cases. + +### XYZ Couldn't be loaded: Specified module cannot be found. + +!!! tip "" + Firstly, make sure what is attempting to load is indeed present. + + If the file is `libavs-win64.dll` then you're using 64-bit SpiceTools when the game is 32-bit, please switch to 32-bit instead. SpiceTools should also tell you do this! + + However, more often than not this error is more the user missing specific dependencies. Below are the most common ones that are missing on a fresh installation or older hardware. + + - [Microsoft Visual C++ 2010 Redistributable Package (x64)](https://www.microsoft.com/en-us/download/confirmation.aspx?id=14632) + - [DirectX 9.0c End-User Runtime](https://www.microsoft.com/en-us/download/details.aspx?id=34429) + +### Crashing Upon Startup + +!!! tip "" + This issue has numerous reasons all pertaining to the user, most commonly the game is not able to run at its specified resolution, say a game requiring portrait mode while running in landscape for example. This might also occur if installation was not done properly, or key files are missing as well. + + SpiceTools does a good job documenting what errors are occurring, make sure to read near the bottom of `log.txt` after a crash to try and better understand what might be wrong. \ No newline at end of file diff --git a/docs/extras/spiceguide.md b/docs/extras/spiceguide.md new file mode 100644 index 0000000..3b14233 --- /dev/null +++ b/docs/extras/spiceguide.md @@ -0,0 +1,199 @@ +# SpiceTools Usage, Parameters, and Functionality + +- **Last Update: March 14th, 2020.** + +- **Version Covered: March 3rd, 2020.** + +!!! warning "Before reading:" + This section contains a myriad of information regarding SpiceTools including the games supported, various parameters, and its functionality. Feel free to consult this section anytime you are confused or simply want to learn more. However, SpiceTools is consistently updated and updates to this section may fall behind, to combat this, the above information in bold will cover the latest revision of SpiceTools this guide covers and along the latest update to this section. + +### What is SpiceTools? + +!!! tip "" + SpiceTools is a toolkit allowing users to play several Konami games on their PC, typically of the arcade variety with the focus being on BEMANI games. The idea behind SpiceTools is to provide a simple to use toolkit that consists of just the executable and its configuration, allowing users to have minimal interaction with game files and thus minimizing user error. + +### Why SpiceTools + +!!! tip "" + The reason this guide utilizes SpiceTools exclusively is because it's capable of running games without the user ever touching a single file, minimizes any potential user error. On top of this, SpiceTools has a few exclusive features that benefit new and experienced players alike. The combination of simplicity and advanced features makes it an ideal choice. + +### SpiceOverlay + +!!! tip "" + One of the newest features SpiceTools has is an included overlay called SpiceOverlay, it contains a number of useful options such as a patch manager to enable/disable hex edits on the fly, and virtual keypads, its keybinds are as follows below: + + ``F5 - Keypad P1`` + ``F6 - Keypad P2`` + ``F7 - Card Manager`` + ``F8 - Log`` + ``F9 - Control`` + ``F10 - Patch Manager`` + ``F12 - Overlay/FPS toggle`` + +### SpiceOptions + +!!! tip "" + SpiceTools now features an options tab that allows you to set parameters inside the game with the ability to restart the game after you make your desired changes. + + + + Note that the purple highlighted options are tied to the specific game you are running, you do not need to check them in most cases as oftentimes they are loaded automatically for most setups. + +### SpiceCompanion + +!!! tip "" + SpiceTools also has a companion app on android called [SpiceCompanion](https://play.google.com/store/apps/details?id=spicedev.spicecompanion) this guide won't go over all of its features and functionalities, perhaps a separate page would be more appropriate. Just note it shares many similarities with SpiceOverlay and is yet another powerful tool to aid in playing these arcade games. One fan favorite feature is the ability to utilize your phone as a card reader, allowing friends to easily card-in and play alongside you. + +### Supported Games + +!!! tip "" + SpiceTools at the time of writing supports the following games, if no specific denotation is listed, assume all recent versions of said game): + + - beatmania IIDX (Tricoro and newer) + - Sound Voltex + - jubeat (knit and newer) + - Reflec Beat + - Dance Evolution Arcade + - DanceDanceRevolution + - Beatstream + - Road Fighters 3D + - Pop'n Music + - MÚSECA + - Metal Gear Arcade + - GITADORA (XG3 and newer) + - NOSTALGIA + - BISHI BASHI CHANNEL + - QUIZ MAGIC ACADEMY + - MAHJONG FIGHT CLUB + - FutureTomTom + - SCOTTO + - HELLO! Pop'n Music + - LovePlus + - DANCERUSH STARDOM + - Steel Chronicle + - Tenkaichi Shogikai + - Otoca D'or + - Winning Eleven 2012 + +### Coins + +!!! tip "" + There's a coin emulation working for most games, simply press F1 to insert a single coin. + + Some games have an additional/different coin key. + +### Readers + +!!! tip "" + If you have an original Wavepass reader and have it connected to a COM port on your computer, SpiceTools should be able to use it. It was being created and tested with the newer readers also used in the newer Pop'n Music games. + Example for one reader on COM3: -reader COM3 + Example for two readers for P1/2 on COM3 and COM4: -reader COM3 -reader COM4 + Example for one reader with P1/2 toggle on NumLock: -togglereader COM3 + +### SpiceTools API + +!!! tip "" + SpiceTools has its own API with a custom protocol. The main goals were simplicity, portability and extensibility, so TCP/JSON was chosen, allowing fast access over network. + + It optionally supports passwords/encryption and its response time on LAN was tested to be below 1ms (as long as extended API logging isn't enabled manually). + + For details and how to use it, check out README.md in the included source. Additionally, python and dart libraries are provided for easy communication. + + Key features are card/coin insertions, read/write access for keypads/analogs/buttons/lights, status information and memory read/write via raw addresses and signatures. + +### Bemanitools 5 API Compatibility + +!!! tip "" + There is basic BT5 API integration as of 03/13/2018. + + This feature can be enabled with `-bt5api` and currently makes use of eamio.dll only. + Currently, this can be used for applications such as the popular NFCeamuse app which can be found elsewhere. + +### Keybindings/Analogs + +!!! tip "" + As of beta, buttons can be bound via either RawInput (the default) or "Naive" (GetAsyncKeyState). + + RawInput supports all kinds of HID controllers (your FP7 is one, your XBOX360 Controller as well), however it's bound to a device. + + If you plug your controller into another USB slot, SpiceTools does not have a way to detect it and will report the device as "missing", until you plug it back into where you originally configured it. + + Using the "naive" approach, only keyboard buttons can be detected, however this will then work with any keyboard attached, it's not bound to a device. + + Since May 2018 you can also bind MIDI devices for "one-shot" types like drums and hold types like piano keys and launchpads. + + + +### Usage + +!!! tip "" + Utilizing SpiceTools is very straightforward, it typically involves simply dropping SpiceTools 32-bit or 64-bit (depending on game requirements) into your chosen game's content folder, creating a `.bat` file that initializes SpiceTools and desired parameters. For the grand majority of user installations, I've documented how to best utilize SpiceTools in the first time setup section of your respective game, so please read over it. One of the easiest and classic examples of a `.bat` file's contents would be along the lines of `spice64.exe -ea -w` which would boot SpiceTools with the `-ea` and `-w` parameters, more on parameters below. + +### Parameters + +!!! tip "" + SpiceTools consists of several dozen parameters for users to utilize to fill their needs. Ideally, these parameters are initialized using a user created `.bat` file as described above. If you open up `spicecfg.exe` and head on over to the options tab, you can hover over the far left `?` with your mouse to get an idea as to what a parameter does! + + The grand majority of parameters are for advanced users, but don't be scared if you don't understand what most do. + +  + +## Notes on Functionality for Several Games + +### beatmania IIDX + +!!! tip "" + For using your own cameras in IIDX 25 or newer, just plug them in (and hopefully your camera isn't incompatible with the game) and they shall work. + + It's also possible to use one camera only instead of the two the game wants, just dismiss the camera error on game boot as you would with no cameras connected, and your camera should be registered in-game as CAMERA A. If you're not happy with the order of the automatic camera detection, just use -iidxflipcams and CAMERA B will be CAMERA A, etc. + + You can bind the effectors as analog inputs if you want, this is especially interesting for IIDX 25 and newer, where the effects are software based and not tied to specific sound cards anymore. When not bound, they will stay on the maximum value. + +### Sound Voltex + +!!! tip "" + Printer fully supported as of 03/13/2018, can save prints in PNG/BMP/TGA to a customizable output path. + + Optionally able to clean up saved images on game boot time. + + Keyboard play should be perfectly working. If you don't want to use the mouse for the knobs, you can make use of native knob emulation, which works just as it works in Keyshoot-Mania. + +### jubeat + +!!! tip "" + This makes use of the SpiceTools touch module, which makes you able to play any version of the game just fine with both mouse and HID compliant touch devices on Windows 7 or newer. + + The Dell ST2240T touch screen seems to work well, especially the new 2017 revision. + + Card insert button available and enabled by default. + + Touch the area to insert a card in attract mode. + +### GITADORA + +!!! tip "" + To switch between Guitar/Drum you need to specify the specific eamuse config to load. By default, SpiceTools first tries to load ea3-config.xml, then eamuse-config.xml. + + Since the latter one is the default for the drums, for the guitar you have to override the path setting like so: `spice64.exe -e prop\eamuse-config2.xml` + + Additionally, since GitaDora uses 4 channels by default, you can specify -2ch to run it with 2 channel audio instead. If you don't and have a normal 2 channel setup, the game will refuse to play sound/tracks. + +### Reflec Beat + +!!! tip "" + Including emulation of the real IR touch screen device so the game should just act like the real one. + + This makes use of the SpiceTools Touch module, which makes you able to play any version of the game just fine with both mouse and HID compliant touch devices. + + Card insert button available and enabled by default. + + For this game it's not visible in fullscreen but still works just as fine. + + Touch the area to insert a card in attract mode. + +### NOSTALGIA + +!!! tip "" + Spicetools will auto-detect whether or not a compatible touch device is present. If a touch device is detected, the mouse cursor will disappear. If no touch device is detected, the mouse cursor will be visible in-game. During boot-up process, do not click or else the game may pre-maturely crash. You may safely click after the monitor check is completed. It's been found that Virtual HID Touch devices commonly found with remote access software may cause detection issues, take note of that. + + Some people have had issues with crashing on startup while having multiple monitors while using windowed mode, consider disabling the other monitors to see if this alleviates the issue. diff --git a/docs/extras/streamaudio.md b/docs/extras/streamaudio.md new file mode 100644 index 0000000..8bd3ec6 --- /dev/null +++ b/docs/extras/streamaudio.md @@ -0,0 +1,209 @@ +# Workarounds for exclusive audio + +!!! warning "Before reading:" + This section describes various workarounds and tips for dealing with games that use exclusive mode audio. + + In the recent years, BEMANI games started using WASAPI exclusive mode and ASIO to output game audio. While these provide great benefit when it comes to audio latency perceived by the player, they present additional challenges when trying to use other audio applications at the same time (e.g. a Discord voice call) or when capturing game audio for recording and streaming. This page explains how you can work around these issues. Read on carefully, as there are many things that can go wrong when dealing with audio. + + **Remember, don't stream or upload recordings to public places! Privately among friends only!** + +## Setting up audio + +There are advantages and disadvantages to each of the methods, so read carefully. + +### Option 1 - force shared audio + + - Enables: audio device sharing (voice calls while playing), recording, streaming + - Advantage: very easy to set up, as seen below. + - Disadvantages: may add significant audio latency to your game, depending on the game and your hardware, to a point where it becomes unplayable. + +!!! tip "Sound Voltex" + - Enable "Shared mode WASAPI" hex edit. + - If you run into any issues, change the audio playback device to output at 44.1khz and 16 bit. + +!!! tip "IIDX" + - For TDJ mode, ensure that the sound output device is set to WASAPI. + - In SpiceTools, set -iidxsounddevice to wasapi. + - Enable "Force shared audio" hex edit. + - If you run into any issues, change the audio playback device to output at 44.1khz and 16 bit. + +- That's really all there is. If you use OBS or Discord to capture the game, you will not have any issues recording audio with this configuration. + +### Option 2 - Stereo Mix + + - Enables: recording, streaming + - Does NOT enable: audio device sharing (voice calls while playing) + - Advantages: nothing to set up, no added latency to audio playback + - Disadvantages: only works with some audio cards (most Realtek devices should work), recorded audio may be delayed or off-sync + +Some sound cards have a thing called Stereo Mix, which presents itself as a recording device that mirrors everything that is being outputted from the sound card. Conveniently this can be captured even when a game has exclusive control of the audio device. + +!!! tip "Enabling stereo mix" + 1. Ensure that you have the latest audio drivers. + - For example, if you have a Realtek audio device, use a Realtek driver and not the generic Windows HD Audio driver. + 1. Go to Windows Sound device settings. In the Playback tab, make sure the default audio device is set to the sound card output (speakers or headphones). + 1. Go to Recording devices tab. + 1. Look for Stereo Mix. If you don't see it, right click and check "Show Disabled Devices" and try again. + - + +!!! tip "Capturing audio in OBS with Stereo Mix" + 1. Add a new Audio Input Capture source. + 1. Set the device as Stereo Mix. + 1. You can now capture audio. + 1. You'll probably want to set to "Monitor Off" so you don't get duplicated audio. + +### Option 3 - audio splitter cable (lo-tech method) + + - Enables: recording, streaming + - Does NOT enable: audio device sharing (voice calls while playing) + - Advantages: easy one-time set up, no added latency to audio playback + - Disadvantages: costs money, recorded audio may be delayed or off-sync, audio may become quieter + +!!! tip "Equipment" + 1. Buy an audio splitter cable, and a headphone extension cable. + 1. Split the audio coming out of your computer into two: one into speakers/headphones, another into the extension cable, which then goes into the "line in" port of your PC. + +!!! tip "Capturing audio in OBS" + - Add "Line In" as an audio input source. + +### Option 4 - FlexASIO + + - Enables: audio device sharing (voice calls while playing), recording, streaming + - Advantages: one-time set up, does not affect other audio configuration + - Disadvantages: not as flexible as Voicemeeter when it comes to recording, adds a small latency + +FlexASIO is a virtual ASIO service that can redirect output to various backends, including shared mode WASAPI. + +!!! tip "FlexASIO set up" + 1. Install [FlexASIO](https://github.com/dechamps/FlexASIO/releases) + 1. Create a FlexASIO.toml configuration file in your user folder (C:\Users\Your Name) + 1. Insert these lines inside your configuration file: + + backend = "Windows WASAPI" + bufferSizeSamples = 386 + channels = 2 + wasapiExclusiveMode = false + + [output] + suggestedLatencySeconds = 0.0 + + Try to lower bufferSizeSamples for minimal latency - recommended value is 128. If you hear audio crackling, increase bufferSizeSamples. + +!!! tip "Sound Voltex" + - Disable "Shared mode WASAPI" hex edit. You want the game to output in exclusive mode for lower overall latency. + +!!! tip "IIDX" + - For TDJ mode, ensure that the sound output device is set to WASAPI. + - In SpiceTools, set -iidxsounddevice to wasapi. + - Disable "Force shared audio" hex edit. You want the game to output in exclusive mode for lower overall latency. + +!!! tip "SpiceTools set up to use ASIO" + 1. Under the options tab, set -audiobackend to asio + 1. If you have more than one ASIO driver installed, launch the game and look through the logs for something like this: + + --------------- + [YYYY/MM/DD HH:MM:SS] I:audio::asio: Driver 0 + [YYYY/MM/DD HH:MM:SS] I:audio::asio: ... Name : FlexASIO + [YYYY/MM/DD HH:MM:SS] I:audio::asio: Driver 1 + [YYYY/MM/DD HH:MM:SS] I:audio::asio: ... Name : Voicemeeter Virtual ASIO + --------------- + + Find the number attached to the ASIO driver of your choice and use -asiodriverid [deviceid] to make the game use the driver. In the example above, Voicemeeter's ID is 1, and FlexASIO is 0. + +- To capture audio, you can capture desktop audio as you normally would in OBS. + +### Option 5 - Voicemeeter + +- Enables: audio device sharing (voice calls while playing), recording, streaming +- Advantages: highly configurable, adds very little latency +- Disadvantages: can be a challenge to set up, difficult to troubleshoot when things go wrong, need to run Voicemeeter every time + +Voicemeeter is free virtual audio mixer for Windows. It allows you to "mux" audio input streams into audio output streams; here, we take advantage of this application to redirect the game audio so that you enable audio capture & simultaneously enable other audio streams like voice calls. + +!!! tip "Initial Voicemeeter set up" + 1. Download [Voicemeeter Potato](https://vb-audio.com/Voicemeeter/banana.htm). + - Potato comes with all three versions - regular Voicemeeter, Banana, and Potato. + - Regular Voicemeeter is not good enough if you are following this guide. Banana is good enough if you want to mux two audio sources (say, game audio and Discord). Potato is recommended if you want to stream to Discord via OBS using instructions in the next section. + 1. Install and **REBOOT YOUR COMPUTER** when prompted. + 1. Launch Voicemeeter Banana or Potato, whichever one you prefer. + 1. On the right hand side, you will see flashing red text that says "Select Main Output Device (A1). Look immediately to the left, click on A1 with a down arrow, and choose your output device. Typically you want the one that starts with "WDM:", but if your audio device supports it, "ASIO:" option will provide lower latency. + - + 1. In Windows sound settings, set your default audio playback device to Voicemeeter Input (and not Voicemeeter AUX Input!) + +!!! tip "Discord or other voice applications" + - Configure the output device to Voicemeeter AUX Input. + +!!! tip "Sound Voltex" + - Disable "Shared mode WASAPI" hex edit. You want the game to output in exclusive mode for lower overall latency. + +!!! tip "IIDX" + - Disable "Force shared audio" hex edit. You want the game to output in exclusive mode for lower overall latency. + - For TDJ mode, ensure that the sound output device is set to WASAPI. + - In SpiceTools, set -iidxsounddevice to wasapi. + - (Optionally, you can output the game audio using SpiceTools -audiobackend asio and outputting to Voicemeeter ASIO instead of doing it over WASAPI, but probably provides negligible benefit to latency) + +At this point, you may want to look up various tutorials on YouTube to learn the basics of Voicemeeter. It may be daunting at first, but once you understand the concepts, it can be a very powerful tool. Plus, you can go beyond what I demonstrate below and instead do more complicated things on your own! + +!!! tip "Muxing with Voicemeeter" + 1. Launch the game. + 1. In Voicemeeter, you'll notice that the VU meter under Voicemeeter VAIO is showing that it is receiving game audio. You'll want to ensure "A1" box is green so that you route the game audio to your main output device, so you can hear the game in your ears. + - + 1. (Similarly, audio from the voice chat would come through Voicemeeter AUX column.) + 1. At this point, you are able to hear both the game & listen to voice chat - success! + +!!! tip "Capturing audio in OBS with Voicemeeter" + 1. Now, how do you capture this audio for recording? The basic idea is to route game audio to Voicemeeter's virtual output device, and capturing that output device in OBS. + 1. In the Voicemeeter VAIO column, click on B1 to make it turn green. This connects game audio to B1 channel, which is Voicemeeter Output virtual audio device. + 1. In OBS, create a new Audio Input Capture source. + 1. Double click on the new source and select VoiceMeeter Output (VB-Audio VoiceMeeter VAIO) from the drop-down. + 1. Click on the gear icon on the audio source, click on Advanced Audio Properties. In the "Audio Monitoring" column, set it to Monitor Off. This way, you can avoid double audio in your headphones when recording. + - (Note that if you want to stream to Discord, you'll be doing something else instead; see the steps below.) + 1. You are done. You should see the game audio come through to OBS. + +## Streaming to Discord + +!!! danger "Important" + **To reiterate, do NOT stream in public places! Privately among friends only!** + +If you followed Option 1 (force shared mode audio), as previously mentioned, all you need is to capture the game window and stream to Discord. + +If you followed other options, a bit more work is involved to stream both video and audio at the same time. One method is to capture audio and video in OBS, and screen sharing OBS to Discord. Follow these instructions: + +### Setting up Virtual Audio Monitor in OBS +We are going to make OBS capture audio and redirect the result to a virtual monitor device. In other words, OBS will be "outputting" audio to a fake speaker. Since it's still outputting audio, Discord is able to capture it, but you can avoid duplicated game audio this way. + +!!! tip "Option 1 - Using Virtual Audio Cable" + 1. Download and install [Virtual Audio Cable](https://vb-audio.com/Cable/index.htm). + 1. Go to OBS Settings, Audio, Advanced, Monitoring Device - set to CABLE Input. + 1. Go to Edit, Advanced Audio Properties. For any audio channels you want to stream, turn on monitor to "Monitor and Output". + +!!! tip "Option 2 - Using Voicemeeter Potato" + 1. We are going to make use of an unused virtual input device which is only available in Potato. In Banana this feature is not present. + 1. Go to OBS Settings, Audio, Advanced, Monitoring Device - set to VoiceMeeter VAIO3 Input. + - + 1. Go to Edit, Advanced Audio Properties. For any audio channels you want to stream, turn on monitor to "Monitor and Output". + 1. In VoiceMeeter Potato, prevent VAIO3 output so that you don't hear the OBS monitor audio in your ears. You can do this by disabling A1, B1, and so on in the VAIO3 column. + +### Streaming OBS Windowed Preview to Discord + +!!! tip "" + 1. Add the game window capture as a scene, as you normally would in OBS. + 1. Right click on OBS stage and click on Windows Projector (Preview). + - + 1. Resize the new window as needed. + 1. Use Discord to screen share this Windowed Projector. + - + 1. You're done! The screen share should include both the OBS scene and the audio. + +## Troubleshooting + +!!! tip "General" + - Game is too quiet! + - IIDX in TDJ mode is especially quiet. Try LDJ mode if you don't have a way to amplify things. + +!!! tip "Voicemeeter" + - Use the right version - Banana or Potato is recommended. Regular Voicemeeter lacks features so you can't follow the steps in this guide. + - If you hear crackling, or if you feel the latency is too high, you'll need to adjust the buffer size. This is highly dependent on your set up; it's recommended that you search "how to fix crackling audio voicemeeter" or "how to reduce latency in voicemeeter" and you'll get lots of helpful guides. + +!!! tip "Discord" + - If Discord fails to capture audio, go to Discord settings, Voice & Video, and enable "Use an experimental method to capture audio from applications". This should already be checked by default. diff --git a/docs/files/usaneko-unlock.zip b/docs/files/usaneko-unlock.zip new file mode 100644 index 0000000..d8bcf80 Binary files /dev/null and b/docs/files/usaneko-unlock.zip differ diff --git a/docs/games/beatstreamfinal/hexedits.md b/docs/games/beatstreamfinal/hexedits.md new file mode 100644 index 0000000..5dc3064 --- /dev/null +++ b/docs/games/beatstreamfinal/hexedits.md @@ -0,0 +1,22 @@ +# BeatStream アニムトライヴ Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For NBT-2016111400 + +!!! tip "" + All below edits are applied to `beatstream.dll` + + E:/ Drive Fix + + - `8645FC: 65 3A 2F -> 64 65 76` + + Unlock All Songs + + - `16CCB1: 48 83 FD 10 72 03 48 8B 09 41 -> BE 00 00 00 00 E9 3A 01 00 00` + + Nightmare Difficulty Unlock + + - `16EADE: 8B CB E8 DB B4 0E 00 -> B0 01 E9 AD 00 00 00` \ No newline at end of file diff --git a/docs/games/beatstreamfinal/problems.md b/docs/games/beatstreamfinal/problems.md new file mode 100644 index 0000000..792e595 --- /dev/null +++ b/docs/games/beatstreamfinal/problems.md @@ -0,0 +1,39 @@ +# BeatStream アニムトライヴ + +### Hardware Specs + +!!! tip "" + Bemani PC Type 6 (ADE-704A) + + Based on an AMD Embedded R Series SoC. + + CPU: Intel Celeron B810 + + GPU: AMD Radeon E4690 + + OS: Windows 7 Embedded + +### My Game Doesn't Boot After Following the Guide! + +!!! tip "" + The most common problem present here is if you do not have an E:/ drive. To resolve this issue, you must apply the `E:/drive fix` hex edit found [here.](hexedits.md) + +### My Touchscreen Monitor Isn't Working + +!!! tip "" + Try adding the `-wintouch` parameter to your `.bat` file, if that doesn't work, check the log and make sure it works with windows. SpiceTools at this point works with the grand majority of touchscreen monitors but no doubt some outliers are out there! + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). \ No newline at end of file diff --git a/docs/games/beatstreamfinal/setup.md b/docs/games/beatstreamfinal/setup.md new file mode 100644 index 0000000..787c3a0 --- /dev/null +++ b/docs/games/beatstreamfinal/setup.md @@ -0,0 +1,71 @@ +# BeatStream アニムトライヴ + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + + Once that's done,, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + +!!! tip "" + You're all done! If you have a touchscreen monitor make sure it's plugged in, it should work automatically, if it doesn't check out the advertised `Common Problems/Tips` section at the link below. + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/danevo/hexedits.md b/docs/games/danevo/hexedits.md new file mode 100644 index 0000000..ec15c31 --- /dev/null +++ b/docs/games/danevo/hexedits.md @@ -0,0 +1,13 @@ +# DanceEvolution Arcade Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For KDM-2016021900 + +!!! tip "" + + Song Difficulties Unlocked + + - `gamekdm.dll - 0x544A2: 18 74 2F -> 18 90 90` \ No newline at end of file diff --git a/docs/games/danevo/problems.md b/docs/games/danevo/problems.md new file mode 100644 index 0000000..3c5c16b --- /dev/null +++ b/docs/games/danevo/problems.md @@ -0,0 +1,5 @@ +# to be added + +!!! warning "to be added" + + to be added \ No newline at end of file diff --git a/docs/games/danevo/setup.md b/docs/games/danevo/setup.md new file mode 100644 index 0000000..3c5c16b --- /dev/null +++ b/docs/games/danevo/setup.md @@ -0,0 +1,5 @@ +# to be added + +!!! warning "to be added" + + to be added \ No newline at end of file diff --git a/docs/games/ddrace/hexedits.md b/docs/games/ddrace/hexedits.md new file mode 100644 index 0000000..53f5ac9 --- /dev/null +++ b/docs/games/ddrace/hexedits.md @@ -0,0 +1,57 @@ +# DanceDanceRevolution Ace Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For MDX-2019042200 + +!!! tip "" + All edits below are for `gamemdx.dll` unless otherwise specified. + + Force Enable Fast/Slow + + - gamemdx.dll: `0x97C60: 8B 41 44 -> 31 C0 40` + + Force Background Judgement + + - gamemdx.dll: `0x97C50: 8B 41 -> 31 C0` + + Force Darkest Background + + - gamemdx.dll: `0x98A0E: 75 03 33 C0 -> 33 C0 B0 03` + + Song Unlock (Incomplete - Unlocks All the Event Mode Songs but Still Requires Editing the Music Database) + + - gamemdx.dll: `0x846D1: 45 F4 -> 90 E9, 0x8D007: 32 C0 -> B0 01` + + Tutorial Skip + + - gamemdx.dll: `0x49D33: 75 -> EB` + + Timer Freeze + + - gamemdx.dll: `0x275D7: 74 -> EB` + + Unlock Options + + - gamemdx.dll: `0x82733: 75 -> EB` + + Force Cabinet Type 6 (A20 Gold Theme) + + - gamemdx.dll: `0xDE18: FF 24 -> EB 71` + + Force ENDYMION Menu Background + + - gamemdx.dll: `0x1F98D: EC -> F0` + + Skip a20 Menu Background Loading + + - gamemdx.dll: `0x1F944: 75 -> EB` + + Make Notes Possible to Read When Using Darkest Setting (Sets to 99%) + + - gamemdx.dll: `0x1C9F6: 33 33 33 3F -> A4 70 7D 3F` + + + diff --git a/docs/games/ddrace/problems.md b/docs/games/ddrace/problems.md new file mode 100644 index 0000000..351438f --- /dev/null +++ b/docs/games/ddrace/problems.md @@ -0,0 +1,65 @@ +# DDR Ace Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 4 + + CPU: Celeron M 440 1.86GHz + + GPU: ATI Radeon HD 2400 + + RAM: 2 GB + + OS: Windows XP Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### Ddr a's Video Background Are Missing in the Menus And/Or Some Songs Soft-Lock the Game on the Nth/Final/Extra Stage Screen + +!!! tip "" + DDR's Video backgrounds rely on two DLLs in the game's "com" folder. However, unlike most other Bemani AC Games, these DLLs must be registered (Windows must know that these files exist, and where to point to when they are called). Without these, the game will run, but songs that rely on FMV backgrounds will break and the menu's backgrounds will be blank. + + + There are two ways to fix this: You can either install the [K-lite Codec Pack](https://codecguide.com/download_kl.htm) (which gives the added bonus of enabling playback of weird esoteric video formats outside of the game) or register the DLLs for the game manually, if you wish to save space and aren't afraid of the command prompt. + + + You can download the K-lite codec pack from here: https://www.codecguide.com/download_kl.htm + The basic installer is all you need. Simply install the pack and then run DDR A. + + + To register the DLLs with Windows: + + 1. Open an elevated command prompt (Right click Command Prompt -> Run As Administrator) + + 2. Navigate to your Windows directory (Typically C:/ Windows), then to SysWOW64 (Or System32 if on a 32-bit version of Windows) by typing `cd C:/windows` inside the command prompt + + 3. Type `regsvr32 [path to one of the two DLLs in your DDR A's "content/com/" folder]` + + Ex: `regsvsr32 D:\MDX-2019042200\contents\com k-clvsd.dll` + + 4. Repeat the command for the other DLL in the folder, and then close command prompt + + Ex: `regvsr32 D:\MDX-2019042200\contents\com xactengine2_10.dll` + + 5. If everything went smoothly, run the game again with your desired tools and enjoy a properly working DDR A! + +### I Want to Play in 4:3 (SD) Mode! + +!!! tip "" + If you're using SpiceTools, you can add `-ddrsd` to your `gamestart.bat` file and the game will boot into 4:3 mode. + +### Where Is the Option For Dancers/Shading/Measure lines/Fast-Slow/Layering? + +!!! tip "" + These options are locked behind network requirements and they will not show unless connected to a network that has written support for these options. There are some [hex edits](hexedits.md) for some of these options, however + +### Why Is My Game Not in English? + +!!! tip "" + English text is built in, change `J` in the `eamuse-config.xml` file inside `contents/prop` to `A`, then you can change language to English in the service menu's `GAME OPTIONS` (accessed via Spice's `Test` button). If English is not automatically set as pictured below. Make sure the code at the top left upon booting indicates `A:A:A` as desired. + + \ No newline at end of file diff --git a/docs/games/ddrace/setup.md b/docs/games/ddrace/setup.md new file mode 100644 index 0000000..4370a2a --- /dev/null +++ b/docs/games/ddrace/setup.md @@ -0,0 +1,74 @@ +# DANCE DANCE REVOLUTION ACE + +!!! danger "Warning" + + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + + This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file anything you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + + +### Configuring Your Tools + +!!! tip "" + + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + + One last important note before booting the game is that you should install K-Lite Mega Codec (See [Common Problems/Tips](problems.md#ddr-as-video-background-are-missing-in-the-menus-andor-some-songs-soft-lock-the-game-on-the-nthfinalextra-stage-screen) for a guide!) before booting, the game will run without it, but some songs will lock up and the game will crash and all background videos will be black on most setups. + + With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your `gamestart.bat` and the game should load and be ready to be enjoyed! Have fun! + +!!! warning "Have any other errors?" + + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. diff --git a/docs/games/exchain/hexedits.md b/docs/games/exchain/hexedits.md new file mode 100644 index 0000000..48db96e --- /dev/null +++ b/docs/games/exchain/hexedits.md @@ -0,0 +1,16 @@ +# GITADORA EXCHAIN Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +###List of Known Edits For M32-2019092400 + +!!! tip "" + Timer Freeze + + - game.dll: `0xBC27: 0F 85 AA 01 00 00 -> E9 AB 01 00 00 90` + + Fix IP change error + + - libshare-pj.dll: `0x23305: 74 -> EB` \ No newline at end of file diff --git a/docs/games/exchain/problems.md b/docs/games/exchain/problems.md new file mode 100644 index 0000000..547f19c --- /dev/null +++ b/docs/games/exchain/problems.md @@ -0,0 +1,69 @@ +# GITADORA EXCHAIN Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 4 + + CPU: AMD Athlon 64 X2 4400 + + GPU: ATI Radeon HD 2400 + + RAM: 1 GB + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Game Stuck On Title Screen (AMD Ryzen 3900X) + +!!! tip "" + If you have AMD Ryzen 3900X-series processor and the game gets stuck on the title screen (or a black screen) you are running into a known processor bug for games using Media Foundation to play videos. The workaround is to disable simultaneous multithreading (SMT) in the system's BIOS settings. See [this GitHub issue for Proton](https://github.com/ValveSoftware/Proton/issues/838#issuecomment-557081962) + +### Occasional Graphical Stuttering During Gameplay + +!!! tip "" + Disable fullscreen optimizations for spice64.exe instance. Right click on spice64.exe, click on Properties. Click on Compatibility tab, "Change settings for all users", and check "Disable fullscreen optimizations". + +### I get an IP Change Error! + +!!! tip "" + Apply the [Fix IP Change Error Hex Edit](/games/exchain/hexedits/) + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Gitadora features BOTH a visual offset and an audio based one, so experiment accordingly. + +### Why Are My Videos Freezing (Usually Towards the End of the Song)? + +!!! tip "" + If you're using Windows 10, there is a bug that is caused by the difference between the ASF stream decoder between Windows 7 and Windows 10 wherein it fails to properly detect the end of file of the video stream which causes the video decoder to throw an exception, which is why the video freezes. At the time of writing, SpiceTools does not have a fix for this, but there are hooks available to resolve this issue. + +### I Tried Switching to SpiceTools to Follow the Guide and It Crashes! + +!!! tip "" + This is a known issue, make sure to replace all of the `.dll` files from the ``contents`` folder of the game with ones from a fresh install, other tools currently modify these files in a way that SpiceTools cannot deal with. + +### My Drum Pedal Isn't Working! + +!!! tip "" + Some drum kits utilize hi-hat control with the pedal resulting in different MIDI addresses that require additional bindings, make sure to follow your drum kit's manual to see these other bindings and bind them in your desired tool's accordingly. Gitadora does not do this, so the game utilizes just 1 binding for every level of sensitivity on the pedal and multiple bindings are typically required with most drum kits. + +### When I Run This Game All Other Background Audio Is Gone! What's Going On? + +!!! tip "" + Gitadora is a 64-bit game that utilizes a feature in Windows called [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) to obtain less audio latency than the former 32-bit versions of BEMANI games which used [DirectSound](https://en.wikipedia.org/wiki/DirectSound). Unfortunately, this cannot be changed. + +### Note on 2-channel and 4-channel Audio + +!!! tip "" + For most setups, the `-2ch` parameter will be mandatory to hear any functional audio. 4-channel setups aren't really working in general and there's buffer issues, please avoid using it. diff --git a/docs/games/exchain/setup.md b/docs/games/exchain/setup.md new file mode 100644 index 0000000..7188d06 --- /dev/null +++ b/docs/games/exchain/setup.md @@ -0,0 +1,142 @@ +# GITADORA EXCHAIN + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started. + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, the first thing to do is put your desired 64-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +!!! tip "" + Why does this look different than the usual? This installation includes a `modules` folder that Spice automatically detects, keeping things clean and simple. + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below for both launching the guitar version and drum version using SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + **FOR GUITAR** + + For our guitar local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -e prop\eamuse-config2.xml -2ch -ea -w` and save the file. + + What do these different parameters do? + - `-e` sets a custom path for the eamuse config to boot the proper one (in this case, guitar via `prop\eamuse-config2.xml`) + - `-2ch` enables 2-channel audio for GITADORA + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + **FOR DRUM** + + For our drum local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -2ch -ea -w` and save the file. + + What do these different parameters do? + - `-2ch` enables 2-channel audio for GITADORA + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + **FOR GUITAR** + + For our guitar online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -e prop\eamuse-config2.xml -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-e` sets a custom path for the eamuse config to boot the proper one (in this case, guitar via `prop\eamuse-config2.xml`) + - `-2ch` enables 2-channel audio for GITADORA + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + **FOR DRUM** + + For our drum online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-2ch` enables 2-channel audio for GITADORA + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + + If it's your first time running the game, you'll immediately be greeted with this screen, oh no! + + + +!!! tip "" + This is normal, simply hit your `Test` keybind and continue on to this. + + + +!!! tip "" + From here, we will need to set a shop name to play, so select the `GAME OPTIONS` option. + + + +!!! tip "" + Then, select `SHOP SETTINGS`. + + + +!!! tip "" + Once inside, select `SHOP NAME SETTINGS` and name your shop whatever you desire! For the purpose of the guide, we named it `Guide` but highly encourage fun and/or lazy names. Once that's done, go down to `PREFECTURE` and set it to whatever you desire as well. Finally, go to `SAVE AND EXIT` to get back to the main menu. + + + +!!! tip "" + The last menu we'll go inside from the service menu is the clock menu. Go inside `CLOCK` and simply set the clock by hitting `SAVE AND EXIT` as pictured below. + + + +!!! tip "" + You're all done! From the service menu select `GAME MODE` and the game should load ready to be played! Have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/gitamatixx/hexedits.md b/docs/games/gitamatixx/hexedits.md new file mode 100644 index 0000000..e1132f3 --- /dev/null +++ b/docs/games/gitamatixx/hexedits.md @@ -0,0 +1,30 @@ +# GITADORA Matixx Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +###List of Known Edits For M32-2018071700 + +!!! tip "" + Timer Freeze + + - game.dll: `0xBC37: 0F 85 AA 01 00 00 -> E9 AB 01 00 00 90` + + Stage Freeze (NOT compatible with usage on networks due to how the game saves user plays) + + - game.dll: `0x1595E1 0F 85 FB 01 00 00 -> E9 FC 01 00 00 90` + + Unlock all music + + - game.dll: `0x1EAEFA: 71 00 -> 4D 01` + - game.dll: `0x1EAF12: 73 00 -> 4D 01` + - game.dll: `0x162FF4: 75 16 -> EB 23` + + Enable Long music + + - game.dll: `0x163134: 75 03 -> 90 90` + + Fix IP change error + + - libshare-pj.dll: `0x23375: 74 -> EB` \ No newline at end of file diff --git a/docs/games/gitamatixx/problems.md b/docs/games/gitamatixx/problems.md new file mode 100644 index 0000000..28b8ac4 --- /dev/null +++ b/docs/games/gitamatixx/problems.md @@ -0,0 +1,69 @@ +# GITADORA Matixx Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 4 + + CPU: AMD Athlon 64 X2 4400 + + GPU: ATI Radeon HD 2400 + + RAM: 1 GB + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Game Stuck On Title Screen (AMD Ryzen 3900X) + +!!! tip "" + If you have AMD Ryzen 3900X-series processor and the game gets stuck on the title screen (or a black screen) you are running into a known processor bug for games using Media Foundation to play videos. The workaround is to disable simultaneous multithreading (SMT) in the system's BIOS settings. See [this GitHub issue for Proton](https://github.com/ValveSoftware/Proton/issues/838#issuecomment-557081962) + +### Occasional Graphical Stuttering During Gameplay + +!!! tip "" + Disable fullscreen optimizations for spice64.exe instance. Right click on spice64.exe, click on Properties. Click on Compatibility tab, "Change settings for all users", and check "Disable fullscreen optimizations". + +### I get an IP Change Error! + +!!! tip "" + Apply the [Fix IP Change Error Hex Edit](/games/gitamatixx/hexedits/) + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Gitadora features BOTH a visual offset and an audio based one, so experiment accordingly. + +### Why Are My Videos Freezing (Usually Towards the End of the Song)? + +!!! tip "" + If you're using Windows 10, there is a bug that is caused by the difference between the ASF stream decoder between Windows 7 and Windows 10 wherein it fails to properly detect the end of file of the video stream which causes the video decoder to throw an exception, which is why the video freezes. At the time of writing, SpiceTools does not have a fix for this, but there are hooks available to resolve this issue. + +### I Tried Switching to SpiceTools to Follow the Guide and It Crashes! + +!!! tip "" + This is a known issue, make sure to replace all of the `.dll` files from the ``contents`` folder of the game with ones from a fresh install, other tools currently modify these files in a way that SpiceTools cannot deal with. + +### My Drum Pedal Isn't Working! + +!!! tip "" + Some drum kits utilize hi-hat control with the pedal resulting in different MIDI addresses that require additional bindings, make sure to follow your drum kit's manual to see these other bindings and bind them in your desired tool's accordingly. Gitadora does not do this, so the game utilizes just 1 binding for every level of sensitivity on the pedal and multiple bindings are typically required with most drum kits. + +### When I Run This Game All Other Background Audio Is Gone! What's Going On? + +!!! tip "" + Gitadora is a 64-bit game that utilizes a feature in Windows called [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) to obtain less audio latency than the former 32-bit versions of BEMANI games which used [DirectSound](https://en.wikipedia.org/wiki/DirectSound). Unfortunately, this cannot be changed. + +### Note on 2-channel and 4-channel Audio + +!!! tip "" + For most setups, the `-2ch` parameter will be mandatory to hear any functional audio. 4-channel setups aren't really working in general and there's buffer issues, please avoid using it. diff --git a/docs/games/gitamatixx/setup.md b/docs/games/gitamatixx/setup.md new file mode 100644 index 0000000..131bbfb --- /dev/null +++ b/docs/games/gitamatixx/setup.md @@ -0,0 +1,139 @@ +# GITADORA Matixx + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started. + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, the first thing to do is put your desired 64-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below for both launching the guitar version and drum version using SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + **FOR GUITAR** + + For our guitar local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -e prop\eamuse-config2.xml -2ch -ea -w` and save the file. + + What do these different parameters do? + - `-e` sets a custom path for the eamuse config to boot the proper one (in this case, guitar via `prop\eamuse-config2.xml`) + - `-2ch` enables 2-channel audio for GITADORA + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + **FOR DRUM** + + For our drum local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -2ch -ea -w` and save the file. + + What do these different parameters do? + - `-2ch` enables 2-channel audio for GITADORA + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + **FOR GUITAR** + + For our guitar online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -e prop\eamuse-config2.xml -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-e` sets a custom path for the eamuse config to boot the proper one (in this case, guitar via `prop\eamuse-config2.xml`) + - `-2ch` enables 2-channel audio for GITADORA + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + **FOR DRUM** + + For our drum online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-2ch` enables 2-channel audio for GITADORA + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + + If it's your first time running the game, you'll immediately be greeted with this screen, oh no! + + + +!!! tip "" + This is normal, simply hit your `Test` keybind and continue on to this. + + + +!!! tip "" + From here, we will need to set a shop name to play, so select the `GAME OPTIONS` option. + + + +!!! tip "" + Then, select `SHOP SETTINGS`. + + + +!!! tip "" + Once inside, select `SHOP NAME SETTINGS` and name your shop whatever you desire! For the purpose of the guide, we named it `Guide` but highly encourage fun and/or lazy names. Once that's done, go down to `PREFECTURE` and set it to whatever you desire as well. Finally, go to `SAVE AND EXIT` to get back to the main menu. + + + +!!! tip "" + The last menu we'll go inside from the service menu is the clock menu. Go inside `CLOCK` and simply set the clock by hitting `SAVE AND EXIT` as pictured below. + + + +!!! tip "" + You're all done! From the service menu select `GAME MODE` and the game should load ready to be played! Have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/hellopopn/problems.md b/docs/games/hellopopn/problems.md new file mode 100644 index 0000000..8582ea6 --- /dev/null +++ b/docs/games/hellopopn/problems.md @@ -0,0 +1,21 @@ +HELLO Pop'n Common Problems/Tips + +### My Game Is Running Slow/Lagging + +!!! tip "" + Try to eliminate any unnecessary background processes during play. + +### My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### The game crashes fullscreen! + +!!! tip "" + Some monitors and display adapters may not support the odd resolution the game runs at, which is 1360x768 versus the occasionally seen 1366x768. To resolve, setup a custom resolution inside your appropriate graphics card settings, or enable GPU resolution scaling. + +### Other Crashes + +!!! tip "" + This game may fail in the case of using HDMI audio. Even if you're not using HDMI audio however, some failures to boot have been noted. Please update to the latest SpiceTools which fixes this issue. \ No newline at end of file diff --git a/docs/games/hellopopn/setup.md b/docs/games/hellopopn/setup.md new file mode 100644 index 0000000..09480ce --- /dev/null +++ b/docs/games/hellopopn/setup.md @@ -0,0 +1,94 @@ +# HELLO Pop'n + +!!! danger "Warning" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + + This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's `contents` folder. Pictured below is what your folder should look like. + + + + +### Configuring Your Tools + +!!! tip "" + + Now that you have your files ready, open up `spicecfg.exe` and head to the `Options` tab. Here you can configure all of the various options that SpiceTools has, but for the purpose of this guide we'll demonstrate how to set up a local server and an online server. You can skip over the parts that you don't need, and feel free to set any other options that you might like. + +!!! warning "If you're not using SpiceTools:" + + It's most likely that your toolkit doesn't have an options interface, so you'll have to create a `.bat` file. Consult the appropriate documentation for this as this isn't covered in this guide. + +### Configuring for a Local Network + +!!! tip "" + + For our local network configuration example, in the `Options` tab enable the following options: `E-Amusement Emulation: -ea` and `Windowed Mode: -w`. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the selected options in `spicecfg.exe`. + + + +### Configuring for an Online Network + +!!! tip "" + + For our online network example we're simply doing the above but with different options! + + We're going to use the option `PCBID: -pcbid` for our PCBID, with `XXXXXXXXXXXXXXXXXXXX` as the value. + For the network URL we're going to use the option `Service URL: -url`, with `http://yoururlhere.com/` as the value. + We'll also enable windowed mode by enabling the option `Windowed Mode: -w`. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the enabled options in `spicecfg.exe`. + + + +!!! tip "" + + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Configuring Keybinds + +!!! tip "" + + While we're still in `spicecfg.exe`, why not set up the keybinds? To do this you'll have to head on over to the `Buttons` tab. Here you simply click `Bind` and press the button on your controller (or keyboard). Below are my keybinds for a keyboard. Notice that I've also bound the `Service`, `Test` and `Coin Mech` buttons to my keyboard. This might come in handy but shouldn't be necessary to play the game. + + + +### Final Steps and Setting up the Game + +!!! tip "" + Boot the game by double-clicking `spice.exe`. + + The boot sequence may have a very light blue background. Press any overlay hotkey (F12, for example) to make it display normally. + + + + +!!! tip "" + Simply follow the on-screen text in the bottom left corner to continue. On the first boot, the game may tell you to press `Test`, and then `Service`. + + HELLO Pop'n has the ability to run offline, so the network error can be safely ignored. + + You're all done! The game takes a couple of seconds to load all of the data. + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/iidx25/hexedits.md b/docs/games/iidx25/hexedits.md new file mode 100644 index 0000000..c65029d --- /dev/null +++ b/docs/games/iidx25/hexedits.md @@ -0,0 +1,108 @@ +# beatmania IIDX 25 Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For LDJ-2019100700 + +!!! tip "" + + All below edits are for `bm2dx.dll` unless otherwise specified. + + SSE4.2 Fix (Allows the game to run on processors which do not support the SSE4.2 instruction set. If you can successfully boot the game already, DO NOT USE THIS EDIT!) + + - 0x3F8CF7: `F3 45 0F → 90 90 90` + + Unlock All Songs + + - 0x16D7B2: `74 10 → 90 90` + + Unlock All 12s + + - 0x16D660: `83 FF 02 74 05 83 FF 05 → 90 90 90 90 90 90 90 90` + + Skip CAMERA DEVICE ERROR prompt + + - 0x36F3FB: `84 → 81` + + 1P Premium Free + + - 0x32F5C7: `75 → EB` + + 2P Premium Free + + - 0x32F765: `74 55 → 90 90` + - 0x32F77B: `74 3F → 90 90` + + Premium Free Timer Freeze + + - 0x16FCAD: `FF C8 → 90 90` + + Standard/Menu Timer Freeze + + - 0x387F37: `74 → EB` + + Cursor lock + + - 0x334914: `74 1D → 90 90` + + CS-Style Song Start Delay + + - 0x3539EA: `7D 25 → 90 90` + + Play video preview on all songs (Normally only some beginner songs do this) + + - 0x11CA4C: `0F B6 → EB 2F` + - 0x11FDFE: `74 0E → 90 90` + + Hide INSERT COIN[S] text + + - 0x107279: `3B → 3A` + + Hide CREDIT %d text + + - 0x106DF8: `0C → 0B` + + Hide CREDIT %d COIN %d / %d text + + - 0x106DCD: `17 → 16` + + Hide EXTRA PASELI: %d text + + - 0x106EE9: `43 → 42` + + Hide PASELI: %d text + + - 0x1070B8: `A4 → A3` + + Hide PASELI: NO ACCOUNT text + + - 0x10717B: `21 → 20` + + Hide PASELI: ****** text + + - 0x1070DD: `9F → 9E` + + Free play text to LED ticker (Bottom Right) + + - 0x106F9F: `35 2F 35 00 → D9 68 44 02` + + LED Ticker (Top Left) + + - 0x36D780: `FC B9 1C 00 → 98 01 3A 02` + - 0x36D958 `74 3C → 90 90` + + Quick Retry (Guest and non-VIP card players can hold VEFX and Effect during a song to quickly restart) + + - 0x1583BF: `32 C0 → B0 01` + + Expert Course Force Open (In offline or local mode) + + - 0x32F711: `75 → EB` + + Shorter monitor check (Runs for 2 seconds instead of 20, only use if your framerate is extremely stable or you will have issues) + + - 0x366E6C: `B0 04 → 78 00` + + diff --git a/docs/games/iidx25/problems.md b/docs/games/iidx25/problems.md new file mode 100644 index 0000000..344a3a3 --- /dev/null +++ b/docs/games/iidx25/problems.md @@ -0,0 +1,67 @@ +# IIDX 25 Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC (ADE-6291) + + Konami (2018) + + Based on an AMD Embedded R Series SoC. + + CPU: AMD RX-421BD + + GPU: Radeon R7 + + RAM: 4 GB + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Camera Device Error Message + +!!! tip "" + The game released with two USB cameras and naturally it's looking for them, if you do not have two cameras plugged into your computer then the game outputs this error, which can be ignored simply by hitting `Test` or waiting 60 seconds for it to be auto-dismissed. + + But if you're tired of this message every time you start up the game, the `CAMERA DEVICE ERROR` message can be removed via a hex edit, check out the [Hex Edits](hexedits.md) section for an easy drag and drop solution. + +### Occasional Game Stutters During Play + +!!! tip "" + Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools `-realtime` parameter to your .bat file. + +### HD and HD* + +!!! tip "" + This version of IIDX has two HD mode options, `HD` and `HD*` neither is inherently better than the other, the only difference is HD* is an additional + 1.0 offset in-game, the official reasoning is to account for a different set of monitors on arcade cabs. In beatmania IIDX 26 ROOTAGE this option is removed entirely and only HD is present. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). + +### A Note About SSE 4.2 + +!!! tip "" + In the rare case you are running this game on *very* old hardware, IIDX 25 requires a processor supporting the [SSE 4.2 instruction set](https://en.wikipedia.org/wiki/SSE4#SSE4.2). But, in the event your processor does not have this, there is a [hex edit](hexedits.md) available to bypass this. + +### When I Run This Game All Other Background Audio Is Gone! What's Going On? + +!!! tip "" + 64-bit versions of IIDX are now utilizing a feature in Windows called [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) to obtain less audio latency than the former 32-bit versions of the games which used [DirectSound](https://en.wikipedia.org/wiki/DirectSound). Unfortunately, this cannot be changed. + +### I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac! + +!!! tip "" + Several external DACs have issues with [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC. + + diff --git a/docs/games/iidx25/setup.md b/docs/games/iidx25/setup.md new file mode 100644 index 0000000..e9d0649 --- /dev/null +++ b/docs/games/iidx25/setup.md @@ -0,0 +1,120 @@ +# beatmania IIDX 25 CANNON BALLERS + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + + +### Getting Started + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + + If it's your first time running the game, you'll immediately be greeted with this screen, oh no! + + + +!!! tip "" + Ignore this message, simply hit your `Test` keybind and continue onto this. + + + +!!! tip "" + Hit the `Test` keybinding again to initialize the backup data, a message will pop up stating it's been initialized. + + + +!!! tip "" + Lastly, you'll run into this error message as well, let's work on eliminating these messages. Let the game run for a bit until the monitor check is complete and you should be taken to the service menu pictured below. + + + +!!! tip "" + Start by navigating up to `CLOCK` and entering that menu. + + + +!!! tip "" + Simply hit save and exit and leave, the clock will be saved. Then, back in the service menu, go up to `GAME OPTIONS` + + + +!!! tip "" + Once inside that menu, navigate your way up to `DEFINITION TYPE` and choose either `HD` or `HD*` depending on your preferences, both run the game at 720p but have a timing difference addressed on the FAQ page. It might be worth noting that the `HD*` option is no longer present as of beatmania IIDX 26 ROOTAGE. + + + +!!! tip "" + The game will then count down asking you to confirm the selection before reverting, just hit `YES` assuming it loaded just fine on your computer. Then, exit out of that menu and head to `NETWORK OPTIONS` from back inside the service menu. + + + +!!! tip "" + From here, we will need to set a shop name to play, so select the `SHOP NAME SETTING` option. Once inside, name your shop whatever you desire! For the purpose of the guide, we named it `Guide` but highly encourage fun and/or lazy names. Once that's done go to `EXIT` and then `SAVE AND EXIT` inside of `NETWORK OPTIONS` once you've chosen your desired name, as pictured below. + + + + + +!!! tip "" + You're all done! From the service menu select `GAME MODE` and the game should load ready to be played! Have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. diff --git a/docs/games/iidx26/hexedits.md b/docs/games/iidx26/hexedits.md new file mode 100644 index 0000000..e979e63 --- /dev/null +++ b/docs/games/iidx26/hexedits.md @@ -0,0 +1,107 @@ +# beatmania IIDX 26 Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For LDJ-2019100700 + +!!! tip "" + All below edits are for `bm2dx.dll` unless otherwise specified. + + SSE4.2 Fix (Allows the game to run on processors which do not support the SSE4.2 instruction set. If you can successfully boot the game already, DO NOT USE THIS EDIT!) + + - 0x3F8CF7: `F3 45 0F → 90 90 90` + + Unlock All Songs + + - 0x16D7B2: `74 10 → 90 90` + + Unlock All 12s + + - 0x16D660: `83 FF 02 74 05 83 FF 05 → 90 90 90 90 90 90 90 90` + + Skip CAMERA DEVICE ERROR prompt + + - 0x36F3FB: `84 → 81` + + 1P Premium Free + + - 0x32F5C7: `75 → EB` + + 2P Premium Free + + - 0x32F765: `74 55 → 90 90` + - 0x32F77B: `74 3F → 90 90` + + Premium Free Timer Freeze + + - 0x16FCAD: `FF C8 → 90 90` + + Standard/Menu Timer Freeze + + - 0x387F37: `74 → EB` + + Cursor lock + + - 0x334914: `74 1D → 90 90` + + CS-Style Song Start Delay + + - 0x3539EA: `7D 25 → 90 90` + + Play video preview on all songs (Normally only some beginner songs do this) + + - 0x11CA4C: `0F B6 → EB 2F` + - 0x11FDFE: `74 0E → 90 90` + + Hide INSERT COIN[S] text + + - 0x107279: `3B → 3A` + + Hide CREDIT %d text + + - 0x106DF8: `0C → 0B` + + Hide CREDIT %d COIN %d / %d text + + - 0x106DCD: `17 → 16` + + Hide EXTRA PASELI: %d text + + - 0x106EE9: `43 → 42` + + Hide PASELI: %d text + + - 0x1070B8: `A4 → A3` + + Hide PASELI: NO ACCOUNT text + + - 0x10717B: `21 → 20` + + Hide PASELI: ****** text + + - 0x1070DD: `9F → 9E` + + Free play text to LED ticker (Bottom Right) + + - 0x106F9F: `35 2F 35 00 → D9 68 44 02` + + LED Ticker (Top Left) + + - 0x36D780: `FC B9 1C 00 → 98 01 3A 02` + - 0x36D958 `74 3C → 90 90` + + Quick Retry (Guest and non-VIP card players can hold VEFX and Effect during a song to quickly restart) + + - 0x1583BF: `32 C0 → B0 01` + + Expert Course Force Open (In offline or local mode) + + - 0x32F711: `75 → EB` + + Shorter monitor check (Runs for 2 seconds instead of 20, only use if your framerate is extremely stable or you will have issues) + + - 0x366E6C: `B0 04 → 78 00` + + diff --git a/docs/games/iidx26/problems.md b/docs/games/iidx26/problems.md new file mode 100644 index 0000000..7241f6d --- /dev/null +++ b/docs/games/iidx26/problems.md @@ -0,0 +1,67 @@ +# IIDX 26 Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC (ADE-6291) + + Konami (2018) + + Based on an AMD Embedded R Series SoC. + + CPU: AMD RX-421BD + + GPU: Radeon R7 + + RAM: 4 GB + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Camera Device Error Message + +!!! tip "" + The game released with two USB cameras and naturally it's looking for them, if you do not have two cameras plugged into your computer then the game outputs this error, which can be ignored simply by hitting `Test` or waiting 60 seconds for it to be auto-dismissed. + + But if you're tired of this message every time you start up the game, the `CAMERA DEVICE ERROR` message can be removed via a hex edit, check out the [Hex Edits](hexedits.md) section for an easy drag and drop solution. + +### Occasional Game Stutters During Play + +!!! tip "" + Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools `-realtime` parameter to your .bat file. + +### HD and HD* + +!!! tip "" + This version of IIDX has removed having two HD mode options, leaving only HD. `HD` and `HD*` neither is inherently better than the other, the only difference is HD* is an additional + 1.0 offset in-game, now applied to the lone `HD` mode. The official reasoning is to account for a different set of monitors on arcade cabs. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). + +### A Note About SSE 4.2 + +!!! tip "" + In the rare case you are running this game on *very* old hardware, IIDX 26 requires a processor supporting the [SSE 4.2 instruction set](https://en.wikipedia.org/wiki/SSE4#SSE4.2). But, in the event your processor does not have this, there is a [hex edit](hexedits.md) available to bypass this. + +### When I Run This Game All Other Background Audio Is Gone! What's Going On? + +!!! tip "" + 64-bit versions of IIDX are now utilizing a feature in Windows called [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) to obtain less audio latency than the former 32-bit versions of the games which used [DirectSound](https://en.wikipedia.org/wiki/DirectSound). Unfortunately, this cannot be changed. + +### I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac! + +!!! tip "" + Several external DACs have issues with [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC. + + diff --git a/docs/games/iidx26/setup.md b/docs/games/iidx26/setup.md new file mode 100644 index 0000000..9043aa7 --- /dev/null +++ b/docs/games/iidx26/setup.md @@ -0,0 +1,120 @@ +# beatmania IIDX 26 Rootage + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + + +### Getting Started + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + + If it's your first time running the game, you'll immediately be greeted with this screen, oh no! + + + +!!! tip "" + Ignore this message, simply hit your `Test` keybind and continue onto this. + + + +!!! tip "" + Hit the `Test` keybinding again to initialize the backup data, a message will pop up stating it's been initialized. + + + +!!! tip "" + Lastly, you'll run into this error message as well, let's work on eliminating these messages. Let the game run for a bit until the monitor check is complete and you should be taken to the service menu pictured below. + + + +!!! tip "" + Start by navigating up to `CLOCK` and entering that menu. + + + +!!! tip "" + Simply hit save and exit and leave, the clock will be saved. Then, back in the service menu, go up to `GAME OPTIONS` + + + +!!! tip "" + Once inside that menu, navigate your way up to `DEFINITION TYPE` and choose either `SD` or `HD` depending on your preferences. + + + +!!! tip "" + The game will then count down asking you to confirm the selection before reverting, just hit `YES` assuming it loaded just fine on your computer. Then, exit out of that menu and head to `NETWORK OPTIONS` from back inside the service menu. + + + +!!! tip "" + From here, we will need to set a shop name to play, so select the `SHOP NAME SETTING` option. Once inside, name your shop whatever you desire! For the purpose of the guide, we named it `Guide` but highly encourage fun and/or lazy names. Once that's done go to `EXIT` and then `SAVE AND EXIT` inside of `NETWORK OPTIONS` once you've chosen your desired name, as pictured below. + + + + + +!!! tip "" + You're all done! From the service menu select `GAME MODE` and the game should load ready to be played! Have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. diff --git a/docs/games/iidx27/hexedits.md b/docs/games/iidx27/hexedits.md new file mode 100644 index 0000000..53a3c9b --- /dev/null +++ b/docs/games/iidx27/hexedits.md @@ -0,0 +1,11 @@ +# beatmania IIDX 27 Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For LDJ-2020092900 + +!!! tip "" + Hello I know I left this page up thank you. + diff --git a/docs/games/iidx27/lightning.md b/docs/games/iidx27/lightning.md new file mode 100644 index 0000000..04c32b2 --- /dev/null +++ b/docs/games/iidx27/lightning.md @@ -0,0 +1,69 @@ +# beatmania IIDX 27 Lighting Mode Information + +### Notes + +!!! tip "" + Booting the game in Lightning Mode requires a few things. To start off with, you will need to enable the `-iidxtdj` option in SpiceTools and you will also need to enable the `Enable Lightning Mode` hex edit inside of SpiceTools and SpiceCompanion's patches tab. + + In doing so, and subsequently every time you choose to switch between the two modes, you will want to delete everything inside your `dev/nvram` folder, and redo the setup process again with initializing the backup date, setting the clock, shop name, and the definition type. + + SpiceTools as of 10/26/2020 has some updated features to work with this as well. Namely, the ability to toggle the Lightning Model subscreen via the `Toggle Subscreen` option in the Buttons tab. You can use your mouse to navigate the touchscreen as desired. Enter your pin, toggle buttons, etc. + + SpiceCompanion has also as of 10/26/2020 added a brand new Screen feature as well. Using SpiceCompanion, you can receive the subscreen on your phone/tablet/etc and then use your device as a touch device for the subscreen. Do note that at this time it will not work while the game is running in windowed mode. If you run into performance issues, go to the settings tab to adjust things like the Screen Quality, Screen Threads, and Screen Divide, this feature is heavily dependent on connection and you will notice as you bump up the quality that the ping will increase as well. It may take some fiddling to find the most ideal settings for your setup. + +### Lightning-specific Troubleshooting + +!!! tip "" + Below are the two main issues that have arisen for users utilizing this guide and general startup practices. + +### Hardware Specs + +!!! tip "" + + Bemani PC Type 11 (ARESPEAR C300) + + Konami (2019) + + Based on KONAMI ARESPEAR C300 gaming PC. + + CPU: Intel i5-9400F 2.9Ghz + + GPU: GIGABYTE GeForce GTX 1650 1530Mhz 4GB + + RAM: 8 GB DDR4 + + STORAGE: Innodisk 2.5" 3ME3 SATA SSD 256GB + + AUDIO: ASUS Xonar AE + + OS: Windows 10 IoT Enterprise + +### Enabling Lighting Mode Patch + +!!! tip "" + If you get a stack trace in your `log.txt` with the following line... + + `I:stackwalker: 00000001805FC970 (bm2dx): (unknown): dll_entry_main` + + Please enable the lightning mode patch in SpiceTool's patch manager. + +### Audio Related Crash + +!!! tip "" + If you get a stack trace in your `log.txt` that looks like this... + + `exception raised: EXCEPTION_ACCESS_VIOLATION` + + `[2020/10/22 18:20:21] I:signal: printing callstack` + + `[2020/10/22 18:20:21] I:stackwalker: 000000018026E906 (bm2dx): (unknown): (unknown)` + + For cab type 1 (LDJ), change your audio device to motherboard audio and/or use -audiobackend asio `-asiodriverid ... -audiodummy` + + For cab type 2 (TDJ, with `-iidxtdj` or another means), you have a few options: + + 1) Use `-iidxasio "Driver Name Here"` to set the ASIO driver used by IIDX's own ASIO handler. (Does not work with all ASIO drivers, they designed it to work best with a specific revision of the XONAR SOUNCARD(64)) + + 2) Use `-iidxsounddevice wasapi` to set IIDX to use WASAPI instead of its own ASIO handler. + + 3) Use `-iidxsounddevice wasapi` along with `-audiobackend asio ...` to have the game pipe audio through Spice's own ASIO handler which is more compatible with various ASIO drivers \ No newline at end of file diff --git a/docs/games/iidx27/problems.md b/docs/games/iidx27/problems.md new file mode 100644 index 0000000..d23e4cc --- /dev/null +++ b/docs/games/iidx27/problems.md @@ -0,0 +1,63 @@ +# IIDX 27 Common Problems/Tips + +!!! note "Author Note:" + For lightning specific issues, see [lightning cab notes](lightning.md#lightning-specific-troubleshooting) + +### Hardware Specs + +!!! tip "" + + (These are the specs for non-lightning model cab running Heroic Verse) + + Bemani PC Type 9 (ADE-6291) + + Konami (2017) + + Based on an AMD Embedded R Series SoC. + + CPU: AMD RX-421BD 2.1/3.4GHz APU + + GPU: Radeon R7 800Mhz + + RAM: 4 GB + + STORAGE: innodisk 3ME2 mSATA SSD 256GB + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz or 120hz framerate, depending on if you're in LDJ or TDJ mode. The game is hardcoded to run at these specific framerates and this cannot be changed. To solve this, set your monitor's refresh rate to match if you're in LDJ 60hz or TDJ 120hz mode. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard or around 120.00hz. If it's not around there and your monitor is indeed set correctly for the given mode, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Occasional Game Stutters During Play + +!!! tip "" + Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools `-realtime` parameter to your .bat file. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). + +### A Note About SSE 4.2 + +!!! tip "" + In the rare case you are running this game on *very* old hardware, IIDX 27 requires a processor supporting the [SSE 4.2 instruction set](https://en.wikipedia.org/wiki/SSE4#SSE4.2). But, in the event your processor does not have this, there is a [hex edit](hexedits.md) available to bypass this. + +### When I Run This Game All Other Background Audio Is Gone! What's Going On? + +!!! tip "" + 64-bit versions of IIDX are now utilizing a feature in Windows called [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) to obtain less audio latency than the former 32-bit versions of the games which used [DirectSound](https://en.wikipedia.org/wiki/DirectSound). Unfortunately, this cannot be changed. + +### I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac! + +!!! tip "" + Several external DACs have issues with [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC. + + diff --git a/docs/games/iidx27/setup.md b/docs/games/iidx27/setup.md new file mode 100644 index 0000000..c4cb470 --- /dev/null +++ b/docs/games/iidx27/setup.md @@ -0,0 +1,140 @@ +# beatmania IIDX 27 Heroic Verse + +!!! note "Author Note:" + + For hex edits: Use the Patches tab in SpiceTools or SpiceCompanion. + + For lightning mode specifics: they are found [here](lightning.md) + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + + +### Getting Started + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's `contents` folder, Pictured below is what your folder should look like. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up `spicecfg.exe` and head to the `Options` where we'll set our desired parameters. For the purpose of this guide, we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + You will have to likely generate a .bat file given your existing tool's documentation. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs and to consult appropriate support if you're unsure how to do this. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, inside `Options` tab we're going to click on the following: `E-Amusement Emulation: -ea` and `Windowed Mode: -w` to enable them. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the selected options inside the `Options` tab in `spicecfg.exe`. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On the `Service URL: -url` parameter, we're going to input our chosen network URL like so: `http://yoururlhere.com/` + + To go alongside this, we'll also be inputting into the `PCBID: -p` parameter, the PCBID given to us from our network, like so: `XXXXXXXXXXXXXXXXXXXX` + + Lastly, we'll click on the `Windowed Mode: -w` parameter. + + What do these different parameters do? + + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the selected options inside the `Options` tab in `spicecfg.exe`. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds inside the `Buttons` and `Analogs` tabs! If you'd like an example, I've shown my keybindings below on a DJ DAO FP7 from the 1P side. Make sure you setup the `Test` keybind as it will be critical for setting up the game. + + + + +!!! tip "" + Once you've done that, launch your game for the first time by double clicking the `spice64.exe` and the game should load with your chosen parameters from `spicecfg.exe`. + + If it's your first time running the game, you'll immediately be greeted with this screen, oh no! + + + +!!! tip "" + Ignore this message, simply hit your `Test` keybind and continue onto this. + + + +!!! tip "" + Hit the `Test` keybinding to initialize the backup data, a message will pop up stating it's been initialized. + + + +!!! tip "" + You'll also run into this error message as well, let's work on eliminating these messages. Let the game run for a bit until the monitor check is complete and you should be taken to the service menu pictured below. + + + +!!! tip "" + Start by navigating up to `CLOCK` and entering that menu. + + + +!!! tip "" + Simply hit save and exit and leave, the clock will be saved. Then, back in the service menu, go up to `GAME OPTIONS` + + + +!!! tip "" + Once inside that menu, navigate your way up to `DEFINITION TYPE` and choose either `SD` or `HD` depending on your preferences. + + + +!!! tip "" + The game will then count down asking you to confirm the selection before reverting, just hit `YES` assuming it loaded just fine on your computer. Then, exit out of that menu and head to `NETWORK OPTIONS` from back inside the service menu. + + If it doesn't transition to HD, after you've saved, you can simply reboot the game and all should be well. + + + +!!! tip "" + The final thing we need to set is here inside `NETWORK OPTIONS`, we will need to set a shop name to play, so select the `SHOP NAME SETTING` option. Once inside, name your shop whatever you desire! For the purpose of the guide, we named it `Guide` but highly encourage fun and/or lazy names. Once that's done go to `EXIT` and then `SAVE AND EXIT` inside of `NETWORK OPTIONS` once you've chosen your desired name, as pictured below. + + + + + +!!! tip "" + You're all done! From the service menu select `GAME MODE` and the game should load ready to be played! Have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. + + Lightning Mode specifics can be found: [here](lightning.md#lightning-specific-troubleshooting) diff --git a/docs/games/jubeatclan/hexedits.md b/docs/games/jubeatclan/hexedits.md new file mode 100644 index 0000000..53bf90b --- /dev/null +++ b/docs/games/jubeatclan/hexedits.md @@ -0,0 +1,29 @@ +# jubeat clan Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For L44-2018070901 + +!!! tip "" + + Disable Tutorial + + - jubeat.dll: `0xCFFC7: 75 4A 57 68 00 -> E9 90 00 00 00` + + Song Select Timer Freeze + + - jubeat.dll: `0xA5A49: 75 -> EB` + + Expert Options Lock (Toggling on expert option keeps it on for every future play) + + - jubeat.dll: `0xD4699: 89 1D -> EB 0B` + + Online Matching Skip + + - jubeat.dll: `0xBCDCE: 7D -> EB` + + Unlock All Songs + + - music_db.dll `0x1B8F: 74 09 -> 90 90` \ No newline at end of file diff --git a/docs/games/jubeatclan/problems.md b/docs/games/jubeatclan/problems.md new file mode 100644 index 0000000..c3e5ea1 --- /dev/null +++ b/docs/games/jubeatclan/problems.md @@ -0,0 +1,34 @@ +# jubeat clan Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC (ADE-704A) + + This board has a E4690 Radeon MXM card. + + CPU: Intel Celeron B810 + + GPU: AMD Radeon E4690 + + Chipset: Intel HM65 + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Occasional Game Stutters During Play + +!!! tip "" + Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools `-realtime` parameter to your .bat file. + +### My Touchscreen Isn't Working! + +!!! tip "" + There's a myriad of reasons for this. With SpiceTools in most cases, try using the `-wintouch` parameter if rawinput is not working for your monitor. \ No newline at end of file diff --git a/docs/games/jubeatclan/setup.md b/docs/games/jubeatclan/setup.md new file mode 100644 index 0000000..cf7a4c2 --- /dev/null +++ b/docs/games/jubeatclan/setup.md @@ -0,0 +1,83 @@ +# jubeat clan + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's main folder and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice.exe -ea` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + + If it's your first time running the game, you'll immediately be greeted with this screen (cropped to save your sanity with scrolling repeatedly on the page), oh no! + + + +!!! tip "" + This is okay, you can use your mouse or touchscreen to simply hit `TEST` to initialize the backup data, the game will prompt you to reboot, but let's save ourselves some time and instead go into the `GAME OPTIONS` menu instead, as shown below. If you rebooted, you will see a message telling you to set the "Shop Settings" which is what we're going to now do, as shown below. + + + +!!! tip "" + Enter the `GAME OPTIONS` menu and proceed to the `SHOP SETTINGS` menu. + + + +!!! tip "" + From here, we will need to set the `SHOP NAME SETTINGS`. This is a simple process, simply navigate using the controls in the menu to set any name you desire! For the purpose of the guide, we named it `Guide` but highly encourage fun and/or lazy names. Lastly, if you're not connected to an online network, you'll need to set the `SHOP AREA` as well, navigate to any option you prefer, they're all predefined so you can't get creative here, pictured below is what we set ours to. + + + +!!! tip "" + With that, you're all done! Simply exit the service menu or reboot then enjoy the game, have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/musecafinal/hexedits.md b/docs/games/musecafinal/hexedits.md new file mode 100644 index 0000000..f887fdb --- /dev/null +++ b/docs/games/musecafinal/hexedits.md @@ -0,0 +1,20 @@ +# MUSECA 1+1/2 Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits for PIX-2018073002 + +!!! tip "" + All edits below are for `museca.dll` unless otherwise specified. + + Infinite Final Layer + + - 0x17E587: `FF 83 48 14 00 00 -> 90 90 90 90 90 90` + - 0x17E4DF: `7F 08 -> 90 90` + - 0x17E060: `8B 81 48 14 00 00 -> B8 03 00 00 00 90` + + Auto Event Mode Toggled (Freeplay (Coin Options) Must be "ON" for this to Work Efficiently) + + - 0x196431: `89 01 88 41 10 C7 41 14 01 00 00 00 C3 CC CC CC CC -> C7 01 01 00 00 00 88 41 10 C7 41 14 01 00 00 00 C3` \ No newline at end of file diff --git a/docs/games/musecafinal/problems.md b/docs/games/musecafinal/problems.md new file mode 100644 index 0000000..3f1953b --- /dev/null +++ b/docs/games/musecafinal/problems.md @@ -0,0 +1,53 @@ +# MUSECA 1+1/2 Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC (ADE-6291) + + Konami (2018) + + Based on an AMD Embedded R Series SoC. + + CPU: AMD RX-421BD + + GPU: Radeon R7 + + RAM: 4 GB + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Occasional Game Stutters During Play + +!!! tip "" + Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools `-realtime` parameter to your .bat file. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). + +### Booting the Game in Offline Mode + +!!! tip "" + If your game version is PIX-2018073002, this version supports turning off E-Amusement. In order to do that, change the game code to `J:B:A` (`B` in `prop/ea3-config.xml`), disable/disconnect all network adapters and turn set the E-Amusement setting in the game's operator menu to OFF. + +### When I Run This Game All Other Background Audio Is Gone! What's Going On? + +!!! tip "" + Museca is a 64-bit game utilizing a feature in Windows called [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) to obtain less audio latency. Unfortunately, this cannot be changed. + +### I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac! + +!!! tip "" + Several external DACs have issues with [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC. \ No newline at end of file diff --git a/docs/games/musecafinal/setup.md b/docs/games/musecafinal/setup.md new file mode 100644 index 0000000..2f4272e --- /dev/null +++ b/docs/games/musecafinal/setup.md @@ -0,0 +1,78 @@ +# MUSECA 1+1/2 + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + + +### Getting Started + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + It's important to note before booting the game that Museca uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our *main* monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into `Display Settings`, then simply set the orientation to `Portrait` as pictured. + + In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is `-w` and can be placed right after any other desired parameters chosen in our `gamestart.bat` + + + + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load and be ready to be enjoyed! Have fun! + +!!! warning "Have any other errors?" + + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/nostforte/hexedits.md b/docs/games/nostforte/hexedits.md new file mode 100644 index 0000000..b00644f --- /dev/null +++ b/docs/games/nostforte/hexedits.md @@ -0,0 +1,10 @@ +# NOSTALGIA FORTE Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For PAN-2018062002 + +!!! tip "" + At the time of writing, no hex edits have been worked on for Nostalgia. \ No newline at end of file diff --git a/docs/games/nostforte/problems.md b/docs/games/nostforte/problems.md new file mode 100644 index 0000000..c8cd513 --- /dev/null +++ b/docs/games/nostforte/problems.md @@ -0,0 +1,41 @@ +# NOSTALGIA FORTE Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 6 (ADE-704A) + + Based on an AMD Embedded R Series SoC. + + CPU: Intel Celeron B810 + + GPU: AMD Radeon E4690 + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Occasional Game Stutters During Play + +!!! tip "" + Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools `-realtime` parameter to your .bat file. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). + +### No Matter What I Do, the Game Crashes and I Have Multiple Monitors! + +!!! tip "" + This problem is somewhat irregular, but sometimes Nostalgia has issues booting with multiple monitors present, particularly when trying to boot the game windowed. Make sure you're running the latest SpiceTools which has attempted to resolve all instances of this issue. + + diff --git a/docs/games/nostforte/setup.md b/docs/games/nostforte/setup.md new file mode 100644 index 0000000..a1d2f38 --- /dev/null +++ b/docs/games/nostforte/setup.md @@ -0,0 +1,101 @@ +# NOSTALGIA FORTE + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's main folder and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate ONLY a local network configuration with SpiceTools. Why only local? Because none of the most typical places currently support Nostalgia. Regardless, please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + + If it's your first time running the game, you should be automatically forced into the service menu with lots of scary flashing notifications as pictured below, let's work through them. + + + +!!! tip "" + Interestingly, only the red flashing ones really take any effort to deal with. You can start by entering and exiting the following menus: `SOUND OPTIONS`, `GAME OPTIONS`, `COIN OPTIONS`, `ECOMODE OPTIONS`, and `NETWORK OPTIONS`. + + Once you've done that, enter `CLOCK` and set the clock by hitting `SAVE AND EXIT` as pictured below. + + + +!!! tip "" + The final menu we must deal with is `VIRTUAL COIN`, enter the menu and select `OPERATION SETTINGS` as seen below. + + + +!!! tip "" + Once inside this menu, we'll need to deal with all 4 blinking options, let's start by entering the `TAX RATE SETTING` menu, shown below. + + + +!!! tip "" + Set the tax rate by simply selecting `SAVE AND EXIT` while will take us back into the `OPERATING SETTINGS`. Pictured below is the `TAX RATE SETTING` menu. + + + +!!! tip "" + Once back inside the `TAX RATE SETTING` menu, we must deal with the three blinking `PATTERN` options. Doing so is effortless, simply enter all three menus one by one and hit `SAVE AND EXIT` just as we did for the `TAX RATE SETTING` in the previous step. Pictured below is the inside of `PATTERN 1`. + + + +!!! tip "" + After saving and exiting all three `PATTERN` options, you're all done! From the service menu select `GAME MODE` and the game should load ready to be played! Have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/nostop2/hexedits.md b/docs/games/nostop2/hexedits.md new file mode 100644 index 0000000..1aeba25 --- /dev/null +++ b/docs/games/nostop2/hexedits.md @@ -0,0 +1,33 @@ +# NOSTALGIA OP.2 Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For PAN-20191002/PAN-2019112700 + +!!! tip "" + + Menu Timer Freeze + + - nostalgia.dll: `0x303D33: 41 FF C8 -> 90 90 90` + + Shorter Monitor Check + + - nostalgia.dll: `0x21A6FA: 1E -> 00` + + Hide "EXTRA PASELI: %d" + + - nostalgia.dll: `0x307BD2: CA 2F 2A -> 04 72 26` + - nostalgia.dll: `0x307BEE: 7E 2F 2A -> E8 71 26` + + Hide "PASELI: *****" + + - nostalgia.dll: `0x307A6E: FF 15 14 42 09 00 -> E9 A0 01 00 00 90` + + Hide Credit Count + + - nostalgia.dll: `0x307E31: BB 2B 2A -> A5 6F 26` + - nostalgia.dll: `0x307E4D: 7F 2B 2A -> 89 6F 26` + + \ No newline at end of file diff --git a/docs/games/nostop2/problems.md b/docs/games/nostop2/problems.md new file mode 100644 index 0000000..f5834a9 --- /dev/null +++ b/docs/games/nostop2/problems.md @@ -0,0 +1,41 @@ +# NOSTALGIA OP.2 Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 6 (ADE-704A) + + Based on an AMD Embedded R Series SoC. + + CPU: Intel Celeron B810 + + GPU: AMD Radeon E4690 + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast! + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Occasional Game Stutters During Play + +!!! tip "" + Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools `-realtime` parameter to your .bat file. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). + +### No Matter What I Do, the Game Crashes and I Have Multiple Monitors! + +!!! tip "" + This problem is somewhat irregular, but sometimes Nostalgia has issues booting with multiple monitors present, particularly when trying to boot the game windowed. Make sure you're running the latest SpiceTools which has attempted to resolve all instances of this issue. + + diff --git a/docs/games/nostop2/setup.md b/docs/games/nostop2/setup.md new file mode 100644 index 0000000..7ebc9e4 --- /dev/null +++ b/docs/games/nostop2/setup.md @@ -0,0 +1,101 @@ +# NOSTALGIA OP.2 + +!!! danger "Warning:" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + Once that's done, it's time to work on setting up your data. + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's main folder and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file whatever you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +### Configuring Your Tools + +!!! tip "" + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate ONLY a local network configuration with SpiceTools. Why only local? Because none of the most typical places currently support Nostalgia. Regardless, please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Final Steps and Setting up the Game + +!!! tip "" + The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the `Test` keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the `.bat` you setup and the game should load. + + If it's your first time running the game, you should be automatically forced into the service menu with lots of scary flashing notifications as pictured below, let's work through them. + + + +!!! tip "" + Interestingly, only the red flashing ones really take any effort to deal with. You can start by entering and exiting the following menus: `SOUND OPTIONS`, `GAME OPTIONS`, `COIN OPTIONS`, `ECOMODE OPTIONS`, and `NETWORK OPTIONS`. + + Once you've done that, enter `CLOCK` and set the clock by hitting `SAVE AND EXIT` as pictured below. + + + +!!! tip "" + The final menu we must deal with is `VIRTUAL COIN`, enter the menu and select `OPERATION SETTINGS` as seen below. + + + +!!! tip "" + Once inside this menu, we'll need to deal with all 4 blinking options, let's start by entering the `TAX RATE SETTING` menu, shown below. + + + +!!! tip "" + Set the tax rate by simply selecting `SAVE AND EXIT` while will take us back into the `OPERATING SETTINGS`. Pictured below is the `TAX RATE SETTING` menu. + + + +!!! tip "" + Once back inside the `TAX RATE SETTING` menu, we must deal with the three blinking `PATTERN` options. Doing so is effortless, simply enter all three menus one by one and hit `SAVE AND EXIT` just as we did for the `TAX RATE SETTING` in the previous step. Pictured below is the inside of `PATTERN 1`. + + + +!!! tip "" + After saving and exiting all three `PATTERN` options, you're all done! From the service menu select `GAME MODE` and the game should load ready to be played! Have fun! + +!!! warning "Have any other errors?" + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/popnpeace/hexedits.md b/docs/games/popnpeace/hexedits.md new file mode 100644 index 0000000..20180be --- /dev/null +++ b/docs/games/popnpeace/hexedits.md @@ -0,0 +1,42 @@ +# Pop'n Peace Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For M39-2020092800 + +!!! tip "" + + E: Drive fix + + - popn22.dll: `0x286AA8: 65 3A 2F -> 64 65 76` + + HDMI Audio Fix + + - popn22.dll `0x13442C: 85 C0 75 96 -> 90 90 90 90` + + Prevent Windows volume change on boot + + - popn22.dll: `0x137030: 83 -> C3` + + Boot to Event Mode + + - popn22.dll `0x108DC0: 8B 00 C3 CC -> 31 C0 40 C3` + + Timer Freeze + + - popn22.dll `0xE294C: 0F 85 -> 0x90 E9` + + Skip Menu and Long Note Tutorials + + - popn22.dll `0x28E0B: 74 -> EB` + - popn22.dll `0x28DE7: 75 -> EB` + - popn22.dll `0x8AE71: 75 -> EB` + + Unlock All Songs + + - popn22.dll `0x10D2E2: 74 -> EB` + - popn22.dll `0x10D2FB: 75 46 -> 90 90` + - popn22.dll `0x10D318: 74 3A -> 90 90` + - popn22.dll `0x10D33B: 84 C0 -> B0 01` \ No newline at end of file diff --git a/docs/games/popnpeace/problems.md b/docs/games/popnpeace/problems.md new file mode 100644 index 0000000..8772066 --- /dev/null +++ b/docs/games/popnpeace/problems.md @@ -0,0 +1,39 @@ +Pop'n Peace Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 4 + + CPU: Intel Celeron B810 1.6GHz + + GPU: ATI Radeon E4690 MXM + + OS: Windows XP Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Why Is the In-Game Text Garbled? + +!!! tip "" + The in-game text requires a Japanese locale to display the Japanese characters correctly, look up a guide for your specific operating system on how to switch your operating system's locale to Japanese. + +### The game crashes fullscreen! + +!!! tip "" + Some monitors and display adapters may not support the odd resolution the game runs at, which is 1360x768 versus the occasionally seen 1366x768. To resolve, setup a custom resolution inside your appropriate graphic's card settings, or enable GPU resolution scaling. + +### Other Crashes + +!!! tip "" + This game requires an E: drive to be named by the computer. If you do not have one, make sure to apply the `E: Drive fix` [hex edit](hexedits.md) + + It may also fail to boot regardless of this, such as in the case of using HDMI audio. Even if you're not using HDMI audio however, some failures to boot have been noted. For safety, make sure to also apply the `HDMI Audio Fix` [hex edit](hexedits.md) unless you're using the latest SpiceTools which fixes this issue. \ No newline at end of file diff --git a/docs/games/popnpeace/setup.md b/docs/games/popnpeace/setup.md new file mode 100644 index 0000000..4788c41 --- /dev/null +++ b/docs/games/popnpeace/setup.md @@ -0,0 +1,83 @@ +# Pop'n Peace + +!!! danger "Warning" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + + This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's `contents` folder. Pictured below is what your folder should look like. + + + + +### Configuring Your Tools + +!!! tip "" + + Now that you have your files ready, open up `spicecfg.exe` and head to the `Options` tab. Here you can configure all of the various options that SpiceTools has, but for the purpose of this guide we'll demonstrate how to set up a local server and an online server. You can skip over the parts that you don't need, and feel free to set any other options that you might like. + +!!! warning "If you're not using SpiceTools:" + + It's most likely that your toolkit doesn't have an options interface, so you'll have to create a `.bat` file. Consult the appropriate documentation for this as this isn't covered in this guide. + +### Configuring for a Local Network + +!!! tip "" + + For our local network configuration example, in the `Options` tab enable the following options: `E-Amusement Emulation: -ea` and `Windowed Mode: -w`. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the selected options in `spicecfg.exe`. + + + +### Configuring for an Online Network + +!!! tip "" + + For our online network example we're simply doing the above but with different options! + + We're going to use the option `PCBID: -pcbid` for our PCBID, with `XXXXXXXXXXXXXXXXXXXX` as the value. + For the network URL we're going to use the option `Service URL: -url`, with `http://yoururlhere.com/` as the value. + We'll also enable windowed mode by enabling the option `Windowed Mode: -w`. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the enabled options in `spicecfg.exe`. + + + +!!! tip "" + + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Configuring Keybinds + +!!! tip "" + + While we're still in `spicecfg.exe`, why not set up the keybinds? To do this you'll have to head on over to the `Buttons` tab. Here you simply click `Bind` and press the button on your controller (or keyboard). Below are my keybinds of an arduino based controller. Notice that I've also bound the `Service`, `Test` and `Coin Mech` buttons to my keyboard. This might come in handy but shouldn't be necessary to play the game. + + + +### Booting + +!!! tip "" + With that, you're all done! Boot the game by double-clicking `spice.exe` and the game should load and be ready to be enjoyed! Have fun! + +!!! warning "Have any other errors?" + + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/popnusaneko/hexedits.md b/docs/games/popnusaneko/hexedits.md new file mode 100644 index 0000000..364e296 --- /dev/null +++ b/docs/games/popnusaneko/hexedits.md @@ -0,0 +1,50 @@ +# Pop'n Usaneko Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For M39-2018082100 + +!!! tip "" + + E: Drive fix + + - popn22.dll: `0x25A5D0: 65 3A 2F -> 64 65 76` + + HDMI Audio Fix + + - popn22.dll `0x12C26C: 85 C0 75 96 -> 90 90 90 90` + + Prevent Windows volume change on boot + + - popn22.dll: `0x12EE70: 83 -> C3` + + Boot to Event Mode + + - popn22.dll `0x100A10: 8B 00 C3 CC -> 31 C0 40 C3` + + Timer Freeze + + - popn22.dll `0xDB3F2: C7 45 38 09 00 00 00 -> 90 90 90 90 90 90 90` + + Partial Song Unlock (NOTE: This does not unlock all songs, see the notes below. + + - popn22.dll `0x1E0524 - 0x1E073F: fill with zeros (00)` + + Unlock Classic 8 EX as a 49 + + - popn22.dll `0x2AC1DB: 05 -> 07` + - popn22.dll `0x2AC1EB: 01 -> 31` + + Network Adapter Fix (for matching online/local) + + - libavs-win32.dll: '0x3A13D: 8B 7C 24 08 8B D5 8B -> BA 01 00 00 00 EB B5' + +### Notes + +!!! tip "" + + Since we don't have hex edits to unlock songs that are both new and old (eclale songs, SDVX FLOOR INFECTION, etc.) [Here is an unlocked DLL with both the HDMI audio fix and E: drive fix already done.](/files/usaneko-unlock.zip) + + This will unlock all songs in pop'n 24, 23 and the floor infection songs in pop'n 23 and 22. This also takes away the hold note identifier on the menus, so you don't have to have that annoying hold note tutorial if you play without a card or offline. \ No newline at end of file diff --git a/docs/games/popnusaneko/problems.md b/docs/games/popnusaneko/problems.md new file mode 100644 index 0000000..c31de7c --- /dev/null +++ b/docs/games/popnusaneko/problems.md @@ -0,0 +1,46 @@ +Pop'n Usaneko Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 4 + + CPU: Intel Celeron B810 1.6GHz + + GPU: ATI Radeon E4690 MXM + + OS: Windows XP Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Why Is the In-Game Text Garbled? + +!!! tip "" + The in-game text requires a Japanese locale to display the Japanese characters correctly, look up a guide for your specific operating system on how to switch your operating system's locale to Japanese. + +### The game crashes fullscreen! + +!!! tip "" + Some monitors and display adapters may not support the odd resolution the game runs at, which is 1360x768 versus the occasionally seen 1366x768. To resolve, setup a custom resolution inside your appropriate graphic's card settings, or enable GPU resolution scaling. + +### Other Crashes + +!!! tip "" + This game requires an E: drive to be named by the computer. If you do not have one, make sure to apply the `E: Drive fix` [hex edit](hexedits.md) + + It may also fail to boot regardless of this, such as in the case of using HDMI audio. Even if you're not using HDMI audio however, some failures to boot have been noted. For safety, make sure to also apply the `HDMI Audio Fix` [hex edit](hexedits.md) unless you're using the latest SpiceTools which fixes this issue. + +### How to Unlock Songs + +!!! tip "" + Without an appropriate hex edit available, the game is missing song unlocks. To resolve this, I've provided an unlocked DLL with BOTH the HDMI audio fix and E: drive fix already applied. You can download it [here](/files/usaneko-unlock.zip) + + Simply replace it with your existing one inside the `contents` folder of your game installation. When asked to replace, hit yes. \ No newline at end of file diff --git a/docs/games/popnusaneko/setup.md b/docs/games/popnusaneko/setup.md new file mode 100644 index 0000000..98fec41 --- /dev/null +++ b/docs/games/popnusaneko/setup.md @@ -0,0 +1,71 @@ +# Pop'n Usaneko + +!!! danger "Warning" + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + + This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file anything you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + + +### Configuring Your Tools + +!!! tip "" + + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your `gamestart.bat` and the game should load and be ready to be enjoyed! Have fun! + +!!! warning "Have any other errors?" + + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/reflesia/hexedits.md b/docs/games/reflesia/hexedits.md new file mode 100644 index 0000000..bde9c8f --- /dev/null +++ b/docs/games/reflesia/hexedits.md @@ -0,0 +1,13 @@ +# Reflec Beat Reflesia Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For MBR-2018121100 + +!!! tip "" + + E:\ drive fix + + - reflecbeat.dll: `0x28B0FC: 65 3A 2F -> 64 65 76` \ No newline at end of file diff --git a/docs/games/reflesia/problems.md b/docs/games/reflesia/problems.md new file mode 100644 index 0000000..1fcda37 --- /dev/null +++ b/docs/games/reflesia/problems.md @@ -0,0 +1,42 @@ +# REFLEC BEAT: Reflesia Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC (ADE-704A) + + CPU: Intel Celeron B810 1.6GHz + + GPU: E4690 Radeon MXM + + OS: Windows XP Embedded + +### My Game Doesn't Boot After Following the Guide! + +!!! tip "" + The most common problem present here is if you do not have an E:/ drive. To resolve this issue, you must apply the `E:/drive fix` hex edit found [here.](hexedits.md) + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). + +### Failed to Create Texture Error in SpiceTools + +!!! tip "" + If your error is along the lines of a failure to create a texture W:afputils: CTexture::create_texture テクスチャの作成に失敗しました。 then boot the game without touching anything, even your mouse, maybe give it a few tries, it's admittedly a strange issue with no exact science behind it discovered. + +### I Get a White Screen That Silently Closes After a Few Seconds + +!!! tip "" + Reflesia runs at 768x1360 opposed to more common resolutions. If your monitor doesn't have support for this, try making a custom resolution in your graphic's cards options. Also, make sure your monitor is in portrait mode as opposed to landscape. \ No newline at end of file diff --git a/docs/games/reflesia/setup.md b/docs/games/reflesia/setup.md new file mode 100644 index 0000000..1cfa55d --- /dev/null +++ b/docs/games/reflesia/setup.md @@ -0,0 +1,85 @@ +# REFLEC BEAT: The Reflesia of Eternity + +!!! danger "Warning" + + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + One other thing, make sure your game folder isn't set to `Read Only` and that you don't have horribly wonky security permissions in Windows. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + + This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is put your desired 32-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file anything you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + + +### Configuring Your Tools + +!!! tip "" + + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + + It's important to note before booting the game that Reflec Beat uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our *main* monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into `Display Settings`, then simply set the orientation to `Portrait` as pictured. + + + + In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is `-w` and can be placed right after any other desired parameters chosen in our `gamestart.bat` + + As for the touch stuff, by default SpiceTools should detect your mouse just fine, you can use the `-s` parameter to have your cursor show at all times above the game window. For touchscreen monitors, it's a bit tricky to write something encompassing them all. Many should be detected automatically, however some may require adding the `-wintouch` parameter for support. + + You can check out some documented touchscreen monitors [here.](/extras/pollingrates/) + + With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your `gamestart.bat` and the game should load and be ready to be enjoyed! Have fun! + +!!! warning "Have any other errors?" + + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. \ No newline at end of file diff --git a/docs/games/sdvx4/hexedits.md b/docs/games/sdvx4/hexedits.md new file mode 100644 index 0000000..f0114b0 --- /dev/null +++ b/docs/games/sdvx4/hexedits.md @@ -0,0 +1,144 @@ +# Sound Voltex IV: Heavenly Haven Hex Edits + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For KFC-2019020600 + +!!! tip "" + + Auto Event Mode Toggled (Freeplay (Coin Options) must be "ON" for this to work efficiently) + + - soundvoltex.dll: `0x19EAD2: 00 > 01` + + Difficulty Unlock + + - soundvoltex.dll: `0x158D42: E8 69 5D 02 -> B8 0D 00 00` + + Song Unlock + + - soundvoltex.dll: `0x1BF579: 8B 44 24 20 E8 3E EB FF FF -> B8 03 00 00 00 90 90 90 90` + + 2 Song Safe + + - soundvoltex.dll: `0x17A153: 32 C0 -> B0 01` + + Premium Free Hack (Combine with 2 Song Safe Hex above for full effect) + + - soundvoltex.dll: `0x1D6B8F: 00 -> 02` + - soundvoltex.dll: `0x1D6D76: 8B 83 64 10 00 00 8D 48 01 83 F9 04 56 57 7F 52 -> B8 01 00 00 00 89 83 64 10 00 00 90 56 57 90 90` + + Safe Banner Removal + + - soundvoltex.dll `0x2FB684: 73 -> 00` + + Prevent Windows volume change on boot + + - soundvoltex.dll: `0x2550CA: E8 21 03 00 00 -> 90 90 90 90 90` + + Disable EVENT MODE/FREE PLAY text + + - soundvoltex.dll: `0xBF9E0: E8 DB -> EB 03` + + Allow ARS (Alternative Rate System) Option (At gauge select, goto excessive and press BT-D to enable) + + - soundvoltex.dll `0x179864: 74 -> EB` + + Non-effective rate gauges start at 0% + + - soundvoltex.dll: `0x120730: 10 27 -> 01 00` + + Non-effective rate gauges do not recover + + - soundvoltex.dll: `0x120BAA: 01 50 48 -> 90 90 90` + + Enable MUSECA cards in generator start + + - soundvoltex.dll: `0x31F3BA: 6D 75 73 65 63 61 -> 90 90 90 90 90 90` + + Disable chain display + + - soundvoltex.dll: `0x128241 8B 45 08 -> 90 90 90` + + Disable gold chain color + + - soundvoltex.dll: `0x12822F 00 -> FF` + + Disable UC,PUC fanfare + + - soundvoltex.dll: `0x1285D2 80 -> 81` + - soundvoltex.dll: `0x128614 00 -> FF` + + Unlock blaster barrier rank 5 + + - soundvoltex.dll: `0x9DAA6 08 -> 0A` + - soundvoltex.dll: `0x9DAB7 08 -> 0A` + +### List of Known Edits For KFC-2017112800 + +!!! tip "" + + Auto Event Mode Toggled (Freeplay (Coin Options) must be "ON" for this to work efficiently) + + - soundvoltex.dll: `0x196562 : 00 > 01` + + Song & Difficulty Unlock + + - soundvoltex.dll: `0x152142: E8 F9 41 02 -> B8 0D 00 00 (Difficulty Unlock)` + - soundvoltex.dll: `0x1B4A31: 8B 44 24 20 E8 A6 EC FF FF -> B8 03 00 00 00 90 90 90 90 (Song Unlock)` + + 2 Song Safe + + - soundvoltex.dll: `0x171B07: 32 C0 -> B0 01` + + Premium Free Hack (Combine with 2 Song Safe Hex above for full effect) + + - soundvoltex.dll: `0x1CAAFF: 00 -> 02` + - soundvoltex.dll: `0x1CACC6: 8B 83 64 10 00 00 8D 48 01 83 F9 04 56 57 7F 52 -> B8 01 00 00 00 89 83 64 10 00 00 90 56 57 90 90` + + Safe Banner Removal + + - soundvoltex.dll: `0x2E9C44: 73 -> 00` + + Prevent Windows volume change on boot + + - soundvoltex.dll: `0x2451EA: E8 21 03 00 00 -> 90 90 90 90 90` + + Disable EVENT MODE/FREE PLAY text + + - soundvoltex.dll: `0xBC920: E8 6B -> EB 03` + + Hispeed values from 0.1 to 20.0 + + - soundvoltex.dll: `0x12198B: DD 05 F8 87 2D 10 -> D9 05 A0 89 2D 10` + - soundvoltex.dll: `0x1219A0: DD 05 00 88 2D 10 -> D9 05 E4 86 2D 10` + - soundvoltex.dll: `0x1211C1: DD 05 F8 87 2D 10 -> D9 05 A0 89 2D 10` + - soundvoltex.dll: `0x1211BB: DD 05 00 88 2D 10 -> D9 05 E4 86 2D 10` + + Allow ARS (Alternative Rate System) Option (At gauge select, goto excessive and press BT-D to enable) + + - soundvoltex.dll: `0x171274: 74 -> EB` + + Non-effective rate gauges start at 0% + + - soundvoltex.dll: `0x11ACD0: 10 27 -> 01 00` + + Non-effective rate gauges do not recover + + - soundvoltex.dll: `0x11B14A: 01 50 48 -> 90 90 90` + + Remove combo/chain display + + - soundvoltex.dll: `0x1220B1: 8B 45 08 -> 90 90 90` + + Omega Dimension semi-conversion + + - soundvoltex.dll: 0x358B40: DC 5F 30 10 -> 38 54 30 10 + + - data/sound/sys_sd_ver04.2dx + + - sys_sd_ver04.2dx: `0x4C: 0A D5 0B 00 -> B6 1D 52 00` + - sys_sd_ver04.2dx: `0x5C: D2 6B 3D 00 -> 28 10 68 00` + - sys_sd_ver04.2dx `0x50: 7C 0E 15 00 -> 9A 01 7A 00` + diff --git a/docs/games/sdvx4/problems.md b/docs/games/sdvx4/problems.md new file mode 100644 index 0000000..ed44dc6 --- /dev/null +++ b/docs/games/sdvx4/problems.md @@ -0,0 +1,39 @@ +# SDVX IV Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 4 + + CPU: Celeron M 440 1.86GHz + + GPU: ATI Radeon HD 2400 + + RAM: 2 GB + + OS: Windows XP Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + +### My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Please note that Sound Voltex IV's offset is *purely visual* and the game does not have an audio-based offset adjustment. Sound Voltex V however, does. + +### Running the Game Windowed and Borderless + +!!! tip "" + Some players utilizing windowed mode use 3rd party software called [Borderless Gaming](https://github.com/Codeusa/Borderless-Gaming/releases) in order to achieve this, follow the program's instructions accordingly. + +### Where Are All the Navigators? + +!!! tip "" + Many navigators are locked behind network requirements and they will not show unless connected to a network that has written support for the events that they're typically locked behind. \ No newline at end of file diff --git a/docs/games/sdvx4/setup.md b/docs/games/sdvx4/setup.md new file mode 100644 index 0000000..4c289f0 --- /dev/null +++ b/docs/games/sdvx4/setup.md @@ -0,0 +1,79 @@ +# SOUND VOLTEX IV: HEAVENLY HAVEN + +!!! danger "Warning" + + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + + This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file anything you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + + +### Configuring Your Tools + +!!! tip "" + + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + + It's important to note before booting the game that Sound Voltex uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our *main* monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into `Display Settings`, then simply set the orientation to `Portrait` as pictured. + + + + In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is `-w` and can be placed right after any other desired parameters chosen in our `gamestart.bat` + + With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your `gamestart.bat` and the game should load and be ready to be enjoyed! Have fun! + +!!! warning "Have any other errors?" + + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. diff --git a/docs/games/sdvx5/hexedits.md b/docs/games/sdvx5/hexedits.md new file mode 100644 index 0000000..452b777 --- /dev/null +++ b/docs/games/sdvx5/hexedits.md @@ -0,0 +1,78 @@ +# Sound Voltex V: Vivid Wave + +!!! warning "Unsure how to apply hex edits?" + + Check out the [Beginner's Guide to Hex Editing](http://www.bemani.guide/extras/hexguide/) for assistance. + +### List of Known Edits For KFC-2020122200 + +!!! tip "" + + These are included inside of SpiceTools now by default! Check the `Patches` tab inside of the overlay and apply whichever you desire by clicking the check boxes and hitting apply. + +### List of Known Edits For KFC-2020011500 + +!!! tip "" + + Boot Into Event Mode (Not compatible with premium free mode) + + - soundvoltex.dll: `0x4C4830: 33 C0 C7 41 08 64 05 00 00 48 89 01 C3 CC CC CC CC -> 31 C0 67 8D 40 01 C7 41 08 64 05 00 00 48 89 01 C3` + + All Songs/Difficulties Unlocked (Do not use when connected to online servers, will break automation paradise favoriting) + + - soundvoltex.dll: `0x4D2D75: 8B 4C 24 34 E8 C2 09 00 00 -> B8 03 00 00 00 90 90 90 90` + - soundvoltex.dll: `0x55F4A2: E8 C9 A2 08 00 -> B8 0D 00 00 00` + + Infinite Premium Time + + - soundvoltex.dll: `0x2F4A15: FF 15 6D 5B 38 00 48 8B 44 24 30 -> 48 C7 C0 01 00 00 00 90 90 90 90` + + All Songs SAFE (You will not be forced out of your session for failing a song) + + - soundvoltex.dll: `0x5E2424: 06 -> 13` + - soundvoltex.dll: `0x5E2433: A4 -> 00` + + No Safe Banner on Jackets + + - soundvoltex.dll: `0x4FFF2B: 07 -> 45` + + Enable ARS (Alternative Rate System) Globally + + - soundvoltex.dll: `0x5E2A3D: 85 C9 74 08 -> B1 01 75 08` + + Freeze Non-Premium Timer + + - soundvoltex.dll: `0x406C8D: 8B 53 68 -> 90 90 90` + + Non-Effective Rate Gauges Start At 0% + + - soundvoltex.dll: `0x52E535: 10 27 -> 01 00` + + Non-Effective Rate Gauges Do Not Recover + + - soundvoltex.dll `0x52F003: 41 01 41 6C -> 90 90 90 90` + + Skip Global Matching Screen + + - soundvoltex.dll: `0x726A30: 4D -> 4E` + + All Appeal Cards Unlocked + + - soundvoltex.dll: `0x4D7E22: 16 -> 00` + + All Crew Unlocked + + - soundvoltex.dll `0x4D890B: 95 -> 91` + + SSE4.2 Fix (Allows the game to run on processors which do not support the SSE4.2 instruction set. If you can successfully boot the game already, DO NOT USE THIS EDIT!) + + - soundvoltex.dll: `0x25280D: F3 45 0F B8 C8 -> 67 45 8D 48 FF` + - soundvoltex.dll: `0x26CCC6: F3 45 0F B8 CA -> 44 8D 4E 02 90` + + Bypass Camera Error + + - soundvoltex.dll: `0x61FBF0: 74 24 -> 90 90` + + Shared Mode WASAPI (Replaces the first audio device initilization attempt) + + - soundvoltex.dll: `0x638EC5: BA 03 00 00 00 -> BA 00 00 00 00` \ No newline at end of file diff --git a/docs/games/sdvx5/problems.md b/docs/games/sdvx5/problems.md new file mode 100644 index 0000000..0c5518b --- /dev/null +++ b/docs/games/sdvx5/problems.md @@ -0,0 +1,58 @@ +# SDVX V Common Problems/Tips + +### Hardware Specs + +!!! tip "" + Bemani PC Type 4 + + CPU: Intel i3-4300 3.5GHz + + GPU: Nvidia GeForce GTX 1050 2GB + + RAM: 8GB DDR3L PC3-12800 (4GB*2) + + OS: Windows 7 Embedded + +### My Game Is Running Slow/Lagging + +!!! tip "" + Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well. + + At the time of writing, some individuals with more than capable PCs have had framerate issues, most notably with Ryzen CPUs. There's really no fix as the issues seem largely random, but it's worth noting regardless to consider trying different computers if you have them available. + +### My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck + +!!! tip "" + The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings. + +### Which Offset Is Which? + +!!! tip "" + If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Sound Voltex V has two types of offset adjustments, visual and audio based, so be sure to fiddle with both to find desirable settings. + +### Running the Game Windowed and Borderless + +!!! tip "" + Some players utilizing windowed mode use 3rd party software called [Borderless Gaming](https://github.com/Codeusa/Borderless-Gaming/releases) in order to achieve this, follow the program's instructions accordingly. + +### Where Are All the Navigators? + +!!! tip "" + Many navigators are locked behind network requirements and they will not show unless connected to a network that has written support for the events that they're typically locked behind. + +### A Note About SSE 4.2 + +!!! tip "" + In the rare case you are running this game on *very* old hardware, SDVX V requires a processor supporting the [SSE 4.2 instruction set](https://en.wikipedia.org/wiki/SSE4#SSE4.2). But, in the event your processor does not have this, there is a [hex edit](hexedits.md) available to bypass this. + +### When I Run This Game All Other Background Audio Is Gone! What's Going On? + +!!! tip "" + 64-bit versions of SDVX are now utilizing a feature in Windows called [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) to obtain less audio latency than the former 32-bit versions of the games which used [DirectSound](https://en.wikipedia.org/wiki/DirectSound). You can use the [Shared Mode WASAPI hex edit](hexedits.md) to deal with some hardware issues, it can also be used to hear background audio outside the game so that the game does not take total control. Many have reported that this edit only works when the audio is set to either 16-bit 44100Hz or 24-bit 44100Hz. + +### I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac! + +!!! tip "" + Several external DACs have issues with [WASAPI exclusive mode](https://docs.microsoft.com/en-us/windows/win32/coreaudio/exclusive-mode-streams) and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC. + + Alongside this, many setups have found some difficulty with audio due to various equipment being used. Consider applying the [Shared Mode WASAPI hex edit](hexedits.md) diff --git a/docs/games/sdvx5/setup.md b/docs/games/sdvx5/setup.md new file mode 100644 index 0000000..8427b9e --- /dev/null +++ b/docs/games/sdvx5/setup.md @@ -0,0 +1,85 @@ +# SOUND VOLTEX V: VIVID WAVE + +!!! danger "Warning" + + Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data. + + If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well. + + Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar. + +### Getting Started + +!!! tip "" + + Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to `Playback Devices` and then right click on your default device and go to `Properties`. From there, hit the `Advanced` tab and set your `Default Format` to `44100 Hz` and check both of the options inside `Exclusive Mode` as pictured. + + + +!!! tip "" + + After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's `contents` folder, and to create a `.bat` file. Pictured below is what your folder should look like, feel free to name your `.bat` file anything you desire, for the sake of convenience we've named ours `gamestart.bat`. + + + +!!! tip "" + Why does this look different than the usual? This installation includes a `modules` folder that Spice automatically detects, keeping things clean and simple. If your version of the game doesn't have this, it probably has the `contents` folder populated with many different dll files such as the main `soundvoltex.dll`. You should still place your tools here if so! + + +### Configuring Your Tools + +!!! tip "" + + Now that you have your files ready, open up your `.bat` file in your desired text editor (we're using [Notepad++](https://notepad-plus-plus.org/)) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire. + +!!! warning "If you're not using SpiceTools:" + + The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs. + +### Configuring for a Local Network + +!!! tip "" + For our local network configuration example, on a single line in the `.bat` file we're going to type `spice64.exe -ea -w` and save the file. + + What do these different parameters do? + + - `-ea` enables an integrated e-amusement server within SpiceTools. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +### Configuring for an Online Network + +!!! tip "" + For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type `spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w` and save the file. + + What do these different parameters do? + + - `-p` takes your PCBID on your network of choice, simply replace `XXXXXXXXXXXXXXXXXXXX` with your PCBID. + - `-url` allows you to specify a custom service URL to connect with, simply replace `http://yoururlhere.com/` with your chosen network's URL. + - `-w` will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove `-w` to run the game fullscreen once you're done setting up! + + Pictured below, the contents of our `gamestart.bat` file in Notepad++. + + + +!!! tip "" + One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file. + +### Final Steps and Setting up the Game + +!!! tip "" + + It's important to note before booting the game that Sound Voltex uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our *main* monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into `Display Settings`, then simply set the orientation to `Portrait` as pictured. + + + + In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is `-w` and can be placed right after any other desired parameters chosen in our `gamestart.bat` + + With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your `gamestart.bat` and the game should load and be ready to be enjoyed! Have fun! + +!!! warning "Have any other errors?" + + Check out the [Common Problems/Tips](problems.md) section and [Error Code](/errorcodes/) section to resolve any issues not seen in this guide to greater depth. diff --git a/docs/img/ascs/L-tek Logo.png b/docs/img/ascs/L-tek Logo.png new file mode 100644 index 0000000..50101e9 Binary files /dev/null and b/docs/img/ascs/L-tek Logo.png differ diff --git a/docs/img/ascs/Stepmaniax Logo.png b/docs/img/ascs/Stepmaniax Logo.png new file mode 100644 index 0000000..12c0a03 Binary files /dev/null and b/docs/img/ascs/Stepmaniax Logo.png differ diff --git a/docs/img/ascs/cotton.jpg b/docs/img/ascs/cotton.jpg new file mode 100644 index 0000000..8f48aa2 Binary files /dev/null and b/docs/img/ascs/cotton.jpg differ diff --git a/docs/img/ascs/dao_comp.png b/docs/img/ascs/dao_comp.png new file mode 100644 index 0000000..61c66b3 Binary files /dev/null and b/docs/img/ascs/dao_comp.png differ diff --git a/docs/img/ascs/daopop.png b/docs/img/ascs/daopop.png new file mode 100644 index 0000000..76d5a25 Binary files /dev/null and b/docs/img/ascs/daopop.png differ diff --git a/docs/img/ascs/fb9.png b/docs/img/ascs/fb9.png new file mode 100644 index 0000000..bb8e76c Binary files /dev/null and b/docs/img/ascs/fb9.png differ diff --git a/docs/img/ascs/fp7.png b/docs/img/ascs/fp7.png new file mode 100644 index 0000000..c21c731 Binary files /dev/null and b/docs/img/ascs/fp7.png differ diff --git a/docs/img/ascs/g2.jpg b/docs/img/ascs/g2.jpg new file mode 100644 index 0000000..5b10019 Binary files /dev/null and b/docs/img/ascs/g2.jpg differ diff --git a/docs/img/ascs/ltek.jpg b/docs/img/ascs/ltek.jpg new file mode 100644 index 0000000..fbcf329 Binary files /dev/null and b/docs/img/ascs/ltek.jpg differ diff --git a/docs/img/ascs/smx.gif b/docs/img/ascs/smx.gif new file mode 100644 index 0000000..803f4fe Binary files /dev/null and b/docs/img/ascs/smx.gif differ diff --git a/docs/img/ascs/svre9.png b/docs/img/ascs/svre9.png new file mode 100644 index 0000000..3fe1316 Binary files /dev/null and b/docs/img/ascs/svre9.png differ diff --git a/docs/img/ascs/svse5.png b/docs/img/ascs/svse5.png new file mode 100644 index 0000000..3469c59 Binary files /dev/null and b/docs/img/ascs/svse5.png differ diff --git a/docs/img/ascs/wan.png b/docs/img/ascs/wan.png new file mode 100644 index 0000000..5c8745a Binary files /dev/null and b/docs/img/ascs/wan.png differ diff --git a/docs/img/ascs/yuan.png b/docs/img/ascs/yuan.png new file mode 100644 index 0000000..5b6b9e9 Binary files /dev/null and b/docs/img/ascs/yuan.png differ diff --git a/docs/img/ascs/yuaniidx.png b/docs/img/ascs/yuaniidx.png new file mode 100644 index 0000000..fb9e956 Binary files /dev/null and b/docs/img/ascs/yuaniidx.png differ diff --git a/docs/img/ascs/yuanpop.png b/docs/img/ascs/yuanpop.png new file mode 100644 index 0000000..d36b34f Binary files /dev/null and b/docs/img/ascs/yuanpop.png differ diff --git a/docs/img/ascs/yuansdvx.png b/docs/img/ascs/yuansdvx.png new file mode 100644 index 0000000..66d5074 Binary files /dev/null and b/docs/img/ascs/yuansdvx.png differ diff --git a/docs/img/bst/1.png b/docs/img/bst/1.png new file mode 100644 index 0000000..d68b442 Binary files /dev/null and b/docs/img/bst/1.png differ diff --git a/docs/img/clan/1.png b/docs/img/clan/1.png new file mode 100644 index 0000000..1a147f4 Binary files /dev/null and b/docs/img/clan/1.png differ diff --git a/docs/img/clan/10.png b/docs/img/clan/10.png new file mode 100644 index 0000000..aa0475a Binary files /dev/null and b/docs/img/clan/10.png differ diff --git a/docs/img/clan/2.png b/docs/img/clan/2.png new file mode 100644 index 0000000..0637e03 Binary files /dev/null and b/docs/img/clan/2.png differ diff --git a/docs/img/clan/3.png b/docs/img/clan/3.png new file mode 100644 index 0000000..4cc0636 Binary files /dev/null and b/docs/img/clan/3.png differ diff --git a/docs/img/clan/5.png b/docs/img/clan/5.png new file mode 100644 index 0000000..3d1679a Binary files /dev/null and b/docs/img/clan/5.png differ diff --git a/docs/img/clan/6.png b/docs/img/clan/6.png new file mode 100644 index 0000000..1cb8da0 Binary files /dev/null and b/docs/img/clan/6.png differ diff --git a/docs/img/clan/7.png b/docs/img/clan/7.png new file mode 100644 index 0000000..0083762 Binary files /dev/null and b/docs/img/clan/7.png differ diff --git a/docs/img/clan/8.png b/docs/img/clan/8.png new file mode 100644 index 0000000..d56a120 Binary files /dev/null and b/docs/img/clan/8.png differ diff --git a/docs/img/clan/9.png b/docs/img/clan/9.png new file mode 100644 index 0000000..8e453ec Binary files /dev/null and b/docs/img/clan/9.png differ diff --git a/docs/img/ddrace/1.png b/docs/img/ddrace/1.png new file mode 100644 index 0000000..ba34f49 Binary files /dev/null and b/docs/img/ddrace/1.png differ diff --git a/docs/img/ddrace/2.png b/docs/img/ddrace/2.png new file mode 100644 index 0000000..7c1f06b Binary files /dev/null and b/docs/img/ddrace/2.png differ diff --git a/docs/img/ddrace/3.png b/docs/img/ddrace/3.png new file mode 100644 index 0000000..b6b3ccd Binary files /dev/null and b/docs/img/ddrace/3.png differ diff --git a/docs/img/ddrace/eng.png b/docs/img/ddrace/eng.png new file mode 100644 index 0000000..af1ba51 Binary files /dev/null and b/docs/img/ddrace/eng.png differ diff --git a/docs/img/discord.png b/docs/img/discord.png new file mode 100644 index 0000000..f048197 Binary files /dev/null and b/docs/img/discord.png differ diff --git a/docs/img/exchain/1.png b/docs/img/exchain/1.png new file mode 100644 index 0000000..22f53f2 Binary files /dev/null and b/docs/img/exchain/1.png differ diff --git a/docs/img/favicon.ico b/docs/img/favicon.ico new file mode 100644 index 0000000..0261e10 Binary files /dev/null and b/docs/img/favicon.ico differ diff --git a/docs/img/gen/441.png b/docs/img/gen/441.png new file mode 100644 index 0000000..d52e639 Binary files /dev/null and b/docs/img/gen/441.png differ diff --git a/docs/img/gen/bind_iidx.png b/docs/img/gen/bind_iidx.png new file mode 100644 index 0000000..bf231d2 Binary files /dev/null and b/docs/img/gen/bind_iidx.png differ diff --git a/docs/img/hexguide/1.png b/docs/img/hexguide/1.png new file mode 100644 index 0000000..b553e03 Binary files /dev/null and b/docs/img/hexguide/1.png differ diff --git a/docs/img/hexguide/2.png b/docs/img/hexguide/2.png new file mode 100644 index 0000000..d75509d Binary files /dev/null and b/docs/img/hexguide/2.png differ diff --git a/docs/img/hexguide/3.png b/docs/img/hexguide/3.png new file mode 100644 index 0000000..aba61c3 Binary files /dev/null and b/docs/img/hexguide/3.png differ diff --git a/docs/img/hexguide/4.png b/docs/img/hexguide/4.png new file mode 100644 index 0000000..1deb893 Binary files /dev/null and b/docs/img/hexguide/4.png differ diff --git a/docs/img/hexguide/5.png b/docs/img/hexguide/5.png new file mode 100644 index 0000000..2a40d2d Binary files /dev/null and b/docs/img/hexguide/5.png differ diff --git a/docs/img/icon.png b/docs/img/icon.png new file mode 100644 index 0000000..d7111cd Binary files /dev/null and b/docs/img/icon.png differ diff --git a/docs/img/iidx25/1.png b/docs/img/iidx25/1.png new file mode 100644 index 0000000..b5b4025 Binary files /dev/null and b/docs/img/iidx25/1.png differ diff --git a/docs/img/iidx25/10.png b/docs/img/iidx25/10.png new file mode 100644 index 0000000..aa0bf18 Binary files /dev/null and b/docs/img/iidx25/10.png differ diff --git a/docs/img/iidx25/11.png b/docs/img/iidx25/11.png new file mode 100644 index 0000000..6d66b4d Binary files /dev/null and b/docs/img/iidx25/11.png differ diff --git a/docs/img/iidx25/12.png b/docs/img/iidx25/12.png new file mode 100644 index 0000000..d3d6472 Binary files /dev/null and b/docs/img/iidx25/12.png differ diff --git a/docs/img/iidx25/13.png b/docs/img/iidx25/13.png new file mode 100644 index 0000000..9ad98c7 Binary files /dev/null and b/docs/img/iidx25/13.png differ diff --git a/docs/img/iidx25/1a.png b/docs/img/iidx25/1a.png new file mode 100644 index 0000000..23c5f5e Binary files /dev/null and b/docs/img/iidx25/1a.png differ diff --git a/docs/img/iidx25/2.png b/docs/img/iidx25/2.png new file mode 100644 index 0000000..659040a Binary files /dev/null and b/docs/img/iidx25/2.png differ diff --git a/docs/img/iidx25/3.png b/docs/img/iidx25/3.png new file mode 100644 index 0000000..8bc3cc3 Binary files /dev/null and b/docs/img/iidx25/3.png differ diff --git a/docs/img/iidx25/4.png b/docs/img/iidx25/4.png new file mode 100644 index 0000000..1bdf006 Binary files /dev/null and b/docs/img/iidx25/4.png differ diff --git a/docs/img/iidx25/5.png b/docs/img/iidx25/5.png new file mode 100644 index 0000000..bda248c Binary files /dev/null and b/docs/img/iidx25/5.png differ diff --git a/docs/img/iidx25/6.png b/docs/img/iidx25/6.png new file mode 100644 index 0000000..6e28008 Binary files /dev/null and b/docs/img/iidx25/6.png differ diff --git a/docs/img/iidx25/7.png b/docs/img/iidx25/7.png new file mode 100644 index 0000000..68b2c7d Binary files /dev/null and b/docs/img/iidx25/7.png differ diff --git a/docs/img/iidx25/8.png b/docs/img/iidx25/8.png new file mode 100644 index 0000000..0f4937a Binary files /dev/null and b/docs/img/iidx25/8.png differ diff --git a/docs/img/iidx25/9.png b/docs/img/iidx25/9.png new file mode 100644 index 0000000..a2c8783 Binary files /dev/null and b/docs/img/iidx25/9.png differ diff --git a/docs/img/iidx26/1.png b/docs/img/iidx26/1.png new file mode 100644 index 0000000..9f4e132 Binary files /dev/null and b/docs/img/iidx26/1.png differ diff --git a/docs/img/iidx27/1.png b/docs/img/iidx27/1.png new file mode 100644 index 0000000..51b7ecf Binary files /dev/null and b/docs/img/iidx27/1.png differ diff --git a/docs/img/iidx27/cfg_ea.png b/docs/img/iidx27/cfg_ea.png new file mode 100644 index 0000000..f734997 Binary files /dev/null and b/docs/img/iidx27/cfg_ea.png differ diff --git a/docs/img/iidx27/cfg_on.png b/docs/img/iidx27/cfg_on.png new file mode 100644 index 0000000..f5a8f4a Binary files /dev/null and b/docs/img/iidx27/cfg_on.png differ diff --git a/docs/img/matixx/1.png b/docs/img/matixx/1.png new file mode 100644 index 0000000..6b310cd Binary files /dev/null and b/docs/img/matixx/1.png differ diff --git a/docs/img/matixx/2d.png b/docs/img/matixx/2d.png new file mode 100644 index 0000000..7180ff4 Binary files /dev/null and b/docs/img/matixx/2d.png differ diff --git a/docs/img/matixx/2g.png b/docs/img/matixx/2g.png new file mode 100644 index 0000000..49217f8 Binary files /dev/null and b/docs/img/matixx/2g.png differ diff --git a/docs/img/matixx/3d.png b/docs/img/matixx/3d.png new file mode 100644 index 0000000..9dc7156 Binary files /dev/null and b/docs/img/matixx/3d.png differ diff --git a/docs/img/matixx/3g.png b/docs/img/matixx/3g.png new file mode 100644 index 0000000..48301e3 Binary files /dev/null and b/docs/img/matixx/3g.png differ diff --git a/docs/img/matixx/4.png b/docs/img/matixx/4.png new file mode 100644 index 0000000..5a121e7 Binary files /dev/null and b/docs/img/matixx/4.png differ diff --git a/docs/img/matixx/5.png b/docs/img/matixx/5.png new file mode 100644 index 0000000..6fdc0bc Binary files /dev/null and b/docs/img/matixx/5.png differ diff --git a/docs/img/matixx/6.png b/docs/img/matixx/6.png new file mode 100644 index 0000000..c57db25 Binary files /dev/null and b/docs/img/matixx/6.png differ diff --git a/docs/img/matixx/7.png b/docs/img/matixx/7.png new file mode 100644 index 0000000..afce60b Binary files /dev/null and b/docs/img/matixx/7.png differ diff --git a/docs/img/matixx/8.png b/docs/img/matixx/8.png new file mode 100644 index 0000000..a4ba528 Binary files /dev/null and b/docs/img/matixx/8.png differ diff --git a/docs/img/matixx/9.png b/docs/img/matixx/9.png new file mode 100644 index 0000000..cf100d4 Binary files /dev/null and b/docs/img/matixx/9.png differ diff --git a/docs/img/museca/1.png b/docs/img/museca/1.png new file mode 100644 index 0000000..7d223c0 Binary files /dev/null and b/docs/img/museca/1.png differ diff --git a/docs/img/nost/1.png b/docs/img/nost/1.png new file mode 100644 index 0000000..f125e35 Binary files /dev/null and b/docs/img/nost/1.png differ diff --git a/docs/img/nost/2.png b/docs/img/nost/2.png new file mode 100644 index 0000000..d63af60 Binary files /dev/null and b/docs/img/nost/2.png differ diff --git a/docs/img/nost/3.png b/docs/img/nost/3.png new file mode 100644 index 0000000..2d2b9f5 Binary files /dev/null and b/docs/img/nost/3.png differ diff --git a/docs/img/nost/4.png b/docs/img/nost/4.png new file mode 100644 index 0000000..d8d946f Binary files /dev/null and b/docs/img/nost/4.png differ diff --git a/docs/img/nost/5.png b/docs/img/nost/5.png new file mode 100644 index 0000000..e09509b Binary files /dev/null and b/docs/img/nost/5.png differ diff --git a/docs/img/nost/6.png b/docs/img/nost/6.png new file mode 100644 index 0000000..3dc151a Binary files /dev/null and b/docs/img/nost/6.png differ diff --git a/docs/img/nost/7.png b/docs/img/nost/7.png new file mode 100644 index 0000000..fea3c8e Binary files /dev/null and b/docs/img/nost/7.png differ diff --git a/docs/img/nost/8.png b/docs/img/nost/8.png new file mode 100644 index 0000000..869c2dd Binary files /dev/null and b/docs/img/nost/8.png differ diff --git a/docs/img/popn/1.png b/docs/img/popn/1.png new file mode 100644 index 0000000..943e618 Binary files /dev/null and b/docs/img/popn/1.png differ diff --git a/docs/img/popn/2.png b/docs/img/popn/2.png new file mode 100644 index 0000000..555b0e9 Binary files /dev/null and b/docs/img/popn/2.png differ diff --git a/docs/img/popn/3.png b/docs/img/popn/3.png new file mode 100644 index 0000000..21c2801 Binary files /dev/null and b/docs/img/popn/3.png differ diff --git a/docs/img/popn/4.png b/docs/img/popn/4.png new file mode 100644 index 0000000..383a2b4 Binary files /dev/null and b/docs/img/popn/4.png differ diff --git a/docs/img/popn/5.png b/docs/img/popn/5.png new file mode 100644 index 0000000..6f8c01a Binary files /dev/null and b/docs/img/popn/5.png differ diff --git a/docs/img/popn/hello1.png b/docs/img/popn/hello1.png new file mode 100644 index 0000000..3567a87 Binary files /dev/null and b/docs/img/popn/hello1.png differ diff --git a/docs/img/popn/hello2.png b/docs/img/popn/hello2.png new file mode 100644 index 0000000..9a2ca81 Binary files /dev/null and b/docs/img/popn/hello2.png differ diff --git a/docs/img/popn/hello3.png b/docs/img/popn/hello3.png new file mode 100644 index 0000000..a17ef52 Binary files /dev/null and b/docs/img/popn/hello3.png differ diff --git a/docs/img/popn/hello4.png b/docs/img/popn/hello4.png new file mode 100644 index 0000000..93ea1d2 Binary files /dev/null and b/docs/img/popn/hello4.png differ diff --git a/docs/img/popn/helloboot1.png b/docs/img/popn/helloboot1.png new file mode 100644 index 0000000..5b70b34 Binary files /dev/null and b/docs/img/popn/helloboot1.png differ diff --git a/docs/img/popn/helloboot2.png b/docs/img/popn/helloboot2.png new file mode 100644 index 0000000..b42c200 Binary files /dev/null and b/docs/img/popn/helloboot2.png differ diff --git a/docs/img/reflesia/reflesia.png b/docs/img/reflesia/reflesia.png new file mode 100644 index 0000000..fb696df Binary files /dev/null and b/docs/img/reflesia/reflesia.png differ diff --git a/docs/img/sdvxiv/1.png b/docs/img/sdvxiv/1.png new file mode 100644 index 0000000..25e4574 Binary files /dev/null and b/docs/img/sdvxiv/1.png differ diff --git a/docs/img/sdvxiv/2.png b/docs/img/sdvxiv/2.png new file mode 100644 index 0000000..7c1f06b Binary files /dev/null and b/docs/img/sdvxiv/2.png differ diff --git a/docs/img/sdvxiv/3.png b/docs/img/sdvxiv/3.png new file mode 100644 index 0000000..b6b3ccd Binary files /dev/null and b/docs/img/sdvxiv/3.png differ diff --git a/docs/img/sdvxiv/4.png b/docs/img/sdvxiv/4.png new file mode 100644 index 0000000..857f804 Binary files /dev/null and b/docs/img/sdvxiv/4.png differ diff --git a/docs/img/sdvxv/1.png b/docs/img/sdvxv/1.png new file mode 100644 index 0000000..67310c9 Binary files /dev/null and b/docs/img/sdvxv/1.png differ diff --git a/docs/img/spice/options.png b/docs/img/spice/options.png new file mode 100644 index 0000000..02a6238 Binary files /dev/null and b/docs/img/spice/options.png differ diff --git a/docs/img/voicemeeter/a1.png b/docs/img/voicemeeter/a1.png new file mode 100644 index 0000000..dbfc627 Binary files /dev/null and b/docs/img/voicemeeter/a1.png differ diff --git a/docs/img/voicemeeter/golive.png b/docs/img/voicemeeter/golive.png new file mode 100644 index 0000000..15fb99e Binary files /dev/null and b/docs/img/voicemeeter/golive.png differ diff --git a/docs/img/voicemeeter/obsvaio3.png b/docs/img/voicemeeter/obsvaio3.png new file mode 100644 index 0000000..70f7aa8 Binary files /dev/null and b/docs/img/voicemeeter/obsvaio3.png differ diff --git a/docs/img/voicemeeter/projector.png b/docs/img/voicemeeter/projector.png new file mode 100644 index 0000000..becfb73 Binary files /dev/null and b/docs/img/voicemeeter/projector.png differ diff --git a/docs/img/voicemeeter/stereomix.png b/docs/img/voicemeeter/stereomix.png new file mode 100644 index 0000000..3bc2bf6 Binary files /dev/null and b/docs/img/voicemeeter/stereomix.png differ diff --git a/docs/img/voicemeeter/vumeter.png b/docs/img/voicemeeter/vumeter.png new file mode 100644 index 0000000..290ed07 Binary files /dev/null and b/docs/img/voicemeeter/vumeter.png differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..e951a90 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,34 @@ +--- +description: A compendium of information and guides written to ease headaches. +--- + +# bemani.guide + +A compendium of information and guides written to ease headaches. + +Last Updated: [April 8th, 2021.](changelog.md) + +Contact: [here](/about#contact) +  + +!!! danger "Important" + This site is by no means all-encompassing, I place emphasis on the need to engage in these guides with clean data from a trusted source. + + Please treat these games with some degree of respect and don't tamper with things if you don't know what you're doing, if you can do that, these guides will probably be of use to you. If not, I imagine you're beyond the help of the pages within, good luck. + +### What do I need to know before starting? + +!!! tip "" + Before beginning with any of the guides on this site, please make sure your game files are from a clean and trusted source, also make sure you are using the latest version of whichever tools you have chosen, the guides on this website at the time of writing are using [SpiceTools.](/extras/spiceguide/) + +### First time working with data? + +!!! tip "" + Check out the `First Time Setup` section of your respective game if you've never worked with BEMANI games before or if it's just been a while. + +### Need help with error codes? + +!!! tip "" + Check out the [Error Codes](/errorcodes/) section for a list of the majority of error codes you may come across. + +  diff --git a/docs/robots.txt b/docs/robots.txt new file mode 100644 index 0000000..4fa2bd0 --- /dev/null +++ b/docs/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/docs/secret.md b/docs/secret.md new file mode 100644 index 0000000..9af2f82 --- /dev/null +++ b/docs/secret.md @@ -0,0 +1,7 @@ +# Secret + +This is a secret page! I cover more savory topics I am not comfortable having public links to here. If you came across this page, out of respect I would appreciate you not plastering it everywhere public. + +To be populated with time. + +  diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..5559277 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,104 @@ +site_name: bemani.guide +copyright: Made by a IIDX player. +site_description: Bemani Troubleshooting Guide +site_author: IIDX Player + +nav: + - Home: index.md + - Games: + - 'IIDX': + - 'IIDX 25': + - 'First Time Setup': 'games/iidx25/setup.md' + - 'Common Problems/Tips': 'games/iidx25/problems.md' + - 'Hex Edits': 'games/iidx25/hexedits.md' + - 'IIDX 26': + - 'First Time Setup': 'games/iidx26/setup.md' + - 'Common Problems/Tips': 'games/iidx26/problems.md' + - 'Hex Edits': 'games/iidx26/hexedits.md' + - 'IIDX 27': + - 'First Time Setup': 'games/iidx27/setup.md' + - 'Common Problems/Tips': 'games/iidx27/problems.md' + - 'Lightning Mode Specifics': 'games/iidx27/lightning.md' + - 'SDVX': + - 'SDVX IV': + - 'First Time Setup': 'games/sdvx4/setup.md' + - 'Common Problems/Tips': 'games/sdvx4/problems.md' + - 'Hex Edits': 'games/sdvx4/hexedits.md' + - 'SDVX V': + - 'First Time Setup': 'games/sdvx5/setup.md' + - 'Common Problems/Tips': 'games/sdvx5/problems.md' + - 'Hex Edits': 'games/sdvx5/hexedits.md' + - 'Pop'n': + - 'Pop'n Usaneko': + - 'First Time Setup': 'games/popnusaneko/setup.md' + - 'Common Problems/Tips': 'games/popnusaneko/problems.md' + - 'Hex Edits': 'games/popnusaneko/hexedits.md' + - 'Pop'n Peace': + - 'First Time Setup': 'games/popnpeace/setup.md' + - 'Common Problems/Tips': 'games/popnpeace/problems.md' + - 'Hex Edits': 'games/popnpeace/hexedits.md' + - 'HELLO Pop'n': + - 'First Time Setup': 'games/hellopopn/setup.md' + - 'Common Problems/Tips': 'games/hellopopn/problems.md' + - 'DDR': + - 'DDR Ace': + - 'First Time Setup': 'games/ddrace/setup.md' + - 'Common Problems/Tips': 'games/ddrace/problems.md' + - 'Hex Edits': 'games/ddrace/hexedits.md' + - 'Jubeat': + - 'Jubeat Clan': + - 'First Time Setup': 'games/jubeatclan/setup.md' + - 'Common Problems/Tips': 'games/jubeatclan/problems.md' + - 'Hex Edits': 'games/jubeatclan/hexedits.md' + - 'GITADORA': + - 'GITADORA Matixx': + - 'First Time Setup': 'games/gitamatixx/setup.md' + - 'Common Problems/Tips': 'games/gitamatixx/problems.md' + - 'Hex Edits': 'games/gitamatixx/hexedits.md' + - 'GITADORA EXCHAIN': + - 'First Time Setup': 'games/exchain/setup.md' + - 'Common Problems/Tips': 'games/exchain/problems.md' + - 'Hex Edits': 'games/exchain/hexedits.md' + - 'Reflec Beat': + - 'Reflec Beat: Reflesia': + - 'First Time Setup': 'games/reflesia/setup.md' + - 'Common Problems/Tips': 'games/reflesia/problems.md' + - 'Hex Edits': 'games/reflesia/hexedits.md' + - 'NOSTALGIA': + - 'Nostalgia FORTE': + - 'First Time Setup': 'games/nostforte/setup.md' + - 'Common Problems/Tips': 'games/nostforte/problems.md' + - 'Hex Edits': 'games/nostforte/hexedits.md' + - 'Nostalgia Op.2': + - 'First Time Setup': 'games/nostop2/setup.md' + - 'Common Problems/Tips': 'games/nostop2/problems.md' + - 'Hex Edits': 'games/nostop2/hexedits.md' + - 'BeatStream アニムトライヴ': + - 'First Time Setup': 'games/beatstreamfinal/setup.md' + - 'Common Problems/Tips': 'games/beatstreamfinal/problems.md' + - 'Hex Edits': 'games/beatstreamfinal/hexedits.md' + - 'MÚSECA 1+1/2': + - 'First Time Setup': 'games/musecafinal/setup.md' + - 'Common Problems/Tips': 'games/musecafinal/problems.md' + - 'Hex Edits': 'games/musecafinal/hexedits.md' + - Error Codes: errorcodes.md + - Extras: + - 'Beginner Guide to Hex Editing': 'extras/hexguide.md' + - 'Notes on the Most Common ASCs and Vendors': 'extras/ascs.md' + - 'Arcade Parts List and Documentation': 'extras/parts.md' + - 'SpiceTools Usage, Parameters, and Functionality': 'extras/spiceguide.md' + - 'SpiceTools Error Messages': 'extras/spiceerrors.md' + - 'List of Touchscreen Monitors and their Polling Rates': 'extras/pollingrates.md' + - 'Exclusive Audio Workarounds': 'extras/streamaudio.md' + - External Resources: externalresources.md + - About: about.md + +theme: + name: cyborg + navigation_depth: 3 + custom_dir: theme/ + +markdown_extensions: + - admonition + +plugins: [] diff --git a/mkdocs_theme.yml b/mkdocs_theme.yml new file mode 100644 index 0000000..36a3e9e --- /dev/null +++ b/mkdocs_theme.yml @@ -0,0 +1,5 @@ +# Config options for 'cyborg' theme + +extends: mkdocs + +hljs_style: darcula diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..902bf5d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +mkdocs +fontawesome-markdown +mkdocs-bootswatch diff --git a/site/404.html b/site/404.html new file mode 100644 index 0000000..1103148 --- /dev/null +++ b/site/404.html @@ -0,0 +1,511 @@ + + + + + + + + + + + bemani.guide + + + + + + + + + + + + + + +
+
+ +
+
+

404

+

Page not found

+
+
+ + +
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/about/index.html b/site/about/index.html new file mode 100644 index 0000000..813a473 --- /dev/null +++ b/site/about/index.html @@ -0,0 +1,577 @@ + + + + + + + + + About - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

+

About this site

+

This site was written by a IIDX player with the help of a few prominent friends. One day I hope to match their intellect, wish me luck.

+

The philosophy behind writing these guides and the information contained within is to remove repetitive troubleshooting. By this point, every server has answered the same questions over and over again, hundreds of times. Maddening to see over the years, don't you think?

+

While a search function may be present across several communities, it is often unused by users, something I have never found an answer as to why, but my hope is that I can confidently link specific sections of this site to resolve 99% of issues people bring up until it becomes the norm. Each beginner setup guide is built to minimalize user interaction with the data itself, and to keep things simple via hand-holding. For example, with modern improvements to tools, games can now be ran successfully without the user ever touching a single file from the game's data. Days have long past for users incorrectly modifying their ea3-config.

+

Still, as long as this website helps even 1 user enjoy these games, then its goal has been met. Whether it be within the first hour of its posting, or years later, I will be satisfied if I meet that goal.

+

 

+

Credits

+
+
    +
  • +

    Friends that wished to remain anonymous: motivation, technical assistance, inspiration.

    +
  • +
  • +

    Passionate rhythm game players worldwide that allow these games to exist, thank you for making it a lot of fun to be involved in the scene and around you all.

    +
  • +
  • +

    Contributors for taking the time to add improvements to the site.

    +
  • +
+
+

Contact

+
+

Please do not contact me to troubleshoot your problems, I will not respond.

+

In the time thinking about this site I have wondered how best to open contact for the betterment of the site and overall community. I wish to remain largely private because I do not want credit for this work, but if you wish to contact me regarding wanting to contribute, or even site inaccuracies, improvements, and solutions that worked for you but aren't listed...

+

Feel free to email me at: bemaniguide@protonmail.com

+

I now run a private discord to accept user contributions from, feel free to email to gain access if you are looking to contribute to the site (also include what you'd like to contribute in the email, of course)

+

I can't promise I'll respond, but if you see some changes relating to what you emailed, I certainly read what you sent.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/changelog/index.html b/site/changelog/index.html new file mode 100644 index 0000000..c94a81d --- /dev/null +++ b/site/changelog/index.html @@ -0,0 +1,721 @@ + + + + + + + + + Changelog - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Changelog

+

What's New:

+
+

April 8th, 2021

+
    +
  • +

    Added Hello Pop'n Music Guide

    +
  • +
  • +

    Added Pop'n Peace guide

    +
  • +
  • +

    Various fixes and error code improvements for IIDX

    +
  • +
  • +

    Added new guide to extras section: Exclusive Audio Workarounds

    +
  • +
+
+
+

March 24th, 2021

+
    +
  • +

    Added Nostalgia Op. 2 guide

    +
  • +
  • +

    Updated Forte guide

    +
  • +
  • +

    Added more external resources

    +
  • +
+
+
+

March 21st, 2021

+
    +
  • +

    Added misc small improvements

    +
  • +
  • +

    Added jubeat rubber part information (Immense delay on this, apologies)

    +
  • +
  • +

    Added information about VW final hex edits

    +
  • +
+
+
+

December 21st, 2020

+
    +
  • +

    HTTPS fixed

    +
  • +
  • +

    robots.txt changes

    +
  • +
  • +

    Cleaned up some Heroic Verse related content

    +
  • +
  • +

    Actually updated content I said I would update 2 months ago (sorry!)

    +
  • +
+
+
+

October 27th, 2020

+
    +
  • Added IIDX 27: Heroic Verse setup/faq/etc
  • +
+
+
+

July 27th, 2020

+
    +
  • +

    Updated Arcade Parts List

    +
  • +
  • +

    Added an External Resources Section (sorry for delay to those that submitted resources, busy time)

    +
  • +
  • +

    Updates to all main guides/SpiceTools coming soon.

    +
  • +
+
+
+

April 23rd, 2020

+
    +
  • Added some minor info about WASAPI shared mode for SDVX V
  • +
+
+
+

April 11th, 2020

+
    +
  • +

    Adjusted some troubleshooting

    +
  • +
  • +

    Added user contributed polling rate

    +
  • +
  • +

    Misc bits and pieces

    +
  • +
+
+
+

April 1st, 2020

+
    +
  • Added SDVX V guides
  • +
+
+
+

March 14th, 2020

+
    +
  • +

    Site back online (hello everyone)

    +
  • +
  • +

    Pop'n Usaneko setup/faq/hex edits

    +
  • +
  • +

    Spice pages updated

    +
  • +
+
+
+

March 11th, 2020

+
    +
  • +

    Formatting fixes for hex edits

    +
  • +
  • +

    Minor tinkering with ASC/Parts sections

    +
  • +
  • +

    DDR Ace cleanup

    +
  • +
  • +

    Museca cleanup + faq/hex edits

    +
  • +
  • +

    Beatstream cleanup

    +
  • +
  • +

    Misc changes

    +
  • +
+
+
+

March 10th, 2020

+
    +
  • +

    Add DDR ACE setup/faq/hex edits

    +
  • +
  • +

    Add IIDX 26: ROOTAGE setup/faq/hex edits

    +
  • +
  • +

    Additional cleanup

    +
  • +
+
+
+

March 7th, 2020

+
    +
  • Add GITADORA EXCHAIN setup/faq/hex edits
  • +
+
+
+

March 6th, 2020

+
    +
  • +

    Add Parts Documentation

    +
  • +
  • +

    Add to part considerations to ASC section

    +
  • +
  • +

    CSS changes, formatting, cleanup

    +
  • +
+
+
+

March 5th, 2020

+
    +
  • Revive project (sorry it was dead for so long!)
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/css/base.css b/site/css/base.css new file mode 100644 index 0000000..7778e88 --- /dev/null +++ b/site/css/base.css @@ -0,0 +1,274 @@ +html { + /* The nav header is 3.5rem high, plus 20px for the margin-top of the + main container. */ + scroll-padding-top: calc(3.5rem + 20px); +} + +body > .container { + margin-top: 20px; +} + +.navbar.fixed-top { + position: -webkit-sticky; + position: sticky; +} + +.source-links { + float: right; +} + +.col-md-9 img { + max-width: 100%; +} + +pre, code { + background: #202020; + color: #959595; + border: 1px solid rgba(0,0,0,0.125); + border-radius: 0.25rem; +} + +pre { + padding: 0.5em; +} + +code { + padding: 1px 3px; +} + +pre code { + border: none; + /* Override styles from hljs theme */ + background: transparent !important; + padding: 0 !important; +} + +a code { + color: #2a9fd6; +} + +a:hover code { + color: #1d7097; +} + +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); +} + +footer { + margin-top: 10px; + margin-bottom: 10px; + text-align: center; + font-weight: 200; +} + +.modal-dialog { + margin-top: 60px; +} + +/* Style the admonitions. */ + +.admonition { + margin-bottom: 1em; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; + background-color: #131313; + line-height: 1.55; +} + +.admonition > .admonition-title { + margin: 0; + padding: 0.25rem 1rem; + background: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; + font-size: 1rem; +} + +.admonition > * { + margin-left: 1rem; + margin-right: 1rem; +} + +.admonition > *:not(.admonition-title):first-of-type, +.admonition > .admonition-title + * { + margin-top: 1rem; +} + +.admonition > *:last-child { + margin-bottom: 1rem; +} + +/* Style each kind of admonition. */ + +.admonition.note, .admonition.note > .admonition-title { + border-color: #6e2caf; +} + +.admonition.note > .admonition-title { + color: #fff; + background-color: #9933cc; +} + +.admonition.warning, .admonition.warning > .admonition-title { + border-color: #9d5b02; +} + +.admonition.warning > .admonition-title { + color: #fff; + background-color: #9d5b02; +} + +.admonition.danger, .admonition.danger > .admonition-title { + border-color: #cc00008a; +} + +.admonition.danger > .admonition-title { + color: #fff; + background-color: #cc00008a; +} + +/* + * Side navigation + * + * Scrollspy and affixed enhanced navigation to highlight sections and secondary + * sections of docs content. + */ + +.bs-sidebar.affix { + position: -webkit-sticky; + position: sticky; + /* The nav header is 3.5rem high, plus 20px for the margin-top of the + main container. */ + top: calc(3.5rem + 20px); +} + +.bs-sidebar.card { + padding: 0; +} + +/* Toggle (vertically flip) sidebar collapse icon */ +.bs-sidebar .navbar-toggler span { + -moz-transform: scale(1, -1); + -webkit-transform: scale(1, -1); + -o-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +.bs-sidebar .navbar-toggler.collapsed span { + -moz-transform: scale(1, 1); + -webkit-transform: scale(1, 1); + -o-transform: scale(1, 1); + -ms-transform: scale(1, 1); + transform: scale(1, 1); +} + +/* First level of nav */ +.bs-sidebar > .navbar-collapse > .nav { + padding-top: 10px; + padding-bottom: 10px; + border-radius: 5px; + width: 100%; +} + +/* All levels of nav */ +.bs-sidebar .nav > li > a { + display: block; + padding: 5px 20px; + z-index: 1; +} +.bs-sidebar .nav > li > a:hover, +.bs-sidebar .nav > li > a:focus { + text-decoration: none; + border-right: 1px solid; +} +.bs-sidebar .nav > li > a.active, +.bs-sidebar .nav > li > a.active:hover, +.bs-sidebar .nav > li > a.active:focus { + font-weight: bold; + background-color: transparent; + border-right: 1px solid; +} + +.bs-sidebar .nav .nav .nav { + margin-left: 1em; +} + +.bs-sidebar .nav > li > a { + font-weight: bold; +} + +.bs-sidebar .nav .nav > li > a { + font-weight: normal; +} + +.headerlink { + display: none; + padding-left: .5em; +} + +h1:hover .headerlink, h2:hover .headerlink, h3:hover .headerlink, h4:hover .headerlink, h5:hover .headerlink, h6:hover .headerlink{ + display:inline-block; +} + +@media (max-width: 991.98px) { + .navbar-collapse.show { + overflow-y: auto; + max-height: calc(100vh - 3.5rem); + } +} + +.dropdown-item.open { + color: #fff; + background-color: #2A9FD6; +} + +.dropdown-submenu > .dropdown-menu { + margin: 0 0 0 1.5rem; + padding: 0; + border-width: 0; +} + +.dropdown-submenu > a::after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #999999; + margin-top: 5px; + margin-right: -10px; +} + +.dropdown-submenu:hover > a::after { + border-left-color: #fff; +} + +@media (min-width: 992px) { + .dropdown-menu { + overflow-y: auto; + max-height: calc(100vh - 3.5rem); + } + + .dropdown-submenu { + position: relative; + } + + .dropdown-submenu > .dropdown-menu { + position: fixed !important; + margin-top: -9px; + margin-left: -2px; + border-width: 1px; + padding: 0.5rem 0; + } +} diff --git a/site/css/bootstrap.min.css b/site/css/bootstrap.min.css new file mode 100644 index 0000000..6ef41dc --- /dev/null +++ b/site/css/bootstrap.min.css @@ -0,0 +1,11410 @@ +/*! + * Bootswatch v4.4.1 + * Homepage: https://bootswatch.com + * Copyright 2012-2019 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*/ + + +/*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +@import url("https://fonts.googleapis.com/css?family=Roboto:400,700"); +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #d9534f; + --orange: #fd7e14; + --yellow: #f0ad4e; + --green: #4BBF73; + --teal: #20c997; + --cyan: #1F9BCF; + --white: #fff; + --gray: #919aa1; + --gray-dark: #343a40; + --primary: #1a1a1a; + --secondary: #fff; + --success: #4BBF73; + --info: #1F9BCF; + --warning: #f0ad4e; + --danger: #d9534f; + --light: #fff; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace +} + +*, +*::before, +*::after { + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +article, +aside, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block +} + +body { + margin: 0; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #C8C8C8C2; + text-align: left; + background-color: #060606 +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important +} + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; + height: 0; + overflow: visible +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.5rem +} + +p { + margin-top: 0; + margin-bottom: 1rem +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + text-decoration-skip-ink: none +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0 +} + +dt { + font-weight: 700 +} + +dd { + margin-bottom: .5rem; + margin-left: 0 +} + +blockquote { + margin: 0 0 1rem +} + +b, +strong { + font-weight: bolder +} + +small { + font-size: 80% +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +a { + color: #2A9FD6; + text-decoration: none; + background-color: transparent +} + +a:hover { + color: #1d7097; + text-decoration: underline +} + +a:not([href]) { + color: inherit; + text-decoration: none +} + +a:not([href]):hover { + color: inherit; + text-decoration: none +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto +} + +figure { + margin: 0 0 1rem +} + +img { + vertical-align: middle; + border-style: none +} + +svg { + overflow: hidden; + vertical-align: middle +} + +table { + border-collapse: collapse +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #555; + text-align: left; + caption-side: bottom +} + +th { + text-align: inherit +} + +label { + display: inline-block; + margin-bottom: 0.5rem +} + +button { + border-radius: 0 +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit +} + +button, +input { + overflow: visible +} + +button, +select { + text-transform: none +} + +select { + word-wrap: normal +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none +} + +input[type="radio"], +input[type="checkbox"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 0 +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox +} + +textarea { + overflow: auto; + resize: vertical +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal +} + +progress { + vertical-align: baseline +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button +} + +output { + display: inline-block +} + +summary { + display: list-item; + cursor: pointer +} + +template { + display: none +} + +[hidden] { + display: none !important +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: #C8C8C8 +} + +h1, +.h1 { + font-size: 2.2rem +} + +h2, +.h2 { + font-size: 2.0rem +} + +h3, +.h3 { + font-size: 1.7rem +} + +h4, +.h4 { + font-size: 2rem +} + +h5, +.h5 { + font-size: 1.5rem +} + +h6, +.h6 { + font-size: 0.875rem +} + +.lead { + font-size: 1.09375rem; + font-weight: 300 +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2 +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2 +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2 +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2 +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1) +} + +small, +.small { + font-size: 80%; + font-weight: 400 +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3 +} + +.list-unstyled { + padding-left: 0; + list-style: none +} + +.list-inline { + padding-left: 0; + list-style: none +} + +.list-inline-item { + display: inline-block +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem +} + +.initialism { + font-size: 90%; + text-transform: uppercase +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.09375rem +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #555 +} + +.blockquote-footer::before { + content: "\2014\00A0" +} + +.img-fluid { + max-width: 100%; + height: auto +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #060606; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto +} + +.figure { + display: inline-block +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1 +} + +.figure-caption { + font-size: 90%; + color: #555 +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word +} + +a>code { + color: inherit +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700 +} + +pre { + display: block; + font-size: 87.5%; + color: inherit +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +@media (min-width: 576px) { + .container { + max-width: 540px + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px + } +} + +.container-fluid, +.container-sm, +.container-md, +.container-lg, +.container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto +} + +@media (min-width: 576px) { + .container, + .container-sm { + max-width: 540px + } +} + +@media (min-width: 768px) { + .container, + .container-sm, + .container-md { + max-width: 720px + } +} + +@media (min-width: 992px) { + .container, + .container-sm, + .container-md, + .container-lg { + max-width: 960px + } +} + +@media (min-width: 1200px) { + .container, + .container-sm, + .container-md, + .container-lg, + .container-xl { + max-width: 1140px + } +} + +.row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px +} + +.no-gutters { + margin-right: 0; + margin-left: 0 +} + +.no-gutters>.col, +.no-gutters>[class*="col-"] { + padding-right: 0; + padding-left: 0 +} + +.col-1, +.col-2, +.col-3, +.col-4, +.col-5, +.col-6, +.col-7, +.col-8, +.col-9, +.col-10, +.col-11, +.col-12, +.col, +.col-auto, +.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, +.col-sm, +.col-sm-auto, +.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, +.col-md, +.col-md-auto, +.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, +.col-lg, +.col-lg-auto, +.col-xl-1, +.col-xl-2, +.col-xl-3, +.col-xl-4, +.col-xl-5, +.col-xl-6, +.col-xl-7, +.col-xl-8, +.col-xl-9, +.col-xl-10, +.col-xl-11, +.col-xl-12, +.col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px +} + +.col { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% +} + +.row-cols-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% +} + +.row-cols-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% +} + +.row-cols-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% +} + +.row-cols-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% +} + +.row-cols-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% +} + +.row-cols-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% +} + +.col-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% +} + +.col-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% +} + +.col-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% +} + +.col-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% +} + +.col-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% +} + +.col-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% +} + +.col-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% +} + +.col-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% +} + +.col-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% +} + +.col-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% +} + +.col-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% +} + +.col-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% +} + +.col-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% +} + +.order-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 +} + +.order-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 +} + +.order-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 +} + +.order-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 +} + +.order-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 +} + +.order-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 +} + +.order-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 +} + +.order-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 +} + +.order-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 +} + +.order-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 +} + +.order-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 +} + +.order-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 +} + +.order-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 +} + +.order-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 +} + +.order-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 +} + +.offset-1 { + margin-left: 8.3333333333% +} + +.offset-2 { + margin-left: 16.6666666667% +} + +.offset-3 { + margin-left: 25% +} + +.offset-4 { + margin-left: 33.3333333333% +} + +.offset-5 { + margin-left: 41.6666666667% +} + +.offset-6 { + margin-left: 50% +} + +.offset-7 { + margin-left: 58.3333333333% +} + +.offset-8 { + margin-left: 66.6666666667% +} + +.offset-9 { + margin-left: 75% +} + +.offset-10 { + margin-left: 83.3333333333% +} + +.offset-11 { + margin-left: 91.6666666667% +} + +@media (min-width: 576px) { + .col-sm { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-sm-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-sm-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-sm-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-sm-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-sm-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-sm-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-sm-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-sm-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-sm-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-sm-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-sm-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-sm-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-sm-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-sm-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-sm-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-sm-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-sm-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-sm-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-sm-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-sm-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-sm-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-sm-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-sm-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-sm-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-sm-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-sm-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-sm-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-sm-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-sm-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-sm-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-sm-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-sm-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-sm-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-sm-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-sm-0 { + margin-left: 0 + } + .offset-sm-1 { + margin-left: 8.3333333333% + } + .offset-sm-2 { + margin-left: 16.6666666667% + } + .offset-sm-3 { + margin-left: 25% + } + .offset-sm-4 { + margin-left: 33.3333333333% + } + .offset-sm-5 { + margin-left: 41.6666666667% + } + .offset-sm-6 { + margin-left: 50% + } + .offset-sm-7 { + margin-left: 58.3333333333% + } + .offset-sm-8 { + margin-left: 66.6666666667% + } + .offset-sm-9 { + margin-left: 75% + } + .offset-sm-10 { + margin-left: 83.3333333333% + } + .offset-sm-11 { + margin-left: 91.6666666667% + } +} + +@media (min-width: 768px) { + .col-md { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-md-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-md-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-md-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-md-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-md-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-md-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-md-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-md-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-md-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-md-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-md-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-md-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-md-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-md-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-md-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-md-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-md-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-md-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-md-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-md-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-md-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-md-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-md-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-md-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-md-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-md-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-md-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-md-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-md-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-md-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-md-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-md-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-md-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-md-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-md-0 { + margin-left: 0 + } + .offset-md-1 { + margin-left: 8.3333333333% + } + .offset-md-2 { + margin-left: 16.6666666667% + } + .offset-md-3 { + margin-left: 25% + } + .offset-md-4 { + margin-left: 33.3333333333% + } + .offset-md-5 { + margin-left: 41.6666666667% + } + .offset-md-6 { + margin-left: 50% + } + .offset-md-7 { + margin-left: 58.3333333333% + } + .offset-md-8 { + margin-left: 66.6666666667% + } + .offset-md-9 { + margin-left: 75% + } + .offset-md-10 { + margin-left: 83.3333333333% + } + .offset-md-11 { + margin-left: 91.6666666667% + } +} + +@media (min-width: 992px) { + .col-lg { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-lg-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-lg-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-lg-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-lg-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-lg-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-lg-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-lg-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-lg-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-lg-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-lg-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-lg-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-lg-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-lg-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-lg-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-lg-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-lg-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-lg-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-lg-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-lg-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-lg-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-lg-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-lg-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-lg-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-lg-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-lg-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-lg-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-lg-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-lg-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-lg-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-lg-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-lg-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-lg-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-lg-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-lg-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-lg-0 { + margin-left: 0 + } + .offset-lg-1 { + margin-left: 8.3333333333% + } + .offset-lg-2 { + margin-left: 16.6666666667% + } + .offset-lg-3 { + margin-left: 25% + } + .offset-lg-4 { + margin-left: 33.3333333333% + } + .offset-lg-5 { + margin-left: 41.6666666667% + } + .offset-lg-6 { + margin-left: 50% + } + .offset-lg-7 { + margin-left: 58.3333333333% + } + .offset-lg-8 { + margin-left: 66.6666666667% + } + .offset-lg-9 { + margin-left: 75% + } + .offset-lg-10 { + margin-left: 83.3333333333% + } + .offset-lg-11 { + margin-left: 91.6666666667% + } +} + +@media (min-width: 1200px) { + .col-xl { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + max-width: 100% + } + .row-cols-xl-1>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .row-cols-xl-2>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .row-cols-xl-3>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .row-cols-xl-4>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .row-cols-xl-5>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20% + } + .row-cols-xl-6>* { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-xl-auto { + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: auto; + max-width: 100% + } + .col-xl-1 { + -webkit-box-flex: 0; + -ms-flex: 0 0 8.3333333333%; + flex: 0 0 8.3333333333%; + max-width: 8.3333333333% + } + .col-xl-2 { + -webkit-box-flex: 0; + -ms-flex: 0 0 16.6666666667%; + flex: 0 0 16.6666666667%; + max-width: 16.6666666667% + } + .col-xl-3 { + -webkit-box-flex: 0; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25% + } + .col-xl-4 { + -webkit-box-flex: 0; + -ms-flex: 0 0 33.3333333333%; + flex: 0 0 33.3333333333%; + max-width: 33.3333333333% + } + .col-xl-5 { + -webkit-box-flex: 0; + -ms-flex: 0 0 41.6666666667%; + flex: 0 0 41.6666666667%; + max-width: 41.6666666667% + } + .col-xl-6 { + -webkit-box-flex: 0; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50% + } + .col-xl-7 { + -webkit-box-flex: 0; + -ms-flex: 0 0 58.3333333333%; + flex: 0 0 58.3333333333%; + max-width: 58.3333333333% + } + .col-xl-8 { + -webkit-box-flex: 0; + -ms-flex: 0 0 66.6666666667%; + flex: 0 0 66.6666666667%; + max-width: 66.6666666667% + } + .col-xl-9 { + -webkit-box-flex: 0; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75% + } + .col-xl-10 { + -webkit-box-flex: 0; + -ms-flex: 0 0 83.3333333333%; + flex: 0 0 83.3333333333%; + max-width: 83.3333333333% + } + .col-xl-11 { + -webkit-box-flex: 0; + -ms-flex: 0 0 91.6666666667%; + flex: 0 0 91.6666666667%; + max-width: 91.6666666667% + } + .col-xl-12 { + -webkit-box-flex: 0; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100% + } + .order-xl-first { + -webkit-box-ordinal-group: 0; + -ms-flex-order: -1; + order: -1 + } + .order-xl-last { + -webkit-box-ordinal-group: 14; + -ms-flex-order: 13; + order: 13 + } + .order-xl-0 { + -webkit-box-ordinal-group: 1; + -ms-flex-order: 0; + order: 0 + } + .order-xl-1 { + -webkit-box-ordinal-group: 2; + -ms-flex-order: 1; + order: 1 + } + .order-xl-2 { + -webkit-box-ordinal-group: 3; + -ms-flex-order: 2; + order: 2 + } + .order-xl-3 { + -webkit-box-ordinal-group: 4; + -ms-flex-order: 3; + order: 3 + } + .order-xl-4 { + -webkit-box-ordinal-group: 5; + -ms-flex-order: 4; + order: 4 + } + .order-xl-5 { + -webkit-box-ordinal-group: 6; + -ms-flex-order: 5; + order: 5 + } + .order-xl-6 { + -webkit-box-ordinal-group: 7; + -ms-flex-order: 6; + order: 6 + } + .order-xl-7 { + -webkit-box-ordinal-group: 8; + -ms-flex-order: 7; + order: 7 + } + .order-xl-8 { + -webkit-box-ordinal-group: 9; + -ms-flex-order: 8; + order: 8 + } + .order-xl-9 { + -webkit-box-ordinal-group: 10; + -ms-flex-order: 9; + order: 9 + } + .order-xl-10 { + -webkit-box-ordinal-group: 11; + -ms-flex-order: 10; + order: 10 + } + .order-xl-11 { + -webkit-box-ordinal-group: 12; + -ms-flex-order: 11; + order: 11 + } + .order-xl-12 { + -webkit-box-ordinal-group: 13; + -ms-flex-order: 12; + order: 12 + } + .offset-xl-0 { + margin-left: 0 + } + .offset-xl-1 { + margin-left: 8.3333333333% + } + .offset-xl-2 { + margin-left: 16.6666666667% + } + .offset-xl-3 { + margin-left: 25% + } + .offset-xl-4 { + margin-left: 33.3333333333% + } + .offset-xl-5 { + margin-left: 41.6666666667% + } + .offset-xl-6 { + margin-left: 50% + } + .offset-xl-7 { + margin-left: 58.3333333333% + } + .offset-xl-8 { + margin-left: 66.6666666667% + } + .offset-xl-9 { + margin-left: 75% + } + .offset-xl-10 { + margin-left: 83.3333333333% + } + .offset-xl-11 { + margin-left: 91.6666666667% + } +} + +.table { + width: 100%; + margin-bottom: 1rem; + color: #fff +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #282828 +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #282828 +} + +.table tbody+tbody { + border-top: 2px solid #282828 +} + +.table-sm th, +.table-sm td { + padding: 0.3rem +} + +.table-bordered { + border: 1px solid #282828 +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #282828 +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody+tbody { + border: 0 +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05) +} + +.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075) +} + +.table-primary, +.table-primary>th, +.table-primary>td { + background-color: #c3e4f4 +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody+tbody { + border-color: #90cdea +} + +.table-hover .table-primary:hover { + background-color: #addaf0 +} + +.table-hover .table-primary:hover>td, +.table-hover .table-primary:hover>th { + background-color: #addaf0 +} + +.table-secondary, +.table-secondary>th, +.table-secondary>td { + background-color: #cfcfcf +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody+tbody { + border-color: #a7a7a7 +} + +.table-hover .table-secondary:hover { + background-color: #c2c2c2 +} + +.table-hover .table-secondary:hover>td, +.table-hover .table-secondary:hover>th { + background-color: #c2c2c2 +} + +.table-success, +.table-success>th, +.table-success>td { + background-color: #d9eab8 +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody+tbody { + border-color: #b8d77a +} + +.table-hover .table-success:hover { + background-color: #cee4a4 +} + +.table-hover .table-success:hover>td, +.table-hover .table-success:hover>th { + background-color: #cee4a4 +} + +.table-info, +.table-info>th, +.table-info>td { + background-color: #e2c6f1 +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody+tbody { + border-color: #ca95e4 +} + +.table-hover .table-info:hover { + background-color: #d8b2ec +} + +.table-hover .table-info:hover>td, +.table-hover .table-info:hover>th { + background-color: #d8b2ec +} + +.table-warning, +.table-warning>th, +.table-warning>td { + background-color: #ffdeb8 +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody+tbody { + border-color: #ffc17a +} + +.table-hover .table-warning:hover { + background-color: #ffd29f +} + +.table-hover .table-warning:hover>td, +.table-hover .table-warning:hover>th { + background-color: #ffd29f +} + +.table-danger, +.table-danger>th, +.table-danger>td { + background-color: #f1b8b8 +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody+tbody { + border-color: #e47a7a +} + +.table-hover .table-danger:hover { + background-color: #eda3a3 +} + +.table-hover .table-danger:hover>td, +.table-hover .table-danger:hover>th { + background-color: #eda3a3 +} + +.table-light, +.table-light>th, +.table-light>td { + background-color: #c1c1c1 +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody+tbody { + border-color: #8c8c8c +} + +.table-hover .table-light:hover { + background-color: #b4b4b4 +} + +.table-hover .table-light:hover>td, +.table-hover .table-light:hover>th { + background-color: #b4b4b4 +} + +.table-dark, +.table-dark>th, +.table-dark>td { + background-color: #e8e9e8 +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody+tbody { + border-color: #d4d5d5 +} + +.table-hover .table-dark:hover { + background-color: #dbdddb +} + +.table-hover .table-dark:hover>td, +.table-hover .table-dark:hover>th { + background-color: #dbdddb +} + +.table-active, +.table-active>th, +.table-active>td { + background-color: rgba(255, 255, 255, 0.075) +} + +.table-hover .table-active:hover { + background-color: rgba(242, 242, 242, 0.075) +} + +.table-hover .table-active:hover>td, +.table-hover .table-active:hover>th { + background-color: rgba(242, 242, 242, 0.075) +} + +.table .thead-dark th { + color: #fff; + background-color: #888; + border-color: #757575 +} + +.table .thead-light th { + color: #282828; + background-color: #e9ecef; + border-color: #282828 +} + +.table-dark { + color: #fff; + background-color: #888 +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #757575 +} + +.table-dark.table-bordered { + border: 0 +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05) +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075) +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-sm>.table-bordered { + border: 0 + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-md>.table-bordered { + border: 0 + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-lg>.table-bordered { + border: 0 + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch + } + .table-responsive-xl>.table-bordered { + border: 0 + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch +} + +.table-responsive>.table-bordered { + border: 0 +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1rem; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #282828; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #fff; + border-radius: 0.25rem; + -webkit-transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + -webkit-transition: none; + transition: none + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0 +} + +.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #282828 +} + +.form-control:focus { + color: #282828; + background-color: #fff; + border-color: #95cfeb; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.form-control::-webkit-input-placeholder { + color: #555; + opacity: 1 +} + +.form-control::-ms-input-placeholder { + color: #555; + opacity: 1 +} + +.form-control::placeholder { + color: #555; + opacity: 1 +} + +.form-control:disabled, +.form-control[readonly] { + background-color: #ADAFAE; + opacity: 1 +} + +select.form-control:focus::-ms-value { + color: #282828; + background-color: #fff +} + +.form-control-file, +.form-control-range { + display: block; + width: 100% +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5 +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.09375rem; + line-height: 1.5 +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.765625rem; + line-height: 1.5 +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 0.875rem; + line-height: 1.5; + color: #ADAFAE; + background-color: transparent; + border: solid transparent; + border-width: 1px 0 +} + +.form-control-plaintext.form-control-sm, +.form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0 +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5; + border-radius: 0.2rem +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.09375rem; + line-height: 1.5; + border-radius: 0.3rem +} + +select.form-control[size], +select.form-control[multiple] { + height: auto +} + +textarea.form-control { + height: auto +} + +.form-group { + margin-bottom: 1rem +} + +.form-text { + display: block; + margin-top: 0.25rem +} + +.form-row { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px +} + +.form-row>.col, +.form-row>[class*="col-"] { + padding-right: 5px; + padding-left: 5px +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #555 +} + +.form-check-label { + margin-bottom: 0 +} + +.form-check-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding-left: 0; + margin-right: 0.75rem +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0 +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #77B300 +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.765625rem; + line-height: 1.5; + color: #fff; + background-color: #77b300; + border-radius: 0.25rem +} + +.was-validated:valid ~ .valid-feedback, +.was-validated:valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block +} + +.was-validated .form-control:valid, +.form-control.is-valid { + border-color: #77B300; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2377B300' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .form-control:valid:focus, +.form-control.is-valid:focus { + border-color: #77B300; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.was-validated textarea.form-control:valid, +textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem) +} + +.was-validated .custom-select:valid, +.custom-select.is-valid { + border-color: #77B300; + padding-right: calc(0.75em + 2.5625rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2377B300' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .custom-select:valid:focus, +.custom-select.is-valid:focus { + border-color: #77B300; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.was-validated .form-check-input:valid ~ .form-check-label, +.form-check-input.is-valid ~ .form-check-label { + color: #77B300 +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, +.form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, +.custom-control-input.is-valid ~ .custom-control-label { + color: #77B300 +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, +.custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #77B300 +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, +.custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #99e600; + background-color: #99e600 +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, +.custom-control-input.is-valid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #77B300 +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, +.custom-file-input.is-valid ~ .custom-file-label { + border-color: #77B300 +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, +.custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #77B300; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.25) +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #CC0000 +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.765625rem; + line-height: 1.5; + color: #fff; + background-color: #cc0000; + border-radius: 0.25rem +} + +.was-validated:invalid ~ .invalid-feedback, +.was-validated:invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block +} + +.was-validated .form-control:invalid, +.form-control.is-invalid { + border-color: #CC0000; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23CC0000' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23CC0000' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .form-control:invalid:focus, +.form-control.is-invalid:focus { + border-color: #CC0000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.was-validated textarea.form-control:invalid, +textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem) +} + +.was-validated .custom-select:invalid, +.custom-select.is-invalid { + border-color: #CC0000; + padding-right: calc(0.75em + 2.5625rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23CC0000' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23CC0000' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 2rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) +} + +.was-validated .custom-select:invalid:focus, +.custom-select.is-invalid:focus { + border-color: #CC0000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.was-validated .form-check-input:invalid ~ .form-check-label, +.form-check-input.is-invalid ~ .form-check-label { + color: #CC0000 +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, +.form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, +.custom-control-input.is-invalid ~ .custom-control-label { + color: #CC0000 +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, +.custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #CC0000 +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, +.custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: red; + background-color: red +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, +.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #CC0000 +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, +.custom-file-input.is-invalid ~ .custom-file-label { + border-color: #CC0000 +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, +.custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #CC0000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.25) +} + +.form-inline { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.form-inline .form-check { + width: 100% +} + +@media (min-width: 576px) { + .form-inline label { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + margin-bottom: 0 + } + .form-inline .form-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 0 + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle + } + .form-inline .form-control-plaintext { + display: inline-block + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto + } + .form-inline .form-check { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: auto; + padding-left: 0 + } + .form-inline .form-check-input { + position: relative; + -ms-flex-negative: 0; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0 + } + .form-inline .custom-control { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center + } + .form-inline .custom-control-label { + margin-bottom: 0 + } +} + +.btn { + display: inline-block; + font-weight: 400; + color: #ADAFAE; + text-align: center; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 1rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.25rem; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .btn { + -webkit-transition: none; + transition: none + } +} + +.btn:hover { + color: #ADAFAE; + text-decoration: none +} + +.btn:focus, +.btn.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.btn.disabled, +.btn:disabled { + opacity: 0.65 +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none +} + +.btn-primary { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-primary:hover { + color: #fff; + background-color: #2387b7; + border-color: #2180ac +} + +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #2387b7; + border-color: #2180ac; + -webkit-box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5); + box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5) +} + +.btn-primary.disabled, +.btn-primary:disabled { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-primary:not(:disabled):not(.disabled):active, +.btn-primary:not(:disabled):not(.disabled).active, +.show>.btn-primary.dropdown-toggle { + color: #fff; + background-color: #2180ac; + border-color: #1f78a1 +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, +.btn-primary:not(:disabled):not(.disabled).active:focus, +.show>.btn-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5); + box-shadow: 0 0 0 0.2rem rgba(74, 173, 220, 0.5) +} + +.btn-secondary { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-secondary:hover { + color: #fff; + background-color: #424242; + border-color: #3c3b3b +} + +.btn-secondary:focus, +.btn-secondary.focus { + color: #fff; + background-color: #424242; + border-color: #3c3b3b; + -webkit-box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); + box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5) +} + +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-secondary:not(:disabled):not(.disabled):active, +.btn-secondary:not(:disabled):not(.disabled).active, +.show>.btn-secondary.dropdown-toggle { + color: #fff; + background-color: #3c3b3b; + border-color: #353535 +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, +.btn-secondary:not(:disabled):not(.disabled).active:focus, +.show>.btn-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5); + box-shadow: 0 0 0 0.2rem rgba(111, 111, 111, 0.5) +} + +.btn-success { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-success:hover { + color: #fff; + background-color: #5e8d00; + border-color: #558000 +} + +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #5e8d00; + border-color: #558000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5) +} + +.btn-success.disabled, +.btn-success:disabled { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-success:not(:disabled):not(.disabled):active, +.btn-success:not(:disabled):not(.disabled).active, +.show>.btn-success.dropdown-toggle { + color: #fff; + background-color: #558000; + border-color: #4d7300 +} + +.btn-success:not(:disabled):not(.disabled):active:focus, +.btn-success:not(:disabled):not(.disabled).active:focus, +.show>.btn-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(139, 190, 38, 0.5) +} + +.btn-info { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-info:hover { + color: #fff; + background-color: #822bad; + border-color: #7a29a3 +} + +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #822bad; + border-color: #7a29a3; + -webkit-box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5); + box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5) +} + +.btn-info.disabled, +.btn-info:disabled { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-info:not(:disabled):not(.disabled):active, +.btn-info:not(:disabled):not(.disabled).active, +.show>.btn-info.dropdown-toggle { + color: #fff; + background-color: #7a29a3; + border-color: #732699 +} + +.btn-info:not(:disabled):not(.disabled):active:focus, +.btn-info:not(:disabled):not(.disabled).active:focus, +.show>.btn-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5); + box-shadow: 0 0 0 0.2rem rgba(168, 82, 212, 0.5) +} + +.btn-warning { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-warning:hover { + color: #fff; + background-color: #d97400; + border-color: #cc6d00 +} + +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #d97400; + border-color: #cc6d00; + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5) +} + +.btn-warning.disabled, +.btn-warning:disabled { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-warning:not(:disabled):not(.disabled):active, +.btn-warning:not(:disabled):not(.disabled).active, +.show>.btn-warning.dropdown-toggle { + color: #fff; + background-color: #cc6d00; + border-color: #bf6600 +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, +.btn-warning:not(:disabled):not(.disabled).active:focus, +.show>.btn-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 154, 38, 0.5) +} + +.btn-danger { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-danger:hover { + color: #fff; + background-color: #a60000; + border-color: #990000 +} + +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #a60000; + border-color: #990000; + -webkit-box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5) +} + +.btn-danger.disabled, +.btn-danger:disabled { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-danger:not(:disabled):not(.disabled):active, +.btn-danger:not(:disabled):not(.disabled).active, +.show>.btn-danger.dropdown-toggle { + color: #fff; + background-color: #990000; + border-color: #8c0000 +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, +.btn-danger:not(:disabled):not(.disabled).active:focus, +.show>.btn-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5); + box-shadow: 0 0 0 0.2rem rgba(212, 38, 38, 0.5) +} + +.btn-light { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-light:hover { + color: #fff; + background-color: #0f0f0f; + border-color: #090808 +} + +.btn-light:focus, +.btn-light.focus { + color: #fff; + background-color: #0f0f0f; + border-color: #090808; + -webkit-box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5); + box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5) +} + +.btn-light.disabled, +.btn-light:disabled { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-light:not(:disabled):not(.disabled):active, +.btn-light:not(:disabled):not(.disabled).active, +.show>.btn-light.dropdown-toggle { + color: #fff; + background-color: #090808; + border-color: #020202 +} + +.btn-light:not(:disabled):not(.disabled):active:focus, +.btn-light:not(:disabled):not(.disabled).active:focus, +.show>.btn-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5); + box-shadow: 0 0 0 0.2rem rgba(67, 67, 67, 0.5) +} + +.btn-dark { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-dark:hover { + color: #fff; + background-color: #9a9c9b; + border-color: #939695 +} + +.btn-dark:focus, +.btn-dark.focus { + color: #fff; + background-color: #9a9c9b; + border-color: #939695; + -webkit-box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5); + box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5) +} + +.btn-dark.disabled, +.btn-dark:disabled { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-dark:not(:disabled):not(.disabled):active, +.btn-dark:not(:disabled):not(.disabled).active, +.show>.btn-dark.dropdown-toggle { + color: #fff; + background-color: #939695; + border-color: #8d908e +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, +.btn-dark:not(:disabled):not(.disabled).active:focus, +.show>.btn-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5); + box-shadow: 0 0 0 0.2rem rgba(185, 187, 186, 0.5) +} + +.btn-outline-primary { + color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-outline-primary:focus, +.btn-outline-primary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5) +} + +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: #2A9FD6; + background-color: transparent +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, +.btn-outline-primary:not(:disabled):not(.disabled).active, +.show>.btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, +.btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-primary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5) +} + +.btn-outline-secondary { + color: #555; + border-color: #555 +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-outline-secondary:focus, +.btn-outline-secondary.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); + box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5) +} + +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #555; + background-color: transparent +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, +.btn-outline-secondary:not(:disabled):not(.disabled).active, +.show>.btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #555; + border-color: #555 +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, +.btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-secondary.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); + box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5) +} + +.btn-outline-success { + color: #77B300; + border-color: #77B300 +} + +.btn-outline-success:hover { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-outline-success:focus, +.btn-outline-success.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5) +} + +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #77B300; + background-color: transparent +} + +.btn-outline-success:not(:disabled):not(.disabled):active, +.btn-outline-success:not(:disabled):not(.disabled).active, +.show>.btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #77B300; + border-color: #77B300 +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, +.btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-success.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5) +} + +.btn-outline-info { + color: #9933CC; + border-color: #9933CC +} + +.btn-outline-info:hover { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-outline-info:focus, +.btn-outline-info.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5); + box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5) +} + +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #9933CC; + background-color: transparent +} + +.btn-outline-info:not(:disabled):not(.disabled):active, +.btn-outline-info:not(:disabled):not(.disabled).active, +.show>.btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #9933CC; + border-color: #9933CC +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, +.btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-info.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5); + box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5) +} + +.btn-outline-warning { + color: #FF8800; + border-color: #FF8800 +} + +.btn-outline-warning:hover { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-outline-warning:focus, +.btn-outline-warning.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5) +} + +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #FF8800; + background-color: transparent +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, +.btn-outline-warning:not(:disabled):not(.disabled).active, +.show>.btn-outline-warning.dropdown-toggle { + color: #fff; + background-color: #FF8800; + border-color: #FF8800 +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, +.btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-warning.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5) +} + +.btn-outline-danger { + color: #CC0000; + border-color: #CC0000 +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-outline-danger:focus, +.btn-outline-danger.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5) +} + +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #CC0000; + background-color: transparent +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, +.btn-outline-danger:not(:disabled):not(.disabled).active, +.show>.btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #CC0000; + border-color: #CC0000 +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, +.btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-danger.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5) +} + +.btn-outline-light { + color: #222; + border-color: #222 +} + +.btn-outline-light:hover { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-outline-light:focus, +.btn-outline-light.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5); + box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5) +} + +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #222; + background-color: transparent +} + +.btn-outline-light:not(:disabled):not(.disabled):active, +.btn-outline-light:not(:disabled):not(.disabled).active, +.show>.btn-outline-light.dropdown-toggle { + color: #fff; + background-color: #222; + border-color: #222 +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, +.btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-light.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5); + box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5) +} + +.btn-outline-dark { + color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-outline-dark:focus, +.btn-outline-dark.focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5); + box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5) +} + +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #ADAFAE; + background-color: transparent +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, +.btn-outline-dark:not(:disabled):not(.disabled).active, +.show>.btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #ADAFAE; + border-color: #ADAFAE +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, +.btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show>.btn-outline-dark.dropdown-toggle:focus { + -webkit-box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5); + box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5) +} + +.btn-link { + font-weight: 400; + color: #2A9FD6; + text-decoration: none +} + +.btn-link:hover { + color: #1d7097; + text-decoration: underline +} + +.btn-link:focus, +.btn-link.focus { + text-decoration: underline; + -webkit-box-shadow: none; + box-shadow: none +} + +.btn-link:disabled, +.btn-link.disabled { + color: #555; + pointer-events: none +} + +.btn-lg, +.btn-group-lg>.btn { + padding: 0.5rem 1rem; + font-size: 1.09375rem; + line-height: 1.5; + border-radius: 0.3rem +} + +.btn-sm, +.btn-group-sm>.btn { + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5; + border-radius: 0.2rem +} + +.btn-block { + display: block; + width: 100% +} + +.btn-block+.btn-block { + margin-top: 0.5rem +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100% +} + +.fade { + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear +} + +@media (prefers-reduced-motion: reduce) { + .fade { + -webkit-transition: none; + transition: none + } +} + +.fade:not(.show) { + opacity: 0 +} + +.collapse:not(.show) { + display: none +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + -webkit-transition: none; + transition: none + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative +} + +.dropdown-toggle { + white-space: nowrap +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent +} + +.dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 0.875rem; + color: #ADAFAE; + text-align: left; + list-style: none; + background-color: #282828; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem +} + +.dropdown-menu-left { + right: auto; + left: 0 +} + +.dropdown-menu-right { + right: 0; + left: auto +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0 + } + .dropdown-menu-sm-right { + right: 0; + left: auto + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0 + } + .dropdown-menu-md-right { + right: 0; + left: auto + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0 + } + .dropdown-menu-lg-right { + right: 0; + left: auto + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0 + } + .dropdown-menu-xl-right { + right: 0; + left: auto + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropright .dropdown-toggle::after { + vertical-align: 0 +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: "" +} + +.dropleft .dropdown-toggle::after { + display: none +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0 +} + +.dropdown-menu[x-placement^="top"], +.dropdown-menu[x-placement^="right"], +.dropdown-menu[x-placement^="bottom"], +.dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #222 +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #fff; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0 +} + +.dropdown-item:hover, +.dropdown-item:focus { + color: #fff; + text-decoration: none; + background-color: #2A9FD6 +} + +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #2A9FD6 +} + +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #555; + pointer-events: none; + background-color: transparent +} + +.dropdown-menu.show { + display: block +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.765625rem; + color: #555; + white-space: nowrap +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #fff +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle +} + +.btn-group>.btn, +.btn-group-vertical>.btn { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto +} + +.btn-group>.btn:hover, +.btn-group-vertical>.btn:hover { + z-index: 1 +} + +.btn-group>.btn:focus, +.btn-group>.btn:active, +.btn-group>.btn.active, +.btn-group-vertical>.btn:focus, +.btn-group-vertical>.btn:active, +.btn-group-vertical>.btn.active { + z-index: 1 +} + +.btn-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start +} + +.btn-toolbar .input-group { + width: auto +} + +.btn-group>.btn:not(:first-child), +.btn-group>.btn-group:not(:first-child) { + margin-left: -1px +} + +.btn-group>.btn:not(:last-child):not(.dropdown-toggle), +.btn-group>.btn-group:not(:last-child)>.btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group>.btn:not(:first-child), +.btn-group>.btn-group:not(:first-child)>.btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0 +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0 +} + +.btn-sm+.dropdown-toggle-split, +.btn-group-sm>.btn+.dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem +} + +.btn-lg+.dropdown-toggle-split, +.btn-group-lg>.btn+.dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem +} + +.btn-group-vertical { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center +} + +.btn-group-vertical>.btn, +.btn-group-vertical>.btn-group { + width: 100% +} + +.btn-group-vertical>.btn:not(:first-child), +.btn-group-vertical>.btn-group:not(:first-child) { + margin-top: -1px +} + +.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical>.btn-group:not(:last-child)>.btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical>.btn:not(:first-child), +.btn-group-vertical>.btn-group:not(:first-child)>.btn { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.btn-group-toggle>.btn, +.btn-group-toggle>.btn-group>.btn { + margin-bottom: 0 +} + +.btn-group-toggle>.btn input[type="radio"], +.btn-group-toggle>.btn input[type="checkbox"], +.btn-group-toggle>.btn-group>.btn input[type="radio"], +.btn-group-toggle>.btn-group>.btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none +} + +.input-group { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + width: 100% +} + +.input-group>.form-control, +.input-group>.form-control-plaintext, +.input-group>.custom-select, +.input-group>.custom-file { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + min-width: 0; + margin-bottom: 0 +} + +.input-group>.form-control+.form-control, +.input-group>.form-control+.custom-select, +.input-group>.form-control+.custom-file, +.input-group>.form-control-plaintext+.form-control, +.input-group>.form-control-plaintext+.custom-select, +.input-group>.form-control-plaintext+.custom-file, +.input-group>.custom-select+.form-control, +.input-group>.custom-select+.custom-select, +.input-group>.custom-select+.custom-file, +.input-group>.custom-file+.form-control, +.input-group>.custom-file+.custom-select, +.input-group>.custom-file+.custom-file { + margin-left: -1px +} + +.input-group>.form-control:focus, +.input-group>.custom-select:focus, +.input-group>.custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3 +} + +.input-group>.custom-file .custom-file-input:focus { + z-index: 4 +} + +.input-group>.form-control:not(:last-child), +.input-group>.custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>.form-control:not(:first-child), +.input-group>.custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group>.custom-file { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.input-group>.custom-file:not(:last-child) .custom-file-label, +.input-group>.custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>.custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group-prepend, +.input-group-append { + display: -webkit-box; + display: -ms-flexbox; + display: flex +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2 +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3 +} + +.input-group-prepend .btn+.btn, +.input-group-prepend .btn+.input-group-text, +.input-group-prepend .input-group-text+.input-group-text, +.input-group-prepend .input-group-text+.btn, +.input-group-append .btn+.btn, +.input-group-append .btn+.input-group-text, +.input-group-append .input-group-text+.input-group-text, +.input-group-append .input-group-text+.btn { + margin-left: -1px +} + +.input-group-prepend { + margin-right: -1px +} + +.input-group-append { + margin-left: -1px +} + +.input-group-text { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.375rem 1rem; + margin-bottom: 0; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #282828; + border: 1px solid transparent; + border-radius: 0.25rem +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0 +} + +.input-group-lg>.form-control:not(textarea), +.input-group-lg>.custom-select { + height: calc(1.5em + 1rem + 2px) +} + +.input-group-lg>.form-control, +.input-group-lg>.custom-select, +.input-group-lg>.input-group-prepend>.input-group-text, +.input-group-lg>.input-group-append>.input-group-text, +.input-group-lg>.input-group-prepend>.btn, +.input-group-lg>.input-group-append>.btn { + padding: 0.5rem 1rem; + font-size: 1.09375rem; + line-height: 1.5; + border-radius: 0.3rem +} + +.input-group-sm>.form-control:not(textarea), +.input-group-sm>.custom-select { + height: calc(1.5em + 0.5rem + 2px) +} + +.input-group-sm>.form-control, +.input-group-sm>.custom-select, +.input-group-sm>.input-group-prepend>.input-group-text, +.input-group-sm>.input-group-append>.input-group-text, +.input-group-sm>.input-group-prepend>.btn, +.input-group-sm>.input-group-append>.btn { + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5; + border-radius: 0.2rem +} + +.input-group-lg>.custom-select, +.input-group-sm>.custom-select { + padding-right: 2rem +} + +.input-group>.input-group-prepend>.btn, +.input-group>.input-group-prepend>.input-group-text, +.input-group>.input-group-append:not(:last-child)>.btn, +.input-group>.input-group-append:not(:last-child)>.input-group-text, +.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle), +.input-group>.input-group-append:last-child>.input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>.input-group-append>.btn, +.input-group>.input-group-append>.input-group-text, +.input-group>.input-group-prepend:not(:first-child)>.btn, +.input-group>.input-group-prepend:not(:first-child)>.input-group-text, +.input-group>.input-group-prepend:first-child>.btn:not(:first-child), +.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.custom-control { + position: relative; + display: block; + min-height: 1.3125rem; + padding-left: 1.5rem +} + +.custom-control-inline { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1rem +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.15625rem; + opacity: 0 +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #2A9FD6; + background-color: #2A9FD6 +} + +.custom-control-input:focus ~ .custom-control-label::before { + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #95cfeb +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #c0e2f3; + border-color: #c0e2f3 +} + +.custom-control-input[disabled] ~ .custom-control-label, +.custom-control-input:disabled ~ .custom-control-label { + color: #555 +} + +.custom-control-input[disabled] ~ .custom-control-label::before, +.custom-control-input:disabled ~ .custom-control-label::before { + background-color: #ADAFAE +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top +} + +.custom-control-label::before { + position: absolute; + top: 0.15625rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #888 solid 1px +} + +.custom-control-label::after { + position: absolute; + top: 0.15625rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50% +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e") +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #2A9FD6; + background-color: #2A9FD6 +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e") +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-radio .custom-control-label::before { + border-radius: 50% +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-switch { + padding-left: 2.25rem +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem +} + +.custom-switch .custom-control-label::after { + top: calc(0.15625rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #888; + border-radius: 0.5rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-transform 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + -webkit-transition: none; + transition: none + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + -webkit-transform: translateX(0.75rem); + transform: translateX(0.75rem) +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(42, 159, 214, 0.5) +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 2rem 0.375rem 1rem; + font-size: 0.875rem; + font-weight: 400; + line-height: 1.5; + color: #282828; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23222' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1rem center/8px 10px; + border: 1px solid #fff; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +.custom-select:focus { + border-color: #95cfeb; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-select:focus::-ms-value { + color: #282828; + background-color: #fff +} + +.custom-select[multiple], +.custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 1rem; + background-image: none +} + +.custom-select:disabled { + color: #555; + background-color: #e9ecef +} + +.custom-select::-ms-expand { + display: none +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #282828 +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.765625rem +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.09375rem +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0 +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0 +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #95cfeb; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #ADAFAE +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse" +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse) +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1rem; + font-weight: 400; + line-height: 1.5; + color: #fff; + background-color: #fff; + border: 1px solid #282828; + border-radius: 0.25rem +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 1rem; + line-height: 1.5; + color: #fff; + content: "Browse"; + background-color: #282828; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0 +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +.custom-range:focus { + outline: none +} + +.custom-range:focus::-webkit-slider-thumb { + -webkit-box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #060606, 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.custom-range::-moz-focus-outer { + border: 0 +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #2A9FD6; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #c0e2f3 +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #2A9FD6; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -webkit-transition: none; + transition: none + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #c0e2f3 +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #2A9FD6; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + appearance: none +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -webkit-transition: none; + transition: none + } +} + +.custom-range::-ms-thumb:active { + background-color: #c0e2f3 +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #888 +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #888 +} + +.custom-range:disabled::-moz-range-track { + cursor: default +} + +.custom-range:disabled::-ms-thumb { + background-color: #888 +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + -webkit-transition: none; + transition: none + } +} + +.nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.nav-link { + display: block; + padding: 0.5rem 1rem +} + +.nav-link:hover, +.nav-link:focus { + text-decoration: none +} + +.nav-link.disabled { + color: #555; + pointer-events: none; + cursor: default +} + +.nav-tabs { + border-bottom: 1px solid #282828 +} + +.nav-tabs .nav-item { + margin-bottom: -1px +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem +} + +.nav-tabs .nav-link:hover, +.nav-tabs .nav-link:focus { + border-color: #282828 +} + +.nav-tabs .nav-link.disabled { + color: #555; + background-color: transparent; + border-color: transparent +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: #fff; + background-color: #282828; + border-color: #282828 +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav-pills .nav-link { + border-radius: 0.25rem +} + +.nav-pills .nav-link.active, +.nav-pills .show>.nav-link { + color: #fff; + background-color: #2A9FD6 +} + +.nav-fill .nav-item { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: center +} + +.nav-justified .nav-item { + -ms-flex-preferred-size: 0; + flex-basis: 0; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + text-align: center +} + +.tab-content>.tab-pane { + display: none +} + +.tab-content>.active { + display: block +} + +.navbar { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 0.5rem 1rem +} + +.navbar .container, +.navbar .container-fluid, +.navbar .container-sm, +.navbar .container-md, +.navbar .container-lg, +.navbar .container-xl { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3359375rem; + padding-bottom: 0.3359375rem; + margin-right: 1rem; + font-size: 1.09375rem; + line-height: inherit; + white-space: nowrap +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none +} + +.navbar-nav { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0 +} + +.navbar-nav .dropdown-menu { + position: static; + float: none +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem +} + +.navbar-collapse { + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.09375rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem +} + +.navbar-toggler:hover, +.navbar-toggler:focus { + text-decoration: none +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100% +} + +@media (max-width: 575.98px) { + .navbar-expand-sm>.container, + .navbar-expand-sm>.container-fluid, + .navbar-expand-sm>.container-sm, + .navbar-expand-sm>.container-md, + .navbar-expand-sm>.container-lg, + .navbar-expand-sm>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-sm .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-sm>.container, + .navbar-expand-sm>.container-fluid, + .navbar-expand-sm>.container-sm, + .navbar-expand-sm>.container-md, + .navbar-expand-sm>.container-lg, + .navbar-expand-sm>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-sm .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-sm .navbar-toggler { + display: none + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md>.container, + .navbar-expand-md>.container-fluid, + .navbar-expand-md>.container-sm, + .navbar-expand-md>.container-md, + .navbar-expand-md>.container-lg, + .navbar-expand-md>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-md .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-md>.container, + .navbar-expand-md>.container-fluid, + .navbar-expand-md>.container-sm, + .navbar-expand-md>.container-md, + .navbar-expand-md>.container-lg, + .navbar-expand-md>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-md .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-md .navbar-toggler { + display: none + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg>.container, + .navbar-expand-lg>.container-fluid, + .navbar-expand-lg>.container-sm, + .navbar-expand-lg>.container-md, + .navbar-expand-lg>.container-lg, + .navbar-expand-lg>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-lg .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-lg>.container, + .navbar-expand-lg>.container-fluid, + .navbar-expand-lg>.container-sm, + .navbar-expand-lg>.container-md, + .navbar-expand-lg>.container-lg, + .navbar-expand-lg>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-lg .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-lg .navbar-toggler { + display: none + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl>.container, + .navbar-expand-xl>.container-fluid, + .navbar-expand-xl>.container-sm, + .navbar-expand-xl>.container-md, + .navbar-expand-xl>.container-lg, + .navbar-expand-xl>.container-xl { + padding-right: 0; + padding-left: 0 + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start + } + .navbar-expand-xl .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem + } + .navbar-expand-xl>.container, + .navbar-expand-xl>.container-fluid, + .navbar-expand-xl>.container-sm, + .navbar-expand-xl>.container-md, + .navbar-expand-xl>.container-lg, + .navbar-expand-xl>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap + } + .navbar-expand-xl .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto + } + .navbar-expand-xl .navbar-toggler { + display: none + } +} + +.navbar-expand { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start +} + +.navbar-expand>.container, +.navbar-expand>.container-fluid, +.navbar-expand>.container-sm, +.navbar-expand>.container-md, +.navbar-expand>.container-lg, +.navbar-expand>.container-xl { + padding-right: 0; + padding-left: 0 +} + +.navbar-expand .navbar-nav { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem +} + +.navbar-expand>.container, +.navbar-expand>.container-fluid, +.navbar-expand>.container-sm, +.navbar-expand>.container-md, +.navbar-expand>.container-lg, +.navbar-expand>.container-xl { + -ms-flex-wrap: nowrap; + flex-wrap: nowrap +} + +.navbar-expand .navbar-collapse { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -ms-flex-preferred-size: auto; + flex-basis: auto +} + +.navbar-expand .navbar-toggler { + display: none +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-brand:hover, +.navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5) +} + +.navbar-light .navbar-nav .nav-link:hover, +.navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7) +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3) +} + +.navbar-light .navbar-nav .show>.nav-link, +.navbar-light .navbar-nav .active>.nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1) +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5) +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-light .navbar-text a:hover, +.navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9) +} + +.navbar-dark .navbar-brand { + color: #fff +} + +.navbar-dark .navbar-brand:hover, +.navbar-dark .navbar-brand:focus { + color: #fff +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5) +} + +.navbar-dark .navbar-nav .nav-link:hover, +.navbar-dark .navbar-nav .nav-link:focus { + color: #fff +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25) +} + +.navbar-dark .navbar-nav .show>.nav-link, +.navbar-dark .navbar-nav .active>.nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1) +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, 0.5) +} + +.navbar-dark .navbar-text a { + color: #fff +} + +.navbar-dark .navbar-text a:hover, +.navbar-dark .navbar-text a:focus { + color: #fff +} + +.card { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #282828; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem +} + +.card>hr { + margin-right: 0; + margin-left: 0 +} + +.card>.list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem +} + +.card>.list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem +} + +.card-body { + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem +} + +.card-title { + margin-bottom: 0.75rem +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0 +} + +.card-text:last-child { + margin-bottom: 0 +} + +.card-link:hover { + text-decoration: none +} + +.card-link+.card-link { + margin-left: 1.25rem +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125) +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0 +} + +.card-header+.list-group .list-group-item:first-child { + border-top: 0 +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125) +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px) +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0 +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem +} + +.card-img, +.card-img-top, +.card-img-bottom { + -ms-flex-negative: 0; + flex-shrink: 0; + width: 100% +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px) +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px) +} + +.card-deck .card { + margin-bottom: 15px +} + +@media (min-width: 576px) { + .card-deck { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px + } + .card-deck .card { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px + } +} + +.card-group>.card { + margin-bottom: 15px +} + +@media (min-width: 576px) { + .card-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap + } + .card-group>.card { + -webkit-box-flex: 1; + -ms-flex: 1 0 0%; + flex: 1 0 0%; + margin-bottom: 0 + } + .card-group>.card+.card { + margin-left: 0; + border-left: 0 + } + .card-group>.card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 + } + .card-group>.card:not(:last-child) .card-img-top, + .card-group>.card:not(:last-child) .card-header { + border-top-right-radius: 0 + } + .card-group>.card:not(:last-child) .card-img-bottom, + .card-group>.card:not(:last-child) .card-footer { + border-bottom-right-radius: 0 + } + .card-group>.card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 + } + .card-group>.card:not(:first-child) .card-img-top, + .card-group>.card:not(:first-child) .card-header { + border-top-left-radius: 0 + } + .card-group>.card:not(:first-child) .card-img-bottom, + .card-group>.card:not(:first-child) .card-footer { + border-bottom-left-radius: 0 + } +} + +.card-columns .card { + margin-bottom: 0.75rem +} + +@media (min-width: 576px) { + .card-columns { + -webkit-column-count: 3; + column-count: 3; + -webkit-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1 + } + .card-columns .card { + display: inline-block; + width: 100% + } +} + +.accordion>.card { + overflow: hidden +} + +.accordion>.card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.accordion>.card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.accordion>.card>.card-header { + border-radius: 0; + margin-bottom: -1px +} + +.breadcrumb { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #282828; + border-radius: 0.25rem +} + +.breadcrumb-item+.breadcrumb-item { + padding-left: 0.5rem +} + +.breadcrumb-item+.breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #555; + content: "/" +} + +.breadcrumb-item+.breadcrumb-item:hover::before { + text-decoration: underline +} + +.breadcrumb-item+.breadcrumb-item:hover::before { + text-decoration: none +} + +.breadcrumb-item.active { + color: #555 +} + +.pagination { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #fff; + background-color: #282828; + border: 1px solid transparent +} + +.page-link:hover { + z-index: 2; + color: #fff; + text-decoration: none; + background-color: #2A9FD6; + border-color: transparent +} + +.page-link:focus { + z-index: 3; + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.25) +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.page-item.disabled .page-link { + color: #555; + pointer-events: none; + cursor: auto; + background-color: #282828; + border-color: transparent +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.09375rem; + line-height: 1.5 +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.765625rem; + line-height: 1.5 +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, -webkit-box-shadow 0.15s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .badge { + -webkit-transition: none; + transition: none + } +} + +a.badge:hover, +a.badge:focus { + text-decoration: none +} + +.badge:empty { + display: none +} + +.btn .badge { + position: relative; + top: -1px +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem +} + +.badge-primary { + color: #fff; + background-color: #2A9FD6 +} + +a.badge-primary:hover, +a.badge-primary:focus { + color: #fff; + background-color: #2180ac +} + +a.badge-primary:focus, +a.badge-primary.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5); + box-shadow: 0 0 0 0.2rem rgba(42, 159, 214, 0.5) +} + +.badge-secondary { + color: #fff; + background-color: #555 +} + +a.badge-secondary:hover, +a.badge-secondary:focus { + color: #fff; + background-color: #3c3b3b +} + +a.badge-secondary:focus, +a.badge-secondary.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5); + box-shadow: 0 0 0 0.2rem rgba(85, 85, 85, 0.5) +} + +.badge-success { + color: #fff; + background-color: #77B300 +} + +a.badge-success:hover, +a.badge-success:focus { + color: #fff; + background-color: #558000 +} + +a.badge-success:focus, +a.badge-success.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(119, 179, 0, 0.5) +} + +.badge-info { + color: #fff; + background-color: #9933CC +} + +a.badge-info:hover, +a.badge-info:focus { + color: #fff; + background-color: #7a29a3 +} + +a.badge-info:focus, +a.badge-info.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5); + box-shadow: 0 0 0 0.2rem rgba(153, 51, 204, 0.5) +} + +.badge-warning { + color: #fff; + background-color: #FF8800 +} + +a.badge-warning:hover, +a.badge-warning:focus { + color: #fff; + background-color: #cc6d00 +} + +a.badge-warning:focus, +a.badge-warning.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(255, 136, 0, 0.5) +} + +.badge-danger { + color: #fff; + background-color: #CC0000 +} + +a.badge-danger:hover, +a.badge-danger:focus { + color: #fff; + background-color: #990000 +} + +a.badge-danger:focus, +a.badge-danger.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5); + box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.5) +} + +.badge-light { + color: #fff; + background-color: #222 +} + +a.badge-light:hover, +a.badge-light:focus { + color: #fff; + background-color: #090808 +} + +a.badge-light:focus, +a.badge-light.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5); + box-shadow: 0 0 0 0.2rem rgba(34, 34, 34, 0.5) +} + +.badge-dark { + color: #fff; + background-color: #ADAFAE +} + +a.badge-dark:hover, +a.badge-dark:focus { + color: #fff; + background-color: #939695 +} + +a.badge-dark:focus, +a.badge-dark.focus { + outline: 0; + -webkit-box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5); + box-shadow: 0 0 0 0.2rem rgba(173, 175, 174, 0.5) +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #282828; + border-radius: 0.3rem +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0 +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem +} + +.alert-heading { + color: inherit +} + +.alert-link { + font-weight: 700 +} + +.alert-dismissible { + padding-right: 3.8125rem +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit +} + +.alert-primary { + color: #16536f; + background-color: #d4ecf7; + border-color: #c3e4f4 +} + +.alert-primary hr { + border-top-color: #addaf0 +} + +.alert-primary .alert-link { + color: #0e3344 +} + +.alert-secondary { + color: #2c2c2c; + background-color: #dddddd; + border-color: #cfcfcf +} + +.alert-secondary hr { + border-top-color: #c2c2c2 +} + +.alert-secondary .alert-link { + color: #131212 +} + +.alert-success { + color: #3e5d00; + background-color: #e4f0cc; + border-color: #d9eab8 +} + +.alert-success hr { + border-top-color: #cee4a4 +} + +.alert-success .alert-link { + color: #1c2a00 +} + +.alert-info { + color: #501b6a; + background-color: #ebd6f5; + border-color: #e2c6f1 +} + +.alert-info hr { + border-top-color: #d8b2ec +} + +.alert-info .alert-link { + color: #311141 +} + +.alert-warning { + color: #854700; + background-color: #ffe7cc; + border-color: #ffdeb8 +} + +.alert-warning hr { + border-top-color: #ffd29f +} + +.alert-warning .alert-link { + color: #522c00 +} + +.alert-danger { + color: #6a0000; + background-color: #f5cccc; + border-color: #f1b8b8 +} + +.alert-danger hr { + border-top-color: #eda3a3 +} + +.alert-danger .alert-link { + color: #370000 +} + +.alert-light { + color: #121212; + background-color: lightgray; + border-color: #c1c1c1 +} + +.alert-light hr { + border-top-color: #b4b4b4 +} + +.alert-light .alert-link { + color: black +} + +.alert-dark { + color: #5a5b5a; + background-color: #efefef; + border-color: #e8e9e8 +} + +.alert-dark hr { + border-top-color: #dbdddb +} + +.alert-dark .alert-link { + color: #414141 +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0 + } + to { + background-position: 0 0 + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0 + } + to { + background-position: 0 0 + } +} + +.progress { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.65625rem; + background-color: #282828; + border-radius: 0.25rem +} + +.progress-bar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #2A9FD6; + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + -webkit-transition: none; + transition: none + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none + } +} + +.media { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start +} + +.media-body { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1 +} + +.list-group { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + padding-left: 0; + margin-bottom: 0 +} + +.list-group-item-action { + width: 100%; + color: #282828; + text-align: inherit +} + +.list-group-item-action:hover, +.list-group-item-action:focus { + z-index: 1; + color: #282828; + text-decoration: none; + background-color: #2A9FD6 +} + +.list-group-item-action:active { + color: #ADAFAE; + background-color: #2A9FD6 +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #222; + border: 1px solid #282828 +} + +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem +} + +.list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem +} + +.list-group-item.disabled, +.list-group-item:disabled { + color: #555; + pointer-events: none; + background-color: #282828 +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: #2A9FD6; + border-color: #2A9FD6 +} + +.list-group-item+.list-group-item { + border-top-width: 0 +} + +.list-group-item+.list-group-item.active { + margin-top: -1px; + border-top-width: 1px +} + +.list-group-horizontal { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row +} + +.list-group-horizontal .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 +} + +.list-group-horizontal .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 +} + +.list-group-horizontal .list-group-item.active { + margin-top: 0 +} + +.list-group-horizontal .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 +} + +.list-group-horizontal .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-sm .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-sm .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-sm .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-sm .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-sm .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 768px) { + .list-group-horizontal-md { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-md .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-md .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-md .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-md .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-md .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 992px) { + .list-group-horizontal-lg { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-lg .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-lg .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-lg .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-lg .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-lg .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width: 1200px) { + .list-group-horizontal-xl { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row + } + .list-group-horizontal-xl .list-group-item:first-child { + border-bottom-left-radius: 0.25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-xl .list-group-item:last-child { + border-top-right-radius: 0.25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-xl .list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-xl .list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-xl .list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +.list-group-flush .list-group-item { + border-right-width: 0; + border-left-width: 0; + border-radius: 0 +} + +.list-group-flush .list-group-item:first-child { + border-top-width: 0 +} + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom-width: 0 +} + +.list-group-item-primary { + color: #16536f; + background-color: #c3e4f4 +} + +.list-group-item-primary.list-group-item-action:hover, +.list-group-item-primary.list-group-item-action:focus { + color: #16536f; + background-color: #addaf0 +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #16536f; + border-color: #16536f +} + +.list-group-item-secondary { + color: #2c2c2c; + background-color: #cfcfcf +} + +.list-group-item-secondary.list-group-item-action:hover, +.list-group-item-secondary.list-group-item-action:focus { + color: #2c2c2c; + background-color: #c2c2c2 +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #2c2c2c; + border-color: #2c2c2c +} + +.list-group-item-success { + color: #3e5d00; + background-color: #d9eab8 +} + +.list-group-item-success.list-group-item-action:hover, +.list-group-item-success.list-group-item-action:focus { + color: #3e5d00; + background-color: #cee4a4 +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #3e5d00; + border-color: #3e5d00 +} + +.list-group-item-info { + color: #501b6a; + background-color: #e2c6f1 +} + +.list-group-item-info.list-group-item-action:hover, +.list-group-item-info.list-group-item-action:focus { + color: #501b6a; + background-color: #d8b2ec +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #501b6a; + border-color: #501b6a +} + +.list-group-item-warning { + color: #854700; + background-color: #ffdeb8 +} + +.list-group-item-warning.list-group-item-action:hover, +.list-group-item-warning.list-group-item-action:focus { + color: #854700; + background-color: #ffd29f +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #854700; + border-color: #854700 +} + +.list-group-item-danger { + color: #6a0000; + background-color: #f1b8b8 +} + +.list-group-item-danger.list-group-item-action:hover, +.list-group-item-danger.list-group-item-action:focus { + color: #6a0000; + background-color: #eda3a3 +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #6a0000; + border-color: #6a0000 +} + +.list-group-item-light { + color: #121212; + background-color: #c1c1c1 +} + +.list-group-item-light.list-group-item-action:hover, +.list-group-item-light.list-group-item-action:focus { + color: #121212; + background-color: #b4b4b4 +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #121212; + border-color: #121212 +} + +.list-group-item-dark { + color: #5a5b5a; + background-color: #e8e9e8 +} + +.list-group-item-dark.list-group-item-action:hover, +.list-group-item-dark.list-group-item-action:focus { + color: #5a5b5a; + background-color: #dbdddb +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #5a5b5a; + border-color: #5a5b5a +} + +.close { + float: right; + font-size: 1.3125rem; + font-weight: 700; + line-height: 1; + color: #fff; + text-shadow: none; + opacity: .5 +} + +.close:hover { + color: #fff; + text-decoration: none +} + +.close:not(:disabled):not(.disabled):hover, +.close:not(:disabled):not(.disabled):focus { + opacity: .75 +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +a.close.disabled { + pointer-events: none +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem +} + +.toast.showing { + opacity: 1 +} + +.toast.show { + display: block; + opacity: 1 +} + +.toast.hide { + display: none +} + +.toast-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0.25rem 0.75rem; + color: #555; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05) +} + +.toast-body { + padding: 0.75rem +} + +.modal-open { + overflow: hidden +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0 +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none +} + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out; + -webkit-transform: translate(0, -50px); + transform: translate(0, -50px) +} + +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + -webkit-transition: none; + transition: none + } +} + +.modal.show .modal-dialog { + -webkit-transform: none; + transform: none +} + +.modal.modal-static .modal-dialog { + -webkit-transform: scale(1.02); + transform: scale(1.02) +} + +.modal-dialog-scrollable { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-height: calc(100% - 1rem) +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto +} + +.modal-dialog-centered { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: calc(100% - 1rem) +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + content: "" +} + +.modal-dialog-centered.modal-dialog-scrollable { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + height: 100% +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none +} + +.modal-content { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #222; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0 +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000 +} + +.modal-backdrop.fade { + opacity: 0 +} + +.modal-backdrop.show { + opacity: 0.5 +} + +.modal-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #282828; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px) +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5 +} + +.modal-body { + position: relative; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + padding: 1rem +} + +.modal-footer { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #282828; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px) +} + +.modal-footer>* { + margin: 0.25rem +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem) + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem) + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem) + } + .modal-dialog-centered::before { + height: calc(100vh - 3.5rem) + } + .modal-sm { + max-width: 300px + } +} + +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + max-width: 800px + } +} + +@media (min-width: 1200px) { + .modal-xl { + max-width: 1140px + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.765625rem; + word-wrap: break-word; + opacity: 0 +} + +.tooltip.show { + opacity: 1 +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-tooltip-top, +.bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0 +} + +.bs-tooltip-top .arrow, +.bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0 +} + +.bs-tooltip-top .arrow::before, +.bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #282828 +} + +.bs-tooltip-right, +.bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem +} + +.bs-tooltip-right .arrow, +.bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem +} + +.bs-tooltip-right .arrow::before, +.bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #282828 +} + +.bs-tooltip-bottom, +.bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0 +} + +.bs-tooltip-bottom .arrow, +.bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0 +} + +.bs-tooltip-bottom .arrow::before, +.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #282828 +} + +.bs-tooltip-left, +.bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem +} + +.bs-tooltip-left .arrow, +.bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem +} + +.bs-tooltip-left .arrow::before, +.bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #282828 +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #282828; + border-radius: 0.25rem +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.765625rem; + word-wrap: break-word; + background-color: #282828; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem +} + +.popover .arrow::before, +.popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-popover-top, +.bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem +} + +.bs-popover-top>.arrow, +.bs-popover-auto[x-placement^="top"]>.arrow { + bottom: calc(-0.5rem - 1px) +} + +.bs-popover-top>.arrow::before, +.bs-popover-auto[x-placement^="top"]>.arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-top>.arrow::after, +.bs-popover-auto[x-placement^="top"]>.arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #282828 +} + +.bs-popover-right, +.bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem +} + +.bs-popover-right>.arrow, +.bs-popover-auto[x-placement^="right"]>.arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0 +} + +.bs-popover-right>.arrow::before, +.bs-popover-auto[x-placement^="right"]>.arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-right>.arrow::after, +.bs-popover-auto[x-placement^="right"]>.arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #282828 +} + +.bs-popover-bottom, +.bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem +} + +.bs-popover-bottom>.arrow, +.bs-popover-auto[x-placement^="bottom"]>.arrow { + top: calc(-0.5rem - 1px) +} + +.bs-popover-bottom>.arrow::before, +.bs-popover-auto[x-placement^="bottom"]>.arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-bottom>.arrow::after, +.bs-popover-auto[x-placement^="bottom"]>.arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #282828 +} + +.bs-popover-bottom .popover-header::before, +.bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #202020 +} + +.bs-popover-left, +.bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem +} + +.bs-popover-left>.arrow, +.bs-popover-auto[x-placement^="left"]>.arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0 +} + +.bs-popover-left>.arrow::before, +.bs-popover-auto[x-placement^="left"]>.arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25) +} + +.bs-popover-left>.arrow::after, +.bs-popover-auto[x-placement^="left"]>.arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #282828 +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #fff; + background-color: #202020; + border-bottom: 1px solid #141414; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px) +} + +.popover-header:empty { + display: none +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #ADAFAE +} + +.carousel { + position: relative +} + +.carousel.pointer-event { + -ms-touch-action: pan-y; + touch-action: pan-y +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner::after { + display: block; + clear: both; + content: "" +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: -webkit-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + -webkit-transition: none; + transition: none + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + -webkit-transform: translateX(100%); + transform: translateX(100%) +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + -webkit-transform: translateX(-100%); + transform: translateX(-100%) +} + +.carousel-fade .carousel-item { + opacity: 0; + -webkit-transition-property: opacity; + transition-property: opacity; + -webkit-transform: none; + transform: none +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1 +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + -webkit-transition: opacity 0s 0.6s; + transition: opacity 0s 0.6s +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + -webkit-transition: none; + transition: none + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + -webkit-transition: opacity 0.15s ease; + transition: opacity 0.15s ease +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + -webkit-transition: none; + transition: none + } +} + +.carousel-control-prev:hover, +.carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9 +} + +.carousel-control-prev { + left: 0 +} + +.carousel-control-next { + right: 0 +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100% +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e") +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e") +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none +} + +.carousel-indicators li { + -webkit-box-sizing: content-box; + box-sizing: content-box; + -webkit-box-flex: 0; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + -webkit-transition: opacity 0.6s ease; + transition: opacity 0.6s ease +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + -webkit-transition: none; + transition: none + } +} + +.carousel-indicators .active { + opacity: 1 +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center +} + +@-webkit-keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@keyframes spinner-border { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em +} + +@-webkit-keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0) + } + 50% { + opacity: 1 + } +} + +@keyframes spinner-grow { + 0% { + -webkit-transform: scale(0); + transform: scale(0) + } + 50% { + opacity: 1 + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem +} + +.align-baseline { + vertical-align: baseline !important +} + +.align-top { + vertical-align: top !important +} + +.align-middle { + vertical-align: middle !important +} + +.align-bottom { + vertical-align: bottom !important +} + +.align-text-bottom { + vertical-align: text-bottom !important +} + +.align-text-top { + vertical-align: text-top !important +} + +.bg-primary { + background-color: #060606 !important +} + +a.bg-primary:hover, +a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #2180ac !important +} + +.bg-secondary { + background-color: #131313 !important +} + +a.bg-secondary:hover, +a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #3c3b3b !important +} + +.bg-success { + background-color: #77B300 !important +} + +a.bg-success:hover, +a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #558000 !important +} + +.bg-info { + background-color: #9933CC !important +} + +a.bg-info:hover, +a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #7a29a3 !important +} + +.bg-warning { + background-color: #FF8800 !important +} + +a.bg-warning:hover, +a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #cc6d00 !important +} + +.bg-danger { + background-color: #CC0000 !important +} + +a.bg-danger:hover, +a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #990000 !important +} + +.bg-light { + background-color: #222 !important +} + +a.bg-light:hover, +a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #090808 !important +} + +.bg-dark { + background-color: #ADAFAE !important +} + +a.bg-dark:hover, +a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #939695 !important +} + +.bg-white { + background-color: #fff !important +} + +.bg-transparent { + background-color: transparent !important +} + +.border { + border: 1px solid #dee2e6 !important +} + +.border-top { + border-top: 1px solid #dee2e6 !important +} + +.border-right { + border-right: 1px solid #dee2e6 !important +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important +} + +.border-left { + border-left: 1px solid #dee2e6 !important +} + +.border-0 { + border: 0 !important +} + +.border-top-0 { + border-top: 0 !important +} + +.border-right-0 { + border-right: 0 !important +} + +.border-bottom-0 { + border-bottom: 0 !important +} + +.border-left-0 { + border-left: 0 !important +} + +.border-primary { + border-color: #2A9FD6 !important +} + +.border-secondary { + border-color: #555 !important +} + +.border-success { + border-color: #77B300 !important +} + +.border-info { + border-color: #9933CC !important +} + +.border-warning { + border-color: #FF8800 !important +} + +.border-danger { + border-color: #CC0000 !important +} + +.border-light { + border-color: #222 !important +} + +.border-dark { + border-color: #ADAFAE !important +} + +.border-white { + border-color: #fff !important +} + +.rounded-sm { + border-radius: 0.2rem !important +} + +.rounded { + border-radius: 0.25rem !important +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important +} + +.rounded-lg { + border-radius: 0.3rem !important +} + +.rounded-circle { + border-radius: 50% !important +} + +.rounded-pill { + border-radius: 50rem !important +} + +.rounded-0 { + border-radius: 0 !important +} + +.clearfix::after { + display: block; + clear: both; + content: "" +} + +.d-none { + display: none !important +} + +.d-inline { + display: inline !important +} + +.d-inline-block { + display: inline-block !important +} + +.d-block { + display: block !important +} + +.d-table { + display: table !important +} + +.d-table-row { + display: table-row !important +} + +.d-table-cell { + display: table-cell !important +} + +.d-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important +} + +.d-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important + } + .d-sm-inline { + display: inline !important + } + .d-sm-inline-block { + display: inline-block !important + } + .d-sm-block { + display: block !important + } + .d-sm-table { + display: table !important + } + .d-sm-table-row { + display: table-row !important + } + .d-sm-table-cell { + display: table-cell !important + } + .d-sm-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-sm-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important + } + .d-md-inline { + display: inline !important + } + .d-md-inline-block { + display: inline-block !important + } + .d-md-block { + display: block !important + } + .d-md-table { + display: table !important + } + .d-md-table-row { + display: table-row !important + } + .d-md-table-cell { + display: table-cell !important + } + .d-md-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-md-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important + } + .d-lg-inline { + display: inline !important + } + .d-lg-inline-block { + display: inline-block !important + } + .d-lg-block { + display: block !important + } + .d-lg-table { + display: table !important + } + .d-lg-table-row { + display: table-row !important + } + .d-lg-table-cell { + display: table-cell !important + } + .d-lg-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-lg-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important + } + .d-xl-inline { + display: inline !important + } + .d-xl-inline-block { + display: inline-block !important + } + .d-xl-block { + display: block !important + } + .d-xl-table { + display: table !important + } + .d-xl-table-row { + display: table-row !important + } + .d-xl-table-cell { + display: table-cell !important + } + .d-xl-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-xl-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +@media print { + .d-print-none { + display: none !important + } + .d-print-inline { + display: inline !important + } + .d-print-inline-block { + display: inline-block !important + } + .d-print-block { + display: block !important + } + .d-print-table { + display: table !important + } + .d-print-table-row { + display: table-row !important + } + .d-print-table-cell { + display: table-cell !important + } + .d-print-flex { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important + } + .d-print-inline-flex { + display: -webkit-inline-box !important; + display: -ms-inline-flexbox !important; + display: inline-flex !important + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden +} + +.embed-responsive::before { + display: block; + content: "" +} + +.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-21by9::before { + padding-top: 42.8571428571% +} + +.embed-responsive-16by9::before { + padding-top: 56.25% +} + +.embed-responsive-4by3::before { + padding-top: 75% +} + +.embed-responsive-1by1::before { + padding-top: 100% +} + +.flex-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important +} + +.flex-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important +} + +.flex-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important +} + +.flex-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important +} + +.flex-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important +} + +.flex-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important +} + +.flex-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important +} + +.flex-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important +} + +.flex-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important +} + +.flex-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important +} + +.flex-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important +} + +.flex-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important +} + +.justify-content-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important +} + +.justify-content-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important +} + +.justify-content-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important +} + +.justify-content-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important +} + +.justify-content-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important +} + +.align-items-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important +} + +.align-items-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important +} + +.align-items-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important +} + +.align-items-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important +} + +.align-items-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important +} + +.align-content-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important +} + +.align-content-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important +} + +.align-content-center { + -ms-flex-line-pack: center !important; + align-content: center !important +} + +.align-content-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important +} + +.align-content-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important +} + +.align-content-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important +} + +.align-self-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important +} + +.align-self-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important +} + +.align-self-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important +} + +.align-self-center { + -ms-flex-item-align: center !important; + align-self: center !important +} + +.align-self-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important +} + +.align-self-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important +} + +@media (min-width: 576px) { + .flex-sm-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-sm-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-sm-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-sm-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-sm-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-sm-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-sm-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-sm-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-sm-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-sm-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-sm-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-sm-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-sm-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-sm-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-sm-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-sm-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-sm-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-sm-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-sm-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-sm-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-sm-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-sm-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-sm-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-sm-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-sm-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-sm-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-sm-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-sm-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-sm-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-sm-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-sm-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-sm-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-sm-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-sm-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +@media (min-width: 768px) { + .flex-md-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-md-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-md-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-md-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-md-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-md-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-md-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-md-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-md-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-md-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-md-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-md-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-md-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-md-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-md-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-md-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-md-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-md-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-md-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-md-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-md-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-md-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-md-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-md-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-md-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-md-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-md-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-md-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-md-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-md-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-md-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-md-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-md-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-md-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +@media (min-width: 992px) { + .flex-lg-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-lg-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-lg-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-lg-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-lg-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-lg-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-lg-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-lg-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-lg-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-lg-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-lg-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-lg-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-lg-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-lg-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-lg-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-lg-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-lg-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-lg-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-lg-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-lg-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-lg-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-lg-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-lg-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-lg-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-lg-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-lg-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-lg-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-lg-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-lg-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-lg-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-lg-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-lg-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-lg-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-lg-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +@media (min-width: 1200px) { + .flex-xl-row { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: row !important; + flex-direction: row !important + } + .flex-xl-column { + -webkit-box-orient: vertical !important; + -webkit-box-direction: normal !important; + -ms-flex-direction: column !important; + flex-direction: column !important + } + .flex-xl-row-reverse { + -webkit-box-orient: horizontal !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: row-reverse !important; + flex-direction: row-reverse !important + } + .flex-xl-column-reverse { + -webkit-box-orient: vertical !important; + -webkit-box-direction: reverse !important; + -ms-flex-direction: column-reverse !important; + flex-direction: column-reverse !important + } + .flex-xl-wrap { + -ms-flex-wrap: wrap !important; + flex-wrap: wrap !important + } + .flex-xl-nowrap { + -ms-flex-wrap: nowrap !important; + flex-wrap: nowrap !important + } + .flex-xl-wrap-reverse { + -ms-flex-wrap: wrap-reverse !important; + flex-wrap: wrap-reverse !important + } + .flex-xl-fill { + -webkit-box-flex: 1 !important; + -ms-flex: 1 1 auto !important; + flex: 1 1 auto !important + } + .flex-xl-grow-0 { + -webkit-box-flex: 0 !important; + -ms-flex-positive: 0 !important; + flex-grow: 0 !important + } + .flex-xl-grow-1 { + -webkit-box-flex: 1 !important; + -ms-flex-positive: 1 !important; + flex-grow: 1 !important + } + .flex-xl-shrink-0 { + -ms-flex-negative: 0 !important; + flex-shrink: 0 !important + } + .flex-xl-shrink-1 { + -ms-flex-negative: 1 !important; + flex-shrink: 1 !important + } + .justify-content-xl-start { + -webkit-box-pack: start !important; + -ms-flex-pack: start !important; + justify-content: flex-start !important + } + .justify-content-xl-end { + -webkit-box-pack: end !important; + -ms-flex-pack: end !important; + justify-content: flex-end !important + } + .justify-content-xl-center { + -webkit-box-pack: center !important; + -ms-flex-pack: center !important; + justify-content: center !important + } + .justify-content-xl-between { + -webkit-box-pack: justify !important; + -ms-flex-pack: justify !important; + justify-content: space-between !important + } + .justify-content-xl-around { + -ms-flex-pack: distribute !important; + justify-content: space-around !important + } + .align-items-xl-start { + -webkit-box-align: start !important; + -ms-flex-align: start !important; + align-items: flex-start !important + } + .align-items-xl-end { + -webkit-box-align: end !important; + -ms-flex-align: end !important; + align-items: flex-end !important + } + .align-items-xl-center { + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important + } + .align-items-xl-baseline { + -webkit-box-align: baseline !important; + -ms-flex-align: baseline !important; + align-items: baseline !important + } + .align-items-xl-stretch { + -webkit-box-align: stretch !important; + -ms-flex-align: stretch !important; + align-items: stretch !important + } + .align-content-xl-start { + -ms-flex-line-pack: start !important; + align-content: flex-start !important + } + .align-content-xl-end { + -ms-flex-line-pack: end !important; + align-content: flex-end !important + } + .align-content-xl-center { + -ms-flex-line-pack: center !important; + align-content: center !important + } + .align-content-xl-between { + -ms-flex-line-pack: justify !important; + align-content: space-between !important + } + .align-content-xl-around { + -ms-flex-line-pack: distribute !important; + align-content: space-around !important + } + .align-content-xl-stretch { + -ms-flex-line-pack: stretch !important; + align-content: stretch !important + } + .align-self-xl-auto { + -ms-flex-item-align: auto !important; + align-self: auto !important + } + .align-self-xl-start { + -ms-flex-item-align: start !important; + align-self: flex-start !important + } + .align-self-xl-end { + -ms-flex-item-align: end !important; + align-self: flex-end !important + } + .align-self-xl-center { + -ms-flex-item-align: center !important; + align-self: center !important + } + .align-self-xl-baseline { + -ms-flex-item-align: baseline !important; + align-self: baseline !important + } + .align-self-xl-stretch { + -ms-flex-item-align: stretch !important; + align-self: stretch !important + } +} + +.float-left { + float: left !important +} + +.float-right { + float: right !important +} + +.float-none { + float: none !important +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important + } + .float-sm-right { + float: right !important + } + .float-sm-none { + float: none !important + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important + } + .float-md-right { + float: right !important + } + .float-md-none { + float: none !important + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important + } + .float-lg-right { + float: right !important + } + .float-lg-none { + float: none !important + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important + } + .float-xl-right { + float: right !important + } + .float-xl-none { + float: none !important + } +} + +.overflow-auto { + overflow: auto !important +} + +.overflow-hidden { + overflow: hidden !important +} + +.position-static { + position: static !important +} + +.position-relative { + position: relative !important +} + +.position-absolute { + position: absolute !important +} + +.position-fixed { + position: fixed !important +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030 +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030 +} + +@supports (position: -webkit-sticky) or (position: sticky) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0 +} + +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal +} + +.shadow-sm { + -webkit-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important +} + +.shadow { + -webkit-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important +} + +.shadow-lg { + -webkit-box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important +} + +.shadow-none { + -webkit-box-shadow: none !important; + box-shadow: none !important +} + +.w-25 { + width: 25% !important +} + +.w-50 { + width: 50% !important +} + +.w-75 { + width: 75% !important +} + +.w-100 { + width: 100% !important +} + +.w-auto { + width: auto !important +} + +.h-25 { + height: 25% !important +} + +.h-50 { + height: 50% !important +} + +.h-75 { + height: 75% !important +} + +.h-100 { + height: 100% !important +} + +.h-auto { + height: auto !important +} + +.mw-100 { + max-width: 100% !important +} + +.mh-100 { + max-height: 100% !important +} + +.min-vw-100 { + min-width: 100vw !important +} + +.min-vh-100 { + min-height: 100vh !important +} + +.vw-100 { + width: 100vw !important +} + +.vh-100 { + height: 100vh !important +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0) +} + +.m-0 { + margin: 0 !important +} + +.mt-0, +.my-0 { + margin-top: 0 !important +} + +.mr-0, +.mx-0 { + margin-right: 0 !important +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important +} + +.ml-0, +.mx-0 { + margin-left: 0 !important +} + +.m-1 { + margin: 0.25rem !important +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important +} + +.m-2 { + margin: 0.5rem !important +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important +} + +.m-3 { + margin: 1rem !important +} + +.mt-3, +.my-3 { + margin-top: 1rem !important +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important +} + +.m-4 { + margin: 1.5rem !important +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important +} + +.m-5 { + margin: 3rem !important +} + +.mt-5, +.my-5 { + margin-top: 3rem !important +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important +} + +.p-0 { + padding: 0 !important +} + +.pt-0, +.py-0 { + padding-top: 0 !important +} + +.pr-0, +.px-0 { + padding-right: 0 !important +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important +} + +.pl-0, +.px-0 { + padding-left: 0 !important +} + +.p-1 { + padding: 0.25rem !important +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important +} + +.p-2 { + padding: 0.5rem !important +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important +} + +.p-3 { + padding: 1rem !important +} + +.pt-3, +.py-3 { + padding-top: 1rem !important +} + +.pr-3, +.px-3 { + padding-right: 1rem !important +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important +} + +.pl-3, +.px-3 { + padding-left: 1rem !important +} + +.p-4 { + padding: 1.5rem !important +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important +} + +.p-5 { + padding: 3rem !important +} + +.pt-5, +.py-5 { + padding-top: 3rem !important +} + +.pr-5, +.px-5 { + padding-right: 3rem !important +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important +} + +.pl-5, +.px-5 { + padding-left: 3rem !important +} + +.m-n1 { + margin: -0.25rem !important +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important +} + +.m-n2 { + margin: -0.5rem !important +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important +} + +.m-n3 { + margin: -1rem !important +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important +} + +.m-n4 { + margin: -1.5rem !important +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important +} + +.m-n5 { + margin: -3rem !important +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important +} + +.m-auto { + margin: auto !important +} + +.mt-auto, +.my-auto { + margin-top: auto !important +} + +.mr-auto, +.mx-auto { + margin-right: auto !important +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important +} + +.ml-auto, +.mx-auto { + margin-left: auto !important +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important + } + .m-sm-1 { + margin: 0.25rem !important + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important + } + .m-sm-2 { + margin: 0.5rem !important + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important + } + .m-sm-3 { + margin: 1rem !important + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important + } + .m-sm-4 { + margin: 1.5rem !important + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important + } + .m-sm-5 { + margin: 3rem !important + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important + } + .p-sm-0 { + padding: 0 !important + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important + } + .p-sm-1 { + padding: 0.25rem !important + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important + } + .p-sm-2 { + padding: 0.5rem !important + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important + } + .p-sm-3 { + padding: 1rem !important + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important + } + .p-sm-4 { + padding: 1.5rem !important + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important + } + .p-sm-5 { + padding: 3rem !important + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important + } + .m-sm-n1 { + margin: -0.25rem !important + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important + } + .m-sm-n2 { + margin: -0.5rem !important + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important + } + .m-sm-n3 { + margin: -1rem !important + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important + } + .m-sm-n4 { + margin: -1.5rem !important + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important + } + .m-sm-n5 { + margin: -3rem !important + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important + } + .m-sm-auto { + margin: auto !important + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important + } + .m-md-1 { + margin: 0.25rem !important + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important + } + .m-md-2 { + margin: 0.5rem !important + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important + } + .m-md-3 { + margin: 1rem !important + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important + } + .m-md-4 { + margin: 1.5rem !important + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important + } + .m-md-5 { + margin: 3rem !important + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important + } + .p-md-0 { + padding: 0 !important + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important + } + .p-md-1 { + padding: 0.25rem !important + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important + } + .p-md-2 { + padding: 0.5rem !important + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important + } + .p-md-3 { + padding: 1rem !important + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important + } + .p-md-4 { + padding: 1.5rem !important + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important + } + .p-md-5 { + padding: 3rem !important + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important + } + .m-md-n1 { + margin: -0.25rem !important + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important + } + .m-md-n2 { + margin: -0.5rem !important + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important + } + .m-md-n3 { + margin: -1rem !important + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important + } + .m-md-n4 { + margin: -1.5rem !important + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important + } + .m-md-n5 { + margin: -3rem !important + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important + } + .m-md-auto { + margin: auto !important + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important + } + .m-lg-1 { + margin: 0.25rem !important + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important + } + .m-lg-2 { + margin: 0.5rem !important + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important + } + .m-lg-3 { + margin: 1rem !important + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important + } + .m-lg-4 { + margin: 1.5rem !important + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important + } + .m-lg-5 { + margin: 3rem !important + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important + } + .p-lg-0 { + padding: 0 !important + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important + } + .p-lg-1 { + padding: 0.25rem !important + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important + } + .p-lg-2 { + padding: 0.5rem !important + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important + } + .p-lg-3 { + padding: 1rem !important + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important + } + .p-lg-4 { + padding: 1.5rem !important + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important + } + .p-lg-5 { + padding: 3rem !important + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important + } + .m-lg-n1 { + margin: -0.25rem !important + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important + } + .m-lg-n2 { + margin: -0.5rem !important + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important + } + .m-lg-n3 { + margin: -1rem !important + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important + } + .m-lg-n4 { + margin: -1.5rem !important + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important + } + .m-lg-n5 { + margin: -3rem !important + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important + } + .m-lg-auto { + margin: auto !important + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important + } + .m-xl-1 { + margin: 0.25rem !important + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important + } + .m-xl-2 { + margin: 0.5rem !important + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important + } + .m-xl-3 { + margin: 1rem !important + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important + } + .m-xl-4 { + margin: 1.5rem !important + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important + } + .m-xl-5 { + margin: 3rem !important + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important + } + .p-xl-0 { + padding: 0 !important + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important + } + .p-xl-1 { + padding: 0.25rem !important + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important + } + .p-xl-2 { + padding: 0.5rem !important + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important + } + .p-xl-3 { + padding: 1rem !important + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important + } + .p-xl-4 { + padding: 1.5rem !important + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important + } + .p-xl-5 { + padding: 3rem !important + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important + } + .m-xl-n1 { + margin: -0.25rem !important + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important + } + .m-xl-n2 { + margin: -0.5rem !important + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important + } + .m-xl-n3 { + margin: -1rem !important + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important + } + .m-xl-n4 { + margin: -1.5rem !important + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important + } + .m-xl-n5 { + margin: -3rem !important + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important + } + .m-xl-auto { + margin: auto !important + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important + } +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important +} + +.text-justify { + text-align: justify !important +} + +.text-wrap { + white-space: normal !important +} + +.text-nowrap { + white-space: nowrap !important +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +.text-left { + text-align: left !important +} + +.text-right { + text-align: right !important +} + +.text-center { + text-align: center !important +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important + } + .text-sm-right { + text-align: right !important + } + .text-sm-center { + text-align: center !important + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important + } + .text-md-right { + text-align: right !important + } + .text-md-center { + text-align: center !important + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important + } + .text-lg-right { + text-align: right !important + } + .text-lg-center { + text-align: center !important + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important + } + .text-xl-right { + text-align: right !important + } + .text-xl-center { + text-align: center !important + } +} + +.text-lowercase { + text-transform: lowercase !important +} + +.text-uppercase { + text-transform: uppercase !important +} + +.text-capitalize { + text-transform: capitalize !important +} + +.font-weight-light { + font-weight: 300 !important +} + +.font-weight-lighter { + font-weight: lighter !important +} + +.font-weight-normal { + font-weight: 400 !important +} + +.font-weight-bold { + font-weight: 700 !important +} + +.font-weight-bolder { + font-weight: bolder !important +} + +.font-italic { + font-style: italic !important +} + +.text-white { + color: #fff !important +} + +.text-primary { + color: #2A9FD6 !important +} + +a.text-primary:hover, +a.text-primary:focus { + color: #1d7097 !important +} + +.text-secondary { + color: #555 !important +} + +a.text-secondary:hover, +a.text-secondary:focus { + color: #2f2f2f !important +} + +.text-success { + color: #77B300 !important +} + +a.text-success:hover, +a.text-success:focus { + color: #446700 !important +} + +.text-info { + color: #9933CC !important +} + +a.text-info:hover, +a.text-info:focus { + color: #6b248f !important +} + +.text-warning { + color: #FF8800 !important +} + +a.text-warning:hover, +a.text-warning:focus { + color: #b35f00 !important +} + +.text-danger { + color: #CC0000 !important +} + +a.text-danger:hover, +a.text-danger:focus { + color: maroon !important +} + +.text-light { + color: #222 !important +} + +a.text-light:hover, +a.text-light:focus { + color: black !important +} + +.text-dark { + color: #ADAFAE !important +} + +a.text-dark:hover, +a.text-dark:focus { + color: #868988 !important +} + +.text-body { + color: #ADAFAE !important +} + +.text-muted { + color: #555 !important +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0 +} + +.text-decoration-none { + text-decoration: none !important +} + +.text-break { + word-break: break-word !important; + overflow-wrap: break-word !important +} + +.text-reset { + color: inherit !important +} + +.visible { + visibility: visible !important +} + +.invisible { + visibility: hidden !important +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important + } + a:not(.btn) { + text-decoration: underline + } + abbr[title]::after { + content: " (" attr(title) ")" + } + pre { + white-space: pre-wrap !important + } + pre, + blockquote { + border: 1px solid #888; + page-break-inside: avoid + } + thead { + display: table-header-group + } + tr, + img { + page-break-inside: avoid + } + p, + h2, + h3 { + orphans: 3; + widows: 3 + } + h2, + h3 { + page-break-after: avoid + } + @page { + size: a3 + } + body { + min-width: 992px !important + } + .container { + min-width: 992px !important + } + .navbar { + display: none + } + .badge { + 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 #dee2e6 !important + } + .table-dark { + color: inherit + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody+tbody { + border-color: #282828 + } + .table .thead-dark th { + color: inherit; + border-color: #282828 + } +} + +.navbar.bg-primary { + border: 1px solid #282828 +} + +.navbar.bg-dark { + background-color: #060606 !important; + border: 1px solid #282828 +} + +.navbar.bg-light { + background-color: #888 !important +} + +.navbar.fixed-top { + border-width: 0 0 1px 0 +} + +.navbar.fixed-bottom { + border-width: 1px 0 0 0 +} + +.btn-primary { + background-color: #2A9FD6 +} + +.btn-secondary { + background-color: #555 +} + +.btn-success { + background-color: #77B300 +} + +.btn-info { + background-color: #9933CC +} + +.btn-warning { + background-color: #FF8800 +} + +.btn-danger { + background-color: #CC0000 +} + +.btn-light { + background-color: #222 +} + +.btn-dark { + background-color: #ADAFAE +} + +table { + color: #fff +} + +.table-primary, +.table-primary>th, +.table-primary>td { + background-color: #2A9FD6 +} + +.table-secondary, +.table-secondary>th, +.table-secondary>td { + background-color: #555 +} + +.table-light, +.table-light>th, +.table-light>td { + background-color: #222 +} + +.table-dark, +.table-dark>th, +.table-dark>td { + background-color: #ADAFAE +} + +.table-success, +.table-success>th, +.table-success>td { + background-color: #77B300 +} + +.table-info, +.table-info>th, +.table-info>td { + background-color: #9933CC +} + +.table-danger, +.table-danger>th, +.table-danger>td { + background-color: #CC0000 +} + +.table-warning, +.table-warning>th, +.table-warning>td { + background-color: #FF8800 +} + +.table-active, +.table-active>th, +.table-active>td { + background-color: rgba(255, 255, 255, 0.075) +} + +.table-hover .table-primary:hover, +.table-hover .table-primary:hover>th, +.table-hover .table-primary:hover>td { + background-color: #258fc1 +} + +.table-hover .table-secondary:hover, +.table-hover .table-secondary:hover>th, +.table-hover .table-secondary:hover>td { + background-color: #484848 +} + +.table-hover .table-light:hover, +.table-hover .table-light:hover>th, +.table-hover .table-light:hover>td { + background-color: #151515 +} + +.table-hover .table-dark:hover, +.table-hover .table-dark:hover>th, +.table-hover .table-dark:hover>td { + background-color: #a0a2a1 +} + +.table-hover .table-success:hover, +.table-hover .table-success:hover>th, +.table-hover .table-success:hover>td { + background-color: #669a00 +} + +.table-hover .table-info:hover, +.table-hover .table-info:hover>th, +.table-hover .table-info:hover>td { + background-color: #8a2eb8 +} + +.table-hover .table-danger:hover, +.table-hover .table-danger:hover>th, +.table-hover .table-danger:hover>td { + background-color: #b30000 +} + +.table-hover .table-warning:hover, +.table-hover .table-warning:hover>th, +.table-hover .table-warning:hover>td { + background-color: #e67a00 +} + +.table-hover .table-active:hover, +.table-hover .table-active:hover>th, +.table-hover .table-active:hover>td { + background-color: rgba(255, 255, 255, 0.075) +} + +legend { + color: #fff +} + +.form-control { + background-clip: border-box +} + +.form-control:disabled, +.form-control[readonly] { + border-color: transparent +} + +.nav-tabs .nav-link, +.nav-pills .nav-link { + color: #fff +} + +.nav-tabs .nav-link:hover, +.nav-pills .nav-link:hover { + background-color: #282828 +} + +.nav-tabs .nav-link.disabled, +.nav-tabs .nav-link.disabled:hover, +.nav-pills .nav-link.disabled, +.nav-pills .nav-link.disabled:hover { + background-color: transparent; + color: #555 +} + +.nav-tabs .nav-link.active, +.nav-pills .nav-link.active { + background-color: #2A9FD6 +} + +.breadcrumb a { + color: #fff +} + +.pagination a:hover { + text-decoration: none +} + +.alert { + border: none; + color: #fff +} + +.alert a, +.alert .alert-link { + color: #fff; + text-decoration: underline +} + +.alert-primary { + background-color: #2A9FD6 +} + +.alert-secondary { + background-color: #555 +} + +.alert-success { + background-color: #77B300 +} + +.alert-info { + background-color: #9933CC +} + +.alert-warning { + background-color: #FF8800 +} + +.alert-danger { + background-color: #CC0000 +} + +.alert-light { + background-color: #222 +} + +.alert-dark { + background-color: #ADAFAE +} + +.badge-warning { + color: #fff +} + +.close { + opacity: 0.6 +} + +.close:hover { + opacity: 1 +} + +.list-group-item:hover { + background-color: #282828; + color: #fff +} + +.list-group-item-action { + color: #888 +} + +.list-group-item-action .list-group-item-heading { + color: #888 +} + +.list-group-item:hover .list-group-item-heading { + color: #fff +} + +.card h1, +.card h2, +.card h3, +.card h4, +.card h5, +.card h6, +.list-group-item h1, +.list-group-item h2, +.list-group-item h3, +.list-group-item h4, +.list-group-item h5, +.list-group-item h6 { + color: inherit +} + +.popover-title { + border-bottom: none +} \ No newline at end of file diff --git a/site/css/font-awesome.min.css b/site/css/font-awesome.min.css new file mode 100644 index 0000000..540440c --- /dev/null +++ b/site/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/site/errorcodes/index.html b/site/errorcodes/index.html new file mode 100644 index 0000000..4abd469 --- /dev/null +++ b/site/errorcodes/index.html @@ -0,0 +1,784 @@ + + + + + + + + + Error Codes - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

BEMANI Error Codes

+
+

Before reading:

+

This section contains various gamecode errors that a user may run across. There is an innumerable amount of these and I sometimes wonder if it's truly possible to have them all listed. +Nonetheless, dozens, if not hundreds are currently missing. This list is a massive work in progress and will be updated with time.

+

Furthermore, not every solution listed can be the definitive solution to your error, sometimes various odd software and hardware nuances occur to create yet unseen issues. +I encourage you to be vocal about your solutions so that they can be added to the guide by contacting me.

+
+

Universal Error Codes

+

5-0000-0000

+
+

This error can appear across any game, it's a generic critical error with several possible solutions.

+

It is usually caused by network adapters that are enabled, other than the primary one used for network service. Try to disable some network adapters in Windows Device Manager, including hidden adapters.

+

It can also be caused by game files being set to read only, especially the dev folder. Uncheck read only property in file explorer for all game files.

+
+

5-2000-0000

+
+

This error can appear across any game, it's a standard network error with several possible solutions.

+

First, make sure you have correctly entered your network service's URL properly with the -url parameter, that your internet connection is fine, and that the service is not down. +Also make sure you have correctly entered your PCBID with the -p parameter.

+

One other thing to check is that the data is supported by the service, and that the datecode used by the game +is not invalid. Don't modify things if you don't need to! If the data is from a clean, trusted source, then this is extremely unlikely to be the cause.

+
+

5-2002-0915

+
+

This error can appear across any game, it's a standard network error with several possible solutions.

+

First, make sure you have correctly entered your network service's URL properly with the -url parameter, that your internet connection is fine, and that the service is not down. +Also make sure you have correctly entered your PCBID with the -p parameter.

+

One other thing to check is that the data is supported by the service, and that the datecode used by the game +is not invalid. Don't modify things if you don't need to! If the data is from a clean, trusted source, then this is extremely unlikely to be the cause.

+
+

5-2600-0000

+
+

This error can appear across any game, it's a standard network error with several possible solutions.

+

First, make sure you have correctly entered your network service's URL properly with the -url parameter, that your internet connection is fine, and that the service is not down. +Also make sure you have correctly entered your PCBID with the -p parameter.

+

One other thing to check is that the data is supported by the service, and that the datecode used by the game +is not invalid. Don't modify things if you don't need to! If the data is from a clean, trusted source, then this is extremely unlikely to be the cause.

+
+

 

+

IIDX Error Codes

+

5-1500-0002

+
+

SOUND DATA CREATE ERROR

+

This error occured from a corrupted installation. If your data came from a trusted source and you're having this issue, consider redownloading the files and making sure your installation was done properly. Or, perhaps your hard drive is failing.

+
+

5-1503-0004

+
+

USBIO ERROR (NO ANSWER...)

+

This error occurs when the game times out trying to communicate with the I/O board.

+

When using tools, this typically happens because I/O emulation in tools takes too long, which can be caused by long-running background services on your computer. Usual offenders are: file-syncing software (GDrive, OneDrive, back up service, etc), anti-virus / malware scans, Windows Updates, or possibly bad hardware. Try to see if you can run tools at elevated process priority (SpiceTools already does this, but you can also try -realtime as last resort).

+

On a real cabinet this would typically be a hardware error with the I/O board. Check cable connection and the power supply to the I/O board.

+
+

5-1505-0001

+
+

SSD DATA ERROR

+

This error occurs when the data is horribly corrupt, incomplete, or modified incorrectly. Please redownload your data from a reliable source.

+
+

5-1503-0042

+
+

CAMERA DEVICE ERROR

+

This error occurs when camera devices are missing/not functional. To resolve either have two cameras connected to your machine or apply a hex edit for your game's specific version and date code to simply not have this error occur on startup. It can be bypassed by hitting the Test button so it is not a critical error.

+
+

5-1506-0001

+
+

CLOCK ERROR

+

This error occurs when the clock is not set. To resolve, set the CLOCK in the service menu by hitting SAVE AND EXIT inside of the menu.

+
+

 

+

Sound Voltex Error Codes

+

5-1506-0000

+
+

ACIO ERROR

+

A user had this error when they downloaded the game from an unreliable source, they redownloaded libacio.dll from a clean, trusted source and had no issues. If the error persists, consider redownloading the data from a reliable source entirely.

+
+

5-2009-0000

+
+

This error was seen on Sound Voltex Booth, a user had messed up their dll files. Thus, the solution would be to leave files unmodified and do not needlessly tamper. If your data came from a trusted source and you're having this issue, consider redownloading the files and making sure your installation was done properly.

+
+

 

+

Pop'n Error Codes

+
+

A user experienced this error every few minutes or so during play. If this issue occurs, make sure you have correctly inputted your chosen network's service URL and your PCBID correctly.

+
+

5-2002-2400

+
+

This error was seen on Pop'n Usaneko due to improper setup and bad parameter usage in SpiceTools, make sure to follow the first time setup and utilize the -url and -p parameters in SpiceTools +so that you're not needlessly risking making mistakes in modifying the game's files.

+
+

 

+

Jubeat Error Codes

+

5-2500-0000

+
+

BACKUP DATA ERROR

+

Follow the steps listed here

+
+

 

+

GITADORA Error Codes

+

5-1698-0000

+
+

This was seen in GITADORA Tri-Boost Re:EVOLVE. To resolve, uncheck the Read Only attribute on the following contents folders.

+
- \contents\data\product\aep_x64\
+- \contents\data\product\aep\
+
+

Also, remove the following files from these folders.

+
- battle_matching_3.bin
+- beargarden_3.bin
+- common_3.bin
+- custom_3.bin
+- entry_3.bin
+- game_combo_3.bin
+- game_common_3.bin
+- game_dm_3.bin
+- game_gf_3.bin
+- game_session.bin
+- home.bin
+- mission_result.bin
+- record_3.bin
+- select_music_3.bin
+- tab_3.bin
+- title_3.bin
+- warning_3.bin
+
+
+

5-1506-0000

+
+

Disable all the unused network adapters inside device manager (make sure to view the hidden ones as well and disable those too!)

+
+

5-2500-0001

+
+

BACKUP DATA ERROR

+

Follow the steps listed here

+
+

5-2501-0000

+
+

GROUP ID ERROR

+

The Group ID Error is caused when it finds another cab of the same kind (GF or DM) with the same Group ID on the network. In most cases for users, this means the computer is connected to BOTH Ethernet and Wi-fi so the game sees 2 instances of itself. Thus to resolve, make sure you do not have 2 devices on the same subnet like this by checking your connections accordingly.

+
+

 

+

NOSTALGIA Error Codes

+

5-1501-0000

+
+

This error was seen in NOSTALGIA Op. 2 when a user had a bad AVS config, make sure your data is from a reliable source and consider redownloading or replacing the file.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/externalresources/index.html b/site/externalresources/index.html new file mode 100644 index 0000000..c19caac --- /dev/null +++ b/site/externalresources/index.html @@ -0,0 +1,628 @@ + + + + + + + + + External Resources - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

External Resources

+
+

Before reading:

+

This section contains a variety of external resources outside of this website, some even submitted by users!

+

I'll try to keep this pertaining primarily to resources useful to home-play like the rest of the site.

+

It might get a bit messy with time, but that's half the fun!

+
+

General

+
+
    +
  • +

    Remywiki - Generalized BEMANI content wiki

    +
  • +
  • +

    GameRepair.info - Repository of arcade part repair & misc information

    +
  • +
  • +

    Cons&Stuff - Community resource for DIY controllers

    +
  • +
  • +

    BemaniPatcher - Drag and drop hex edit solution for a myriad of games

    +
  • +
+
+

IIDX

+
+ +
+

SDVX

+
+ +
+

GITADORA

+
+ +
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/extras/ascs/index.html b/site/extras/ascs/index.html new file mode 100644 index 0000000..2fe0f22 --- /dev/null +++ b/site/extras/ascs/index.html @@ -0,0 +1,875 @@ + + + + + + + + + Notes on the Most Common ASCs and Vendors - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Notes on the Most Common ASCs and Vendors

+
+

Before proceeding, please read:

+

This section is a compilation of several of the most popular ASCs (arcade-style controllers) along with their respective vendors. Alongside this, this guide includes any aspects worth noting from usage over the years to help potential buyers make an educated purchase. For the most part, this section aims to inform buyers more of negatives and problems above all else, so expect the focus to be more negative as it's important to note all the potential problems one may come across with ownership over the years.

+

Lastly, certain bits will repeat across controller categories. Please treat each controller's section as its own individual list of noteworthy elements.

+
+

IIDX

+

DJ DAO FP7 EMP

+

+
+

This controller works really well, the spacing is accurate to the arcade between buttons and the turntable, obviously the turntable size is reduced which is often noticed as a minor nuisance to players that play both at home and on cabs.

+

One minor aspect that's appreciated are the feet of the controller, which hold up really well on all kinds of surfaces with a stable grip, alongside the fairly hefty weight of the controller it's rather unlikely it's going to budge even a little bit during play.

+

This controller is not without fault though, one of the first things to go is the turntable sticker in the middle, it starts to peel pretty much instantly for several people. While some people have kept it on despite the peeling, some have ended up scratching their pinky fairly significantly on it, so it's worth considering its removal or finding a better adhesive.

+

The rubberized turntable grip itself is also susceptible to peeling, but it's far more reliable, perhaps miscare or improper installations from Dao lead to problems sooner, but for many it will last several years without a problem.

+

Another concern is in only in having a START and EFFECT at the top of the controller. IIDX utilizes 3 buttons in menu navigation, namely START, EFFECT, and VEFX so the limited option is a bit troublesome. However, the solution to this problem DJ DAO utilizes is the ability for the EFFECT button to take multiple inputs as separate bindings. To simplify this further, enabling this option allows single, double, and triple taps of the EFFECT button in rapid succession to be 3 different bindings, alleviating the need for another button.

+

Unfortunately though, this does add latency to the button, it also doesn't feel too natural, and many owners use more responsive custom firmware over DJ DAO's firmware that, at the time of writing, doesn't support this multiselect feature anyways, meaning the problem is still present. Many users choose to upgrade from the default USB board to a custom one (Arduino, Arcin) since the button lights can't be controlled via software and it's only polling at the default 250hz. Of course that also means you can't use the original board's PS2 connector anymore.

+

One thing to note with the rubberized turntable grip, this controller gets gross. Dead skin will build up around the edges of the turntable itself on the metal and along the edges of the rubber grip. Regular cleaning is required.

+

All in all, this controller has a few minor problems but is often regarded as the best balance between price and performance, as it matches arcade play at a great price.

+
+

PHOENIXWAN

+

+
+

The Phoenixwan, sometimes jokingly referred to as the wang, or phoenixwang, is a rather odd controller. It fills a niche that wasn't needed (Gamo2's site was already selling 6 different IIDX controllers) but still manages to be the smallest full-sized beatmania controller offered on the site.

+

As expected, the spacing between the buttons and turntable is arcade accurate, and the turntable is full sized unlike the FP7. Moreover, 4 buttons are present for menu navigation this time around.

+

The controller is also very flashy, with a customizable turntable LED that emits 16 million different colors, turntable sensitivity adjustment, and an audio light mode that tries its best to "dance with the music" in fanciful fashion, it's a neat gimmick. Lastly for maximum portability, this controller is very light and even features wire storage at the bottom.

+

However, with the flashy style this controller brings it unfortunately takes a few steps backwards in other areas. One of the most perplexing areas are the feet, there's no other way to put it, some surfaces it's great and some it sucks. With the reduced weight, this controller will slide across some surfaces with ease leading to a really unpleasant experience. It would not be surprising if with improper play that the controller could be moved very easily by accident.

+

Onto one of the more defining features though, the turntable grip. Gamo2's site says it's made of liquid silicone and space aluminum. The grip is fantastic, it's incredibly grippy and a lot of fun to stop on a dime back and forth on your hand. But this material doesn't come without some faults unfortunately, it gets turned into a fingerprint magnet right out of the box, and some users have reported the grip wears off and becomes flat after heavy usage. One could also argue that making a controller trying to replicate an arcade experience (hence arcade-style) that it's a bit backwards to deviate away from the arcade experience as well, but that's more semantics than anything.

+

Lastly and most critically, a fair batch of buyers reported PCB problems where the board seemed to flat out die after just a few months. Apparently a firmware update can be pushed to work around some issues, but there's not much that's definitive as a solution in regards to this issue at the time of writing.

+

Overall, the Phoenixwan is probably the best option in terms of portability and style, it's a very flashy device and great to take over to a friend's for some fun. But, with it comes a heftier price tag that might not be worth it for people looking to simply enjoy the game. With some critical issues, this controller might just be style over substance.

+
+

YuanCon IIDX

+

+
+

YuanCon's IIDX controller looks rather plain, doesn't it? But the controller works really well, the spacing is of course accurate to arcade, and the turntable is full size as well. Obviously, it features 4 buttons for menu navigation too, which is incredibly convenient.

+

The cost is very reasonable too, by default it comes with dubious microswitches labeled "Chinese" on the site, it's important to note that if a buyer upgrades to Omron switches on the site, it's a bit cheaper than buying Omrons separately later down the line. The "Chinese" switches are definitely not recommended and feel bad.

+

This controller oddly uses an acrylic turntable as well, while it's a nice attempt it's somewhat disappointing overall. At the very least, it's fairly easy to modify the turntable and place something more proper such as an EMP mat on it for a better experience. Just note that the screws are not countersunk around the center of the turntable.

+

Some people may be dissatisfied that the turntable has no lights too, an obvious cost cutting decision.

+

The default buttons are typical cheap Chinese ones, these risk occasionally getting stuck around the enclosure's corners but it's less common than Chinese buttons for use on other games such as Pop'n and some users don't end up with any problems at all. Depending on a buyer's level of tolerance they may find these buttons fine or desperately yearn for an upgrade.

+

One big positive for many is the detachable USB cable, it uses just one USB port which is quite handy. This comes at some costs though. The biggest issue is the lack of PS2 support, the lights are also dimmer than Dao's offerings which utilize 2 USB ports.

+

Yuan's IIDX attempt is solid, but it's not without fault. Regardless, just about any buyer would be more than satisfied playing and enjoying the game on this controller regardless of the few minor faults it has.

+
+

IIDX Arcade Parts to Consider

+
+

IIDX controllers have a lot of options to choose from and it can be daunting, especially if you've never played before. I'll try to cover springs, microswitches, and buttons to the best of my ability.

+

I've also documented many of the parts that I talk about and where to buy them here

+
+
+
    +
  • +

    Buttons/Keys

    +

    The most commonly used buttons are Sanwa, Gersung, and DJ DAO/Yuan Chinese buttons.

    +

    I can't really speak for every arcade in Japan, but both in Japan and US almost all arcades use Sanwa buttons. The Samduck buttons are a Korean variant that can be found in Korean arcades, but are still superceded by Sanwa buttons. The DJ Dao/Yuancon buttons are cheap Chinese clones that feel less satisfying both in physical feedback and audio feedback. Some players find them servicable, but I ultimately recommend upgrading when possible. The travel distance is different on Dao buttons for example due to the inaccurate construction having a different height than official parts like Sanwa, so the feeling will be significantly different in using them.

    +
  • +
  • +

    Microswitches and Springs

    +

    If you buy the keys sepearately it's worth noting what spring and microswitch setups they come with:

    +
      +
    • Sanwa keys come with 100g springs and 100g Omron switches.
        +
      • Samduck keys come with 20g springs and 65g Gersung switches.
      • +
      • DJ DAO keys come with 40g springs and 20g Honeywell switches.
      • +
      +
    • +
    +

     

    +

    There are also many other cheap Chinese variants that I won't bother listing because I insist you do not play on them. Please stick to Omron or Gersung microswitches for an enjoyable play experience! The Honeywell microswitches for example are an incredibly cheap feeling switch that often breaks easily.

    +

    With this in mind, the most common switch and spring setups are 50g/20g, 50g/60g, and 50g/100g setups (microswitch listed first, then springs in this case). However, you will find arcades around the world using a myriad of setups.

    +

    By default for a new or inexperienced player, I would recommend a 50g/60g setup as it's a safe setup that won't require frequent maintenance, has a nice weighted feeling that will help build stamina, and isn't too light for charts with heavy amounts of jacks. That said, it ultimately comes down to user preference, with lighter setups running the risk of more maintenance, but being easier on one's hands especially for dense charts, and heavier setups being more sturdy, but easily tiring out one's hands, 100g/100g for example however, is too extreme for the grand majority of players and simply exhausting and painful to play on.

    +

    One thing worth noting is many tournaments in Japan have utilized a 25g/60g setup as well, with the heavy springs being beneficial for jacks, just as one example.

    +

    Your springs will also naturally lose resistance over time, so if you played at an arcade with a heavily worn setup I'm sure you'll find it feels very different to your brand new home setup even if you have the same weight ratings.

    +

    Experimentation is strongly recommended regardless as you become a more developed and experienced player. If you love the game, don't be afraid of traveling to try out different setups or dropping some more cash on parts to experiment.

    +
  • +
+
+

Sound Voltex

+

DJ DAO SVSE5

+

+
+

The SVSE5 is a pretty straightforward controller without much to worry about, the sizing is very compact while retaining proper arcade spacing between the knobs and buttons at a very reasonable price, most of the gripes with this controller will come based on what parts are used. It uses the same firmware/board as the SVRE9 and also lacks HID-controlled lights.

+

Dao's SDVX buttons are especially prone to sticking and getting stuck under their holders, notably more than their IIDX counterparts. Thankfully, this problem can be alleviated by sanding down the corners of the buttons but they still obviously do not feel as nice as Sanwa buttons and it requires taking apart the controller, which while simple, is a minor inconvenience.

+

The default encoders (listed as Knobs Structure on the site) are horrendous, there's no nice way to put it. Please avoid these at all costs if you wish to enjoy the game or upgrade to Copals ASAP. But, it's worth noting that paying the upgrade cost when buying your controller ($30 at the time of writing) is cheaper than buying a set of Copal encoders separately (around $60+).

+

Dao's SVSE5 is honestly somewhat odd to write on solely because there's not much to say, it's about as standard as it gets. The SVSE5 functions well and when avoiding the default encoders buyers will end up with a controller that's able to be enjoyed just as well as any other with minimal problems.

+
+

YuanCon SDVX

+

+
+

YuanCon's SDVX controller has quickly become the most popular option for Sound Voltex players and is inarguably their best controller yet. The controller feels great in your hands thanks to its light weight and good sizing. Like the SVSE5, it matches arcade dimensions perfectly as well, so anyone can transfer their skills from home to the arcade 1 to 1. One other noteworthy convenience is the detachable USB cable, making transportation and storage a little more enjoyable.

+

One of aspects people comment on a fair bit is the metal casing, after years of Dao's tacky glossy acrylic designs a lot of buyers have welcomed this addition with open arms. Yuan's SDVX controller is as durable and sturdy as any other out there.

+

Yuan's stock SDVX buttons suffer the same problems as Dao's and are especially prone to sticking and getting stuck under their holders. While some people don't end up with any issues at all, others do, it's a mixed bag presumably based on luck on how the plastic mold came out. Thankfully, this problem can be alleviated by sanding down the corners of the buttons but they still obviously do not feel as nice as Sanwa buttons and it requires taking apart the controller, which while simple, is a minor inconvenience.

+

The stock encoders on this controller are interesting to note too, they're a surprisingly decent option to use, they feel very smooth and function well during play, but it's worth noting not everyone likes how they feel. Of course they don't feel like the arcade experience, but they're more than suitable for enjoyment.

+

Overall, YuanCon's SDVX is a very enticing option for many, it's a great controller with minimal issues. There's little negative outside of some minor gripes to say, and at this price range, buyers would be hard pressed to find a controller that's definitively superior.

+
+

DJ DAO SVRE9

+

+
+

The crown jewel for many Sound Voltex players, the SVRE9 is designed to match the dimensions of an arcade cab as best as possible, providing both maximum luxury and performance. This controller includes arcade knobs out of the box, offering no alternative and is no doubt a part of the heftier price tag.

+

This controller is a monster, both in size and weight, it is probably one of the most inconvenient Sound Voltex controllers to transport but even still it's not honestly not that bad, make sure you have enough space to safely place the controller on any surface before playing. One positive about the greater size and weight is that there's almost no risk of it moving around when accidentally bumped.

+

Dao uses a custom harness for the arcade knobs to connect with the encoders, it's an odd contraption but it works well enough. However, it is worth noting that the encoders themselves have a plastic shaft, if tightening the inner screws holding them in place make sure to not tighten them too much as the screws will end up actually drilling into the plastic and destroying the encoder beyond repair.

+

The knobs unfortunately risk shipping damage wherein the knob will have a grinding feeling when being rotated, it's extremely unpleasant but thankfully solution is simple, it requires lubricating the inner parts of the knobs by taking apart a bit of the controller, a minor inconvenience.

+

Dao's SDVX buttons are especially prone to sticking and getting stuck under their holders, notably more than their IIDX counterparts. Thankfully, this problem can be alleviated by sanding down the corners of the buttons but they still obviously do not feel as nice as Sanwa buttons and it requires taking apart the controller, which while simple, is a minor inconvenience. One could argue that in choosing to purchase a luxury product like this, it's questionable to skimp on button quality however.

+

Another thing to note is that the default firmware registers itself as keyboard (buttons) and mouse (x/y for knob movement. This, the fact that it doesn't support HID-controlled lights and that it polls at 250hz is enough for many to replace it's internal control board with a custom one like the Arcin or Arduino.

+

Overall, this controller is widely considered the "best" option solely based on the luxury factor alone. However, the cheaper options provide the same arcade-exact dimensions, parts, and experience. It's a fantastic controller, but not for those with tighter wallets as the vastly increased cost ultimately provides nothing different in terms of play experience.

+
+

SDVX Arcade Parts to Consider

+
+

Sound Voltex controllers have a lot of options to choose from and it can be daunting, especially if you've never played before. I'll try to cover springs, microswitches, and encoders to the best of my ability.

+

I've also documented many of the parts that I talk about and where to buy them here

+
+
+
    +
  • +

    Springs and Microswitches

    +

    For springs and microswitches, most vendor options consist of 20g, 60g, and 100g springs. Alongside 25g, 50g, and 100g microswitches. Cabs around the world use a variety of setups but two of the most common setups are 20g springs with 100g microswitches, and 100g springs with 100g microswitches. Commonly referenced as 20g/100g and 100g/100g, though sometimes interchangably used as 100g/20g for example. (there's really no definitive order and people put the spring weight or switch weight first on a whim constantly.)

    +

    There are also various manufacturers of these parts, arcades use Sanwa parts. Some Korean arcades use Gersung Samduck parts however, a good Korean-made alternative. There are also various Chinese parts of equally garbage quality. If you order a controller with the stock Chinese buttons, they are including the cheap Chinese springs. These are fine, it's only a spring after all! But for the microswitches, please never use Chinese microswitches, they are of garbage quality and make playing the game horrendously unfun, I am adamant you do not believe the lies of those who say otherwise.

    +

    An incredibly light setup such as 20g/25g can result in an extremely dissatisfying feedback on button press, making it hard to get the feeling of actuation on button press. Not many people go for this setup.

    +

    Lots of home users default to 50g/60g setups for their first time around, it's a nice balance until they become more comfortable with the game and begin to branch out a bit more and figure out their preferences.

    +

    Furthermore, lots of Round1 arcade locations in the US use 20g spring 100g microswitch setups, so if you played at one of those, you probably felt this setting. Just keep in mind that as the springs/switches wear down the feeling will be a little different than a fresh set!

    +
  • +
  • +

    Encoders

    +

    As for the encoders, they're the things that turn with the knob internally, they dictate the feeling of the rotation. The default encoders on most of the Dao controllers is the Alps 801 set, the Chinese default ones. These are beyond unplayable, with a clicky angle-snapping experience over a smooth twist. The grand majority of players opt for copal encoders, which are both incredibly smooth and sensitive. However, they are prone to breaking within about a year of moderate player.

    +

    The YuanCon controllers use encoders that many feel are superior to copals both in feeling and durability, so they're a very worthwhile option as well.

    +

    Lastly, the arcade encoders are extremely durable, reliable, and stiffer to turn than the other options, they're also more expensive as well.

    +

    I've documented many of the parts and where to buy them here

    +
  • +
+
+

Pop'n Music

+

DJ DAO POP ASC

+

+
+

Gamo2's Pop'n offering is a controller that results in a project for a lot of players. While it is a playable experience, for many, it will be dissatisfying out of the box. However, with a bit of knowledge one can turn it into a fantastic controller.

+

One of the biggest issues with Pop'n controllers are the buttons. The Chinese default buttons are simply unacceptable, these things stick like crazy and getting Samduck buttons, a Korean alternative, is considered almost mandatory for a lot of players. It is possible to sand down the stock Chinese Dao buttons or get lucky and only have a few with problems, but the odds are heavily stacked against the buyer's favor here. The primary problem here and why Sanwas are not offered are their extreme cost, at around $40 a button it's simply out of reach for many. At the very least, one nice addition is that by default the controller comes with Omron microswitches.

+

Dao's controller design here also isn't the best, it's big and bulky which has its pros and cons depending on preferences, but unlike Gamo2's other options providing magnetic bottoms that are easy to remove, the Pop'n ASC has 20 screws to gain access to the internals. While buyers hopefully won't need to be digging inside all that often, it's still a tedious process.

+

This controller is notably loud too, any form of play is going to generate substantial noise that will annoy others in your household. Pop'n is naturally a loud game, but many attempts can be made to alleviate some of the noise. Some people play with a towel over the controller which is called toweling, but in the more desperate cases some people have filled the internals to brim with cotton balls and other various materials.

+

Many users choose to upgrade from the default USB board to a custom one (Arduino, Arcin) since the button lights can't be controlled via software and it's only polling at the default 250hz. Of course that also means you can't use the original board's PS2 connector anymore.

+

The pricing on this controller is a bit rough for many, due to the size and weight the shipping charges can be a significant problem notably more than other game's options as well, at least US buyers benefit from free shipping when it's in stock at the US storehouse. This controller is a good option, but it requires a bit of time, work, and funds to be truly great.

+
+

YuanCon Pop'n

+

+
+

YuanCon's Pop'n controller arrived on the scene many years after Dao's controller and seemingly has managed to address some of the more notable difficulties of its competitor at an expected competitive price point and with a sleek design.

+

Right away it should be noted that this controller is a significantly smaller size than the Dao while retaining the expected arcade spacing between buttons. It's also in a metal shell for added durability yet it has notably less weight than the Dao.

+

One big positive for many is the detachable USB cable, it uses just one USB port which is quite handy. This comes at some costs though. The biggest issue is the lack of PS2 support, the lights are also dimmer than Dao's offerings which utilize 2 USB ports. Like it's competitor, it also doesn't seem to support HID-controlled button lights currently.

+

One of the biggest issues with Pop'n controllers are the buttons. Yuan's stock Chinese buttons are notably better than Dao's, but Samduck buttons, a Korean alternative, are still preferred as the stock Chinese buttons don't always feel satisfying depending on preferences. Sanwa buttons are incredibly expensive at around $40 a pop for Pop'n controllers, so they're simply out of the question for many players.

+

It's also worth noting that this controller comes with Chinese microswitches, which is a disappointment. Many players vastly prefer Omron microswitches over the Chinese clones.

+

This controller is notably loud too, any form of play is going to generate substantial noise that will annoy others in your household. Pop'n is naturally a loud game and this applies to any controller, but many attempts can be made to alleviate some of the noise. Some people play with a towel over the controller which is called toweling, but in the more desperate cases some people have filled the internals to brim with cotton balls and other various materials.

+

Yuan's Pop'n controller and its pricing is very good, perhaps due to the known dissatisfaction with Chinese Pop'n buttons, the controller is offered to come with no buttons and switches to save further on cost, making it an extremely enticing option for anyone that would rather buy their buttons and switches separately. Compared to alternatives, the pricing on this Pop'n ASC is best in class by a significant margin and it functions just as well as any other out there.

+
+

jubeat

+

DJ DAO FB9

+

+
+

Gamo2's jubeat controller is a very fun contraption, buyers actually slide their own monitor under it in order to play. While neat, the pricing on this thing isn't for the faint of heart and unfortunately it doesn't come without some problems.

+

Right away the need to buy your own monitor separately should be addressed, as it adds to the already high cost and the requirements for the monitor are somewhat specific as well, further complicating things.

+

Dao's jubeat board is also laughably bad and skilled players notice difficulties with timing and accuracy issues compared to a cab, many FB9 owners actually swap out the board for a P4IO alternative that matches arcade play far better for a more accurate and enjoyable experience. The biggest difference is in how multiple buttons are pressed so the issue is less prominent and earlier stages in the game.

+

The rubbers for the buttons are also less than desirable, with a gummy and dissatisfying feeling that's prompted many to switch. Zhousensor provides better replacements (resold by YubiParts for US and international buyers) and official ones can be bought on sites like Yahoo Auctions Japan for a reasonable price.

+

The controller can also slide around a bit on some less than desirable surfaces and with inexperienced play, creating a need to readjust it fairly often after songs.

+

Dao's buttons also have a slight rainbow effect going on around the edges inside the plastic on certain screens, some people may find it moderately distracting to see.

+

Gamo2's jubeat offering isn't terrible, but it's not great either. The controller is for many people essentially a project that has a far greater pricetag than the notable one their site already lists. Buyers can end up going a few hundred over the controller's individual price just to get the controller to feel like a truly enjoyable experience. With the problems listed above, it's hard to fully recommend it. But ultimately, options are scarce for jubeat players.

+
+

DDR

+

StepManiaX Stage

+

+
+

Dance games have the luxury of many pads functioning the same across a wide variety of games so while it's not specifically for DDR, this is simply the apex beyond buying your own arcade cab. At an extreme price tag, Kyle Ward spares no expense to create the ultimate controller. It's even hard to label this thing as a true ASC, as it's not styled like an arcade controller, it IS one!

+

Getting into the important details though, a couple of changes on the latest model feature a new sleek design, superior FSR sensors that help to minimalize maintenance, and a fleet of sleek LED customization to really help a buyer individual their product and make it look and feel like theirs.

+

There's really only two "problems" present. Firstly, the cost, it's a premium and then some. However, the experience is also the best of any option short of owning a cab or official arcade pads. Yet even then, there's a strong argument to be had that the newer technology present trumps some of the dated arcade parts and design.

+

Second, the weight. While the pad is on wheels for easy movement the listed weight on the side is 220 pounds, getting the pad up and down staircases won't be fun.

+

Purists might argue using the StepManiaX Stage on DDR isn't an authentic experience without brackets and no doubt the feeling is slightly different as well with the different sensors. But many prominent players prefer bracketless pads anyways and consider the design outdated. FSRs are undoubtedly superior technology as well.

+

Overall, it's borderline impossible to find fault with the StepManiaX Stage beyond purist nitpicking, the controller is is simply the best. An entire separate page could be written on the difficulties DDR ASCs over the years have had with numerous disasters in regards of shipping challenges and historically bad controllers to the point that this is the best option short of building your own pad, buying a cab, or buying pads off a cab. Yet even then, the experience might be found superior here.

+
+

L-Tek pads (AKA Polish Dance Pads)

+

+
+

In terms of functionality, these pads are totally fine for beginner to intermediate play. Compared to the pads listed above they are obviously more "home grown" feeling, but they are perfectly functional and with regular maintenance will carry you well into the DDR 15/ITG 12 range before needing to think about modifications.

+

Pads are availble in an array of configurations (4 panel or 5 panel variants are available) and prices, they have recently added a pad that has a bar pre installed and also offer it seperate if you would like to add it to an exsisting pad.

+

In terms of pricing, they are relatively affordable coming in at 184.58USD+shipping.

+

All in all, I'd say they are a totally acceptable pad for someone wanting to get back into the game or starting out and wanting something that will last with little upkeep.

+
+

Vendors

+

+

Gamo2

+

 

+
+ +

Gamo2 has been around for a rather long time and is still one of, if not the most popular choice for people looking to buy an ASC. Dao sells a wide variety of controllers and occasionally squeezes out a new one here and there.

+

Buyers can expect their controllers to arrive in secure and snug packaging, shipping time varies but is often prompt. Alongside this, Gamo2's shipping is incredibly expensive, they only ship with EMS and charge a premium for it, it's not fun. However, Gamo2 provides a US storehouse for buyers in the US to enjoy free shipping and get packages sooner as well. Keep an eye on their social media as the US storehouse offerings only happen a few times a year and sell out quick!

+

Some buyers have noted lengthy delays when buying from Gamo2 so it's not all good news, seemingly randomly as well without any communication too. It's worth checking if there's any Chinese holidays going on or coming up before making a purchase, as they will certainly add to the wait. Most people might be surprised how many of those holidays seem to arise at just the worst time.

+

Gamo2's in-house buttons flat out suck across every controller, these buttons are cheapo Chinese knock offs of Sanwa buttons and it shows. Depending on a buyer's level of tolerance they may find these buttons fine or desperately yearn for an upgrade. Sanwa buttons may seem overpriced, but they are well worth the investment for those looking for arcade accuracy. Sound Voltex and Pop'n Music Dao buttons are especially prone to getting stuck within the controller.

+

Gamo2 also provides Honeywell switches by default while charging additional for Omron switches. Sadly, Honeywell switches are laughably bad compared to Omron and the almost unanimous consensus is to not even bother with Honeywell switches, they are far too sensitive and break far too easily. Upgrading to Omron switches should be an immediate decision for anyone unable to buy them right away alongside their controller, or simply holding out until the upgrade can be included with the purchase, it's that extreme of a difference.

+

Finally, Gamo2's tech support is good. Dao's English isn't the best, but he is very patient and understanding, willing to work with buyers on almost any issue or question they could have.

+
+

+

YuanCon

+

 

+
+ +

YuanCon has grown immensely in popularity in just a short amount of time, if Gamo2 is no longer on top, then look to YuanCon as they self-report they're currently ranked first in Chinese sales! YuanCon's approach so far has been fantastic communication and utilizing their Discord server and Twitter to get their name out there as much as possible, even partnering with prominent rhythm game players.

+

Buyers can expect their controllers to arrive within a moderate timeframe and in fancy Yuan-branded packaging that's more than suitable. On top of this, the pricing is extremely competitive and shipping prices are more fair than Gamo2. With this however, comes a lack of availability. Controllers often go out of stock so it's important to keep up with when pre-orders and restocks are going up.

+

Default Yuan buttons are the typical cheap Chinese buttons that are not ideal for play, some users report less trouble with the buttons than Dao's default buttons, but Sanwas are always preferable. Yuan thankfully doesn't even bother with Honeywell switches, only offering Omron microswitches instead, a welcomed decision.

+

Perhaps due to inexperience or quality control issues, there has been a notable minority of people with issues that have to be acknowledged below.

+

Shipping times have varied widely, the grand majority of buyers get their packages promptly within 1-2 weeks, but there have been reports of some extreme cases well over 4+ weeks. This situation however was met promptly with an official statement from Yuan and his team. However, at the time of writing, I am aware of someone that has been waiting for their controller to ship for over 3 months.

+

Some controllers have also arrived damaged or with missing elements. One prominent example was a large number of broken panels prompting refunds and a manufacturing change.

+

Also worth noting that again at the time of writing, YuanCon's RGB offerings literally have LEDs that brown out and their engineer "does not want to add HID lighting." Both a comical and egregious negative.

+

It's worth noting that despite these negatives, Yuan and his team have made great efforts to stay very communicative and ensure that nobody ends up with a faulty product they're dissatisfied with, as shown in the above links. YuanCon's support and communication is top notch, and the future remains promising. Even if there's a small risk of initial hassle through slow shipping or quality control, buyers will ultimately end up with a fully functioning product that they can be satisfied with one way or another.

+
+

+

StepRevolution (StepManiaX)

+

 

+
+ +

Premium pads, spare parts and full cabinets that are designed to either play StepmaniaX or have other games run on them are for sale, there is official support for setting up a normal computer for use with stepmania or if you have the right configuration you can use Pump it up simulators with the cabinet aswell, and Kyle Ward is always very helpful for anyone who has questions!

+

Only downside is the pads/cabs sell out usually within minutes of them going on sale and the shipping time can be multiple months some times as they are done made to order. Buyers can expect their pads to arrive in secure pallet packaging and the few times things have arrived either damaged or non working, customer support has been excellent and issues are always resolved quickly.

+

American based company and every person who has purchased a pad or cabinet has been nothing short of ecstatic with it, if you have the money and don't mind waiting, this is the best option on the market, in or out of the arcade!

+
+

+

L-Tek

+

 

+
+ +

Pads are good starting points and most customers who've purchased them have been happy with them. Shipping is usually reasonably quick (upto a month depending on where in the world you are).

+

They offer a range of products, both 4-panel and 5-panel pads, acecssories (replacement panels, sensors, bar attachment) to suit most people's dance pad needs.

+

I have heard of cases of panels cracking under heavy use, but every case of this (I can recall one) has been resolved quickly and at no extra cost to the customer who had the pad.

+

If you're in the market for a dance pad, and don't want to spend SMX money or hunt down an old arcade cabinet, I'd say they're worth the money.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/extras/hexguide/index.html b/site/extras/hexguide/index.html new file mode 100644 index 0000000..8307367 --- /dev/null +++ b/site/extras/hexguide/index.html @@ -0,0 +1,592 @@ + + + + + + + + + Beginner Guide to Hex Editing - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Beginner's Guide to Hex Editing

+
+

Before reading:

+

This section is for users that have never hex edited their game before, if you already know how to do this, nothing here will be of any use to you.

+
+

Before Beginning

+
+

There's several ways to apply hex edits to games, for the sake of this guide we'll demonstrate the manual way of doing edits to games in the event that the sites/services that simplify the process ever go down.

+

We'll be using HxD to edit beatmania IIDX 25 CANNON BALLERS, the process is the same for any other game so this guide can work universally.

+

Here's what you'll need:

+
    +
  • Your favorite hex editor, such as HxD.
  • +
  • A clean copy of your desired BEMANI game.
  • +
  • A backup of your original .dll before editing in the event of any mistakes.
  • +
+
+

Getting Started

+
+

So after downloading HxD or your preferred editor and deciding on what hex edits you want to apply, it's time to load it up for the first time. If you're using HxD, you'll be greeted with the screen below.

+
+

+
+

Open up the appropriate .dll file inside HxD that you wish to edit, for the grand majority of hex edits, this is the main game file, such as bm2dx.dll, soundvoltex.dll, and so on. Pictured below, I've opened up bm2dx.dll inside of HxD.

+
+

+
+

Please note:

+

For demonstrative purposes, we're going to apply 1 edit to the game. The edit we'll be applying is EXCLUSIVE to this version of the game, meaning that it will not work on any other version of the game, nor any other games, because it's modifying specific addresses in memory that only apply to this specific version of the game.

+
+
+

The edit we've chosen to apply is Unlock All Songs and its edit is 0xB60B2: 74 10 -> 90 90 so to start in HxD we're going to hit Ctrl+G to open the Goto window. From here, we'll input the offset B60B2 inside the Offset section, as pictured, and hit OK.

+
+

+
+

Your cursor should be taken to the offset at the exact location you're ready to edit. As you can see, the numbers in front of you are 74 and 10 the same exact ones we need to replace! If they're not, it's likely you put in the wrong offset so be sure to double check.

+
+

+
+

From here, all we need to do is mouse over 74 10 and replace it with 90 90 you can do this by either manually typing 90 90 or by copy and pasting, it should look as it does below.

+
+

+
+

Once that's done, all you need to do is save the changes and repeat for every additional edit you want to do! The whole process is merely repeating by going to whichever offsets an edit requires and replacing the values in each location just as we did! Simple, right?

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/extras/parts/index.html b/site/extras/parts/index.html new file mode 100644 index 0000000..97f6bf3 --- /dev/null +++ b/site/extras/parts/index.html @@ -0,0 +1,1063 @@ + + + + + + + + + Arcade Parts List and Documentation - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Arcade Part Documentation

+
+

Before proceeding, please read:

+

This section is a list of various arcade part manufacturers with part model numbers and misc documentation concerning said parts as needed, alongside links on where to purchase parts from the most trusted locations (not every link to purchase will be included, there's too many parts sellers, only ones I've personally found reliable are listed.)

+

I'm not confident this will be all-encompassing of every part ever, but it will be sufficient for those purchasing arcade style controllers (ASCs) and those in need of maintenance for said controllers. I'm omitting things like 400g springs, or 10g microswitches because no one really uses these products for regular play, but they exist nonetheless!

+

One last thing, if there's for example, multiple model numbers of say, 25g microswitches, you can assume they have different internals and thus provide different feedback. I'm not aware of anyone qualified and experienced enough to give exact logistics on how these parts may feel different, so I've omitted any details and will simply specify what the most common vendors provide alongside these variants.

+
+
+

7/26/2020 IMPORTANT Notice:

+

Rakuten has switched to separate services, namely Rakuten Ichiba and Rakuten Global Express, they have provided an FAQ here. Essentially, some vendors will continue to offer international shipping, but the proxy service now exists for those that do not. If Sanwa Denshi does not ship to your region, simply sign up for their proxy service, or another of your choosing that is willing to provide for you.

+

Alongside this, Sanwa Denshi seemingly no longer provides the typical lamps in many of the old-model button types that has been custom for many years. Given I am unfamiliar with anyone currently using these new lamps in their controllers, at the time of writing, I will provide links to buttons with the lamp and lamp-less buttons. On some listings, they allow the option to select the LED voltage and on others, they do not.

+
    +
  • Just for reference:
      +
    • DJ DAO boards: 5V
    • +
    • YuanCon boards: 12V
    • +
    • Arcin: 5V (or 12V if you only hook up the negative side)
    • +
    +
  • +
+

So, if you're overly concerned as a new buyer, you can choose to buy lamps at a later date. I apologize for the inconvenience and current inability to provide more detailed information, and will be working to update this ASAP.

+

Lastly, I have to remove IST Mall (Korean seller) from many of the listings at this time because their Sanwa options seemingly have now begun to use the new-style connectors that are not compatible with provided connectors from existing ASC vendors. I apologize for this inconvenience, but feel free to buy this new style if you understand JST connectors and can wire things up with basic electronics skills.

+
+

IIDX Buttons

+

Sanwa

+ +
+

Square Menu/Option Buttons

+ +
+

Samduck

+
+

Rectangular Gameplay Keys

+
    +
  • CWB 405
      +
    • Comes with Gersung switches (45g) and springs (20-30N)
    • +
    • Does not come with lights but compatible with Dao lamps and ISTMall lamps.
    • +
    • Can use the same switches and springs as Sanwa OBSA-45UK buttons.
    • +
    • Where to buy: +
    • +
    +
  • +
+
+
+

Square Menu/Option Buttons

+
    +
  • CWB 406
      +
    • Does not come with lights but compatible with Dao lamps and ISTMall lamps.
    • +
    • Where to buy: +
    • +
    +
  • +
+
+

 

+

SDVX Buttons

+

Sanwa

+ + + +

Samduck

+
+

Rectangular FX Gameplay Buttons

+ +
+
+

Start Button

+ +
+

 

+

SDVX Encoders

+

Options

+
+

Copal Encoders

+ +
+
+

YuanCon's Encoders

+ +
+
+

Sensatec Encoders (Arcade)

+ +
+

 

+

Pop'n Buttons

+

Sanwa

+
+

Circular Dome Gameplay Buttons

+ +
+

Samduck

+
+

Circular Dome Gameplay Buttons

+
    +
  • CWB 401
      +
    • IST Mall incorrectly claims to ship these with 40N springs and 45g Gersung switches, but in reality the springs are much, much heavier (suspected to be 200-300N springs). Recommended to separately purchase springs and switches.
    • +
    • Where to buy: +
    • +
    +
  • +
+
+

 

+

Jubeat Rubbers

+

Options

+ +

 

+

Microswitches

+

Omron

+
+

25g Microswitches

+

+
+
+

50g Microswitches

+

+
+
+

100g Microswitches

+

+
+

Gersung

+
+

60g Microswitches

+
    +
  • GSM-V0303A06 +
  • +
+
+

 

+

Springs

+

Options

+
+

20g Springs

+ +
+
+

40g Springs

+ +
+
+

50g Springs

+ +
+
+

60g Springs

+ +
+
+

100g Springs

+ +
+

LED Lamps

+

Options

+
+

ISTMall lamps

+

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/extras/pollingrates/index.html b/site/extras/pollingrates/index.html new file mode 100644 index 0000000..a40d79e --- /dev/null +++ b/site/extras/pollingrates/index.html @@ -0,0 +1,627 @@ + + + + + + + + + List of Touchscreen Monitors and their Polling Rates - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

List of Touchscreen Monitors and their Polling Rates

+
+

Before reading:

+

This section contains a few touchscreen monitors tested by community members over the years and their respective polling rates. Please note that a polling rate is NOT THE REFRESH RATE of a monitor, but is the critical factor in determining how responsive a touchscreen is and is unfortunately something every major retailer omits from their product listings due to lack of consumer awareness.

+

At higher levels of gameplay, rapid button presses may fail to be acknowledged by touchscreen monitors with a low polling rate, making good scores impossible and creating a frustrating experience.

+

Every BEMANI game with a touchscreen polls at 250hz, and some use an IR grid to achieve this. Thus, I am defining viable as 180hz or more, but I will include some monitors and manufacturer dates under this to help curious buyers be aware, as sometimes different manufacturer dates result in different polling rates and it's always good to document cruddy monitors to save people money.

+

One thing to note is, this is not to say that monitors with low polling rates are unusable, they can still provide enjoyment and are often cheap enough to be a great option to see how far one may want to get into a certain touchscreen based game. But, the goal is to provide a potential buyer information to make an educated choice, and monitors with low polling rates will run the risk of needing to be replaced as higher levels of play, potentially causing frustration and wasted money.

+

If you want to check your touch screen monitor's polling rate simply download Mouse Rate Checker and move your finger across the window at a reasonable pace, but not too fast! After you get your results, maybe even consider contacting me with your monitor type, manufacturing date, and result so that I can include your results where applicable.

+
+

Dell S2240T

+
+
    +
  • 2013 Manufacturing Date:
      +
    • 200hz GREAT!
    • +
    +
  • +
  • 2014 Manufacturing Date:
      +
    • May: 200hz GREAT!
    • +
    • September: 180hz
    • +
    +
  • +
  • 2015 Manufacturing Date:
      +
    • March: 200hz GREAT!
    • +
    • September: 200hz GREAT!
    • +
    +
  • +
  • Late 2016 Manufacturing Date:
      +
    • 140hz AVOID
    • +
    +
  • +
  • Early 2017 Manufacturing Date:
      +
    • 180hz
    • +
    +
  • +
  • Mid 2017 Manufacturing Date:
      +
    • 140hz AVOID
    • +
    +
  • +
  • February 2018 Manufacturing Date:
      +
    • 180hz
    • +
    +
  • +
+
+

Dell P2314T

+
+
    +
  • November 2015 Manufacturing Date:
      +
    • 60hz DO NOT BUY!
    • +
    +
  • +
+
+

Dell P2418HT

+
+
    +
  • May 2018 Manufacturing Date:
      +
    • 60hz DO NOT BUY!
    • +
    +
  • +
+
+

Iiyama T2336MSC

+
+
    +
  • Revision B1:
      +
    • 180hz
    • +
    +
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/extras/spiceerrors/index.html b/site/extras/spiceerrors/index.html new file mode 100644 index 0000000..a3614e5 --- /dev/null +++ b/site/extras/spiceerrors/index.html @@ -0,0 +1,610 @@ + + + + + + + + + SpiceTools Error Messages - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

SpiceTools Error Messages

+
+

Before reading:

+

This section contains common errors that users may come across when utilizing SpiceTools that DO NOT pertain to Error Codes. While it's virtually impossible to write on every solution for every error, there's a small handful that arise from time to time. Consider this one of the weaker sections on the site due to the infinitely varying amounts of hardware and game-specific problems that may arise. Nonetheless, this section may be helpful as a last resort or for overly specific issues. Errors are listed in potpourri fashion with game specific notes inside said sections as applicable.

+
+

Initial Checklist

+
+

There's always a couple quick things to check before even running SpiceTools, namely...

+
    +
  • Your data comes from a clean and trusted source, ideally unmodified.
  • +
  • You are not currently seeding your data and it's not already opened.
  • +
  • You have specified within Windows that SpiceTools should be ran as an administrator.
  • +
  • You're using the latest SpiceTools
  • +
  • You've correctly followed the First Time Setup and Common Problems/Tips section of your desired game and your .bat file contains no errors.
  • +
+
+

Failed to Read /dev/nvram/coin.xml.

+
+

Copy coin.xml from prop to dev/nvram or alternatively, update to a SpiceTools as new as 03/04/2020 or later.

+
+

Failed to Read /dev/nvram/eacoin.xml.

+
+

Copy eacoin.xml from prop to dev/nvram or alternatively, update to a SpiceTools as new as 03/04/2020 or later.

+
+

Cannot create property: prop/ea3-config.xml

+
+

Firstly make sure your ea3-config.xml is clean and that it is not set to Read-only.

+

If it's been modified, common problems that might arise may be having https under <services __type="str">urlhere</services> or anywhere else a custom services URL has been added. Use http instead.

+

Don't use notepad when modifying any of the .xml files, it can break the encoding and cause issues.

+

Ideally just use SpiceTools -url and -p parameters to avoid modifying this file in most use cases.

+
+

XYZ Couldn't be loaded: Specified module cannot be found.

+
+

Firstly, make sure what is attempting to load is indeed present.

+

If the file is libavs-win64.dll then you're using 64-bit SpiceTools when the game is 32-bit, please switch to 32-bit instead. SpiceTools should also tell you do this!

+

However, more often than not this error is more the user missing specific dependencies. Below are the most common ones that are missing on a fresh installation or older hardware.

+ +
+

Crashing Upon Startup

+
+

This issue has numerous reasons all pertaining to the user, most commonly the game is not able to run at its specified resolution, say a game requiring portrait mode while running in landscape for example. This might also occur if installation was not done properly, or key files are missing as well.

+

SpiceTools does a good job documenting what errors are occurring, make sure to read near the bottom of log.txt after a crash to try and better understand what might be wrong.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/extras/spiceguide/index.html b/site/extras/spiceguide/index.html new file mode 100644 index 0000000..f6e9f71 --- /dev/null +++ b/site/extras/spiceguide/index.html @@ -0,0 +1,775 @@ + + + + + + + + + SpiceTools Usage, Parameters, and Functionality - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

SpiceTools Usage, Parameters, and Functionality

+
    +
  • +

    Last Update: March 14th, 2020.

    +
  • +
  • +

    Version Covered: March 3rd, 2020.

    +
  • +
+
+

Before reading:

+

This section contains a myriad of information regarding SpiceTools including the games supported, various parameters, and its functionality. Feel free to consult this section anytime you are confused or simply want to learn more. However, SpiceTools is consistently updated and updates to this section may fall behind, to combat this, the above information in bold will cover the latest revision of SpiceTools this guide covers and along the latest update to this section.

+
+

What is SpiceTools?

+
+

SpiceTools is a toolkit allowing users to play several Konami games on their PC, typically of the arcade variety with the focus being on BEMANI games. The idea behind SpiceTools is to provide a simple to use toolkit that consists of just the executable and its configuration, allowing users to have minimal interaction with game files and thus minimizing user error.

+
+

Why SpiceTools

+
+

The reason this guide utilizes SpiceTools exclusively is because it's capable of running games without the user ever touching a single file, minimizes any potential user error. On top of this, SpiceTools has a few exclusive features that benefit new and experienced players alike. The combination of simplicity and advanced features makes it an ideal choice.

+
+

SpiceOverlay

+
+

One of the newest features SpiceTools has is an included overlay called SpiceOverlay, it contains a number of useful options such as a patch manager to enable/disable hex edits on the fly, and virtual keypads, its keybinds are as follows below:

+

F5 - Keypad P1 +F6 - Keypad P2 +F7 - Card Manager +F8 - Log +F9 - Control +F10 - Patch Manager +F12 - Overlay/FPS toggle

+
+

SpiceOptions

+
+

SpiceTools now features an options tab that allows you to set parameters inside the game with the ability to restart the game after you make your desired changes.

+

+

Note that the purple highlighted options are tied to the specific game you are running, you do not need to check them in most cases as oftentimes they are loaded automatically for most setups.

+
+

SpiceCompanion

+
+

SpiceTools also has a companion app on android called SpiceCompanion this guide won't go over all of its features and functionalities, perhaps a separate page would be more appropriate. Just note it shares many similarities with SpiceOverlay and is yet another powerful tool to aid in playing these arcade games. One fan favorite feature is the ability to utilize your phone as a card reader, allowing friends to easily card-in and play alongside you.

+
+

Supported Games

+
+

SpiceTools at the time of writing supports the following games, if no specific denotation is listed, assume all recent versions of said game):

+
    +
  • beatmania IIDX (Tricoro and newer)
  • +
  • Sound Voltex
  • +
  • jubeat (knit and newer)
  • +
  • Reflec Beat
  • +
  • Dance Evolution Arcade
  • +
  • DanceDanceRevolution
  • +
  • Beatstream
  • +
  • Road Fighters 3D
  • +
  • Pop'n Music
  • +
  • MÚSECA
  • +
  • Metal Gear Arcade
  • +
  • GITADORA (XG3 and newer)
  • +
  • NOSTALGIA
  • +
  • BISHI BASHI CHANNEL
  • +
  • QUIZ MAGIC ACADEMY
  • +
  • MAHJONG FIGHT CLUB
  • +
  • FutureTomTom
  • +
  • SCOTTO
  • +
  • HELLO! Pop'n Music
  • +
  • LovePlus
  • +
  • DANCERUSH STARDOM
  • +
  • Steel Chronicle
  • +
  • Tenkaichi Shogikai
  • +
  • Otoca D'or
  • +
  • Winning Eleven 2012
  • +
+
+

Coins

+
+

There's a coin emulation working for most games, simply press F1 to insert a single coin.

+

Some games have an additional/different coin key.

+
+

Readers

+
+

If you have an original Wavepass reader and have it connected to a COM port on your computer, SpiceTools should be able to use it. It was being created and tested with the newer readers also used in the newer Pop'n Music games. +Example for one reader on COM3: -reader COM3 +Example for two readers for P1/2 on COM3 and COM4: -reader COM3 -reader COM4 +Example for one reader with P1/2 toggle on NumLock: -togglereader COM3

+
+

SpiceTools API

+
+

SpiceTools has its own API with a custom protocol. The main goals were simplicity, portability and extensibility, so TCP/JSON was chosen, allowing fast access over network.

+

It optionally supports passwords/encryption and its response time on LAN was tested to be below 1ms (as long as extended API logging isn't enabled manually).

+

For details and how to use it, check out README.md in the included source. Additionally, python and dart libraries are provided for easy communication.

+

Key features are card/coin insertions, read/write access for keypads/analogs/buttons/lights, status information and memory read/write via raw addresses and signatures.

+
+

Bemanitools 5 API Compatibility

+
+

There is basic BT5 API integration as of 03/13/2018.

+

This feature can be enabled with -bt5api and currently makes use of eamio.dll only. +Currently, this can be used for applications such as the popular NFCeamuse app which can be found elsewhere.

+
+

Keybindings/Analogs

+
+

As of beta, buttons can be bound via either RawInput (the default) or "Naive" (GetAsyncKeyState).

+

RawInput supports all kinds of HID controllers (your FP7 is one, your XBOX360 Controller as well), however it's bound to a device.

+

If you plug your controller into another USB slot, SpiceTools does not have a way to detect it and will report the device as "missing", until you plug it back into where you originally configured it.

+

Using the "naive" approach, only keyboard buttons can be detected, however this will then work with any keyboard attached, it's not bound to a device.

+

Since May 2018 you can also bind MIDI devices for "one-shot" types like drums and hold types like piano keys and launchpads.

+
+

Usage

+
+

Utilizing SpiceTools is very straightforward, it typically involves simply dropping SpiceTools 32-bit or 64-bit (depending on game requirements) into your chosen game's content folder, creating a .bat file that initializes SpiceTools and desired parameters. For the grand majority of user installations, I've documented how to best utilize SpiceTools in the first time setup section of your respective game, so please read over it. One of the easiest and classic examples of a .bat file's contents would be along the lines of spice64.exe -ea -w which would boot SpiceTools with the -ea and -w parameters, more on parameters below.

+
+

Parameters

+
+

SpiceTools consists of several dozen parameters for users to utilize to fill their needs. Ideally, these parameters are initialized using a user created .bat file as described above. If you open up spicecfg.exe and head on over to the options tab, you can hover over the far left ? with your mouse to get an idea as to what a parameter does!

+

The grand majority of parameters are for advanced users, but don't be scared if you don't understand what most do.

+
+

 

+

Notes on Functionality for Several Games

+

beatmania IIDX

+
+

For using your own cameras in IIDX 25 or newer, just plug them in (and hopefully your camera isn't incompatible with the game) and they shall work.

+

It's also possible to use one camera only instead of the two the game wants, just dismiss the camera error on game boot as you would with no cameras connected, and your camera should be registered in-game as CAMERA A. If you're not happy with the order of the automatic camera detection, just use -iidxflipcams and CAMERA B will be CAMERA A, etc.

+

You can bind the effectors as analog inputs if you want, this is especially interesting for IIDX 25 and newer, where the effects are software based and not tied to specific sound cards anymore. When not bound, they will stay on the maximum value.

+
+

Sound Voltex

+
+

Printer fully supported as of 03/13/2018, can save prints in PNG/BMP/TGA to a customizable output path.

+

Optionally able to clean up saved images on game boot time.

+

Keyboard play should be perfectly working. If you don't want to use the mouse for the knobs, you can make use of native knob emulation, which works just as it works in Keyshoot-Mania.

+
+

jubeat

+
+

This makes use of the SpiceTools touch module, which makes you able to play any version of the game just fine with both mouse and HID compliant touch devices on Windows 7 or newer.

+

The Dell ST2240T touch screen seems to work well, especially the new 2017 revision.

+

Card insert button available and enabled by default.

+

Touch the area to insert a card in attract mode.

+
+

GITADORA

+
+

To switch between Guitar/Drum you need to specify the specific eamuse config to load. By default, SpiceTools first tries to load ea3-config.xml, then eamuse-config.xml.

+

Since the latter one is the default for the drums, for the guitar you have to override the path setting like so: spice64.exe -e prop\eamuse-config2.xml

+

Additionally, since GitaDora uses 4 channels by default, you can specify -2ch to run it with 2 channel audio instead. If you don't and have a normal 2 channel setup, the game will refuse to play sound/tracks.

+
+

Reflec Beat

+
+

Including emulation of the real IR touch screen device so the game should just act like the real one.

+

This makes use of the SpiceTools Touch module, which makes you able to play any version of the game just fine with both mouse and HID compliant touch devices.

+

Card insert button available and enabled by default.

+

For this game it's not visible in fullscreen but still works just as fine.

+

Touch the area to insert a card in attract mode.

+
+

NOSTALGIA

+
+

Spicetools will auto-detect whether or not a compatible touch device is present. If a touch device is detected, the mouse cursor will disappear. If no touch device is detected, the mouse cursor will be visible in-game. During boot-up process, do not click or else the game may pre-maturely crash. You may safely click after the monitor check is completed. It's been found that Virtual HID Touch devices commonly found with remote access software may cause detection issues, take note of that.

+

Some people have had issues with crashing on startup while having multiple monitors while using windowed mode, consider disabling the other monitors to see if this alleviates the issue.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/extras/streamaudio/index.html b/site/extras/streamaudio/index.html new file mode 100644 index 0000000..ab410f3 --- /dev/null +++ b/site/extras/streamaudio/index.html @@ -0,0 +1,872 @@ + + + + + + + + + Exclusive Audio Workarounds - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Workarounds for exclusive audio

+
+

Before reading:

+

This section describes various workarounds and tips for dealing with games that use exclusive mode audio.

+

In the recent years, BEMANI games started using WASAPI exclusive mode and ASIO to output game audio. While these provide great benefit when it comes to audio latency perceived by the player, they present additional challenges when trying to use other audio applications at the same time (e.g. a Discord voice call) or when capturing game audio for recording and streaming. This page explains how you can work around these issues. Read on carefully, as there are many things that can go wrong when dealing with audio.

+

Remember, don't stream or upload recordings to public places! Privately among friends only!

+
+

Setting up audio

+

There are advantages and disadvantages to each of the methods, so read carefully.

+

Option 1 - force shared audio

+
    +
  • Enables: audio device sharing (voice calls while playing), recording, streaming
  • +
  • Advantage: very easy to set up, as seen below.
  • +
  • Disadvantages: may add significant audio latency to your game, depending on the game and your hardware, to a point where it becomes unplayable.
  • +
+
+

Sound Voltex

+
    +
  • Enable "Shared mode WASAPI" hex edit.
  • +
  • If you run into any issues, change the audio playback device to output at 44.1khz and 16 bit.
  • +
+
+
+

IIDX

+
    +
  • For TDJ mode, ensure that the sound output device is set to WASAPI.
      +
    • In SpiceTools, set -iidxsounddevice to wasapi.
    • +
    +
  • +
  • Enable "Force shared audio" hex edit.
  • +
  • If you run into any issues, change the audio playback device to output at 44.1khz and 16 bit.
  • +
+
+
    +
  • That's really all there is. If you use OBS or Discord to capture the game, you will not have any issues recording audio with this configuration.
  • +
+

Option 2 - Stereo Mix

+
    +
  • Enables: recording, streaming
  • +
  • Does NOT enable: audio device sharing (voice calls while playing)
  • +
  • Advantages: nothing to set up, no added latency to audio playback
  • +
  • Disadvantages: only works with some audio cards (most Realtek devices should work), recorded audio may be delayed or off-sync
  • +
+

Some sound cards have a thing called Stereo Mix, which presents itself as a recording device that mirrors everything that is being outputted from the sound card. Conveniently this can be captured even when a game has exclusive control of the audio device.

+
+

Enabling stereo mix

+
    +
  1. Ensure that you have the latest audio drivers.
      +
    • For example, if you have a Realtek audio device, use a Realtek driver and not the generic Windows HD Audio driver.
    • +
    +
  2. +
  3. Go to Windows Sound device settings. In the Playback tab, make sure the default audio device is set to the sound card output (speakers or headphones).
  4. +
  5. Go to Recording devices tab.
  6. +
  7. Look for Stereo Mix. If you don't see it, right click and check "Show Disabled Devices" and try again.
      +
    • +
    +
  8. +
+
+
+

Capturing audio in OBS with Stereo Mix

+
    +
  1. Add a new Audio Input Capture source.
  2. +
  3. Set the device as Stereo Mix.
  4. +
  5. You can now capture audio.
  6. +
  7. You'll probably want to set to "Monitor Off" so you don't get duplicated audio.
  8. +
+
+

Option 3 - audio splitter cable (lo-tech method)

+
    +
  • Enables: recording, streaming
  • +
  • Does NOT enable: audio device sharing (voice calls while playing)
  • +
  • Advantages: easy one-time set up, no added latency to audio playback
  • +
  • Disadvantages: costs money, recorded audio may be delayed or off-sync, audio may become quieter
  • +
+
+

Equipment

+
    +
  1. Buy an audio splitter cable, and a headphone extension cable.
  2. +
  3. Split the audio coming out of your computer into two: one into speakers/headphones, another into the extension cable, which then goes into the "line in" port of your PC.
  4. +
+
+
+

Capturing audio in OBS

+
    +
  • Add "Line In" as an audio input source.
  • +
+
+

Option 4 - FlexASIO

+
    +
  • Enables: audio device sharing (voice calls while playing), recording, streaming
  • +
  • Advantages: one-time set up, does not affect other audio configuration
  • +
  • Disadvantages: not as flexible as Voicemeeter when it comes to recording, adds a small latency
  • +
+

FlexASIO is a virtual ASIO service that can redirect output to various backends, including shared mode WASAPI.

+
+

FlexASIO set up

+
    +
  1. Install FlexASIO
  2. +
  3. Create a FlexASIO.toml configuration file in your user folder (C:\Users\Your Name)
  4. +
  5. +

    Insert these lines inside your configuration file:

    +
    backend = "Windows WASAPI"
    +    bufferSizeSamples = 386
    +    channels = 2
    +    wasapiExclusiveMode = false
    +
    +[output]
    +    suggestedLatencySeconds = 0.0
    +
    +
  6. +
+

Try to lower bufferSizeSamples for minimal latency - recommended value is 128. If you hear audio crackling, increase bufferSizeSamples.

+
+
+

Sound Voltex

+
    +
  • Disable "Shared mode WASAPI" hex edit. You want the game to output in exclusive mode for lower overall latency.
  • +
+
+
+

IIDX

+
    +
  • For TDJ mode, ensure that the sound output device is set to WASAPI.
      +
    • In SpiceTools, set -iidxsounddevice to wasapi.
    • +
    +
  • +
  • Disable "Force shared audio" hex edit. You want the game to output in exclusive mode for lower overall latency.
  • +
+
+
+

SpiceTools set up to use ASIO

+
    +
  1. Under the options tab, set -audiobackend to asio
  2. +
  3. +

    If you have more than one ASIO driver installed, launch the game and look through the logs for something like this:

    +
    ---------------
    +    [YYYY/MM/DD HH:MM:SS] I:audio::asio: Driver 0
    +    [YYYY/MM/DD HH:MM:SS] I:audio::asio: ... Name : FlexASIO
    +    [YYYY/MM/DD HH:MM:SS] I:audio::asio: Driver 1
    +    [YYYY/MM/DD HH:MM:SS] I:audio::asio: ... Name : Voicemeeter Virtual ASIO
    +    ---------------
    +
    +

    Find the number attached to the ASIO driver of your choice and use -asiodriverid [deviceid] to make the game use the driver. In the example above, Voicemeeter's ID is 1, and FlexASIO is 0.

    +
  4. +
+
+
    +
  • To capture audio, you can capture desktop audio as you normally would in OBS.
  • +
+

Option 5 - Voicemeeter

+
    +
  • Enables: audio device sharing (voice calls while playing), recording, streaming
  • +
  • Advantages: highly configurable, adds very little latency
  • +
  • Disadvantages: can be a challenge to set up, difficult to troubleshoot when things go wrong, need to run Voicemeeter every time
  • +
+

Voicemeeter is free virtual audio mixer for Windows. It allows you to "mux" audio input streams into audio output streams; here, we take advantage of this application to redirect the game audio so that you enable audio capture & simultaneously enable other audio streams like voice calls.

+
+

Initial Voicemeeter set up

+
    +
  1. Download Voicemeeter Potato.
      +
    • Potato comes with all three versions - regular Voicemeeter, Banana, and Potato.
    • +
    • Regular Voicemeeter is not good enough if you are following this guide. Banana is good enough if you want to mux two audio sources (say, game audio and Discord). Potato is recommended if you want to stream to Discord via OBS using instructions in the next section.
    • +
    +
  2. +
  3. Install and REBOOT YOUR COMPUTER when prompted.
  4. +
  5. Launch Voicemeeter Banana or Potato, whichever one you prefer.
  6. +
  7. On the right hand side, you will see flashing red text that says "Select Main Output Device (A1). Look immediately to the left, click on A1 with a down arrow, and choose your output device. Typically you want the one that starts with "WDM:", but if your audio device supports it, "ASIO:" option will provide lower latency.
      +
    • +
    +
  8. +
  9. In Windows sound settings, set your default audio playback device to Voicemeeter Input (and not Voicemeeter AUX Input!)
  10. +
+
+
+

Discord or other voice applications

+
    +
  • Configure the output device to Voicemeeter AUX Input.
  • +
+
+
+

Sound Voltex

+
    +
  • Disable "Shared mode WASAPI" hex edit. You want the game to output in exclusive mode for lower overall latency.
  • +
+
+
+

IIDX

+
    +
  • Disable "Force shared audio" hex edit. You want the game to output in exclusive mode for lower overall latency.
  • +
  • For TDJ mode, ensure that the sound output device is set to WASAPI.
      +
    • In SpiceTools, set -iidxsounddevice to wasapi.
    • +
    +
  • +
  • (Optionally, you can output the game audio using SpiceTools -audiobackend asio and outputting to Voicemeeter ASIO instead of doing it over WASAPI, but probably provides negligible benefit to latency)
  • +
+
+

At this point, you may want to look up various tutorials on YouTube to learn the basics of Voicemeeter. It may be daunting at first, but once you understand the concepts, it can be a very powerful tool. Plus, you can go beyond what I demonstrate below and instead do more complicated things on your own!

+
+

Muxing with Voicemeeter

+
    +
  1. Launch the game.
  2. +
  3. In Voicemeeter, you'll notice that the VU meter under Voicemeeter VAIO is showing that it is receiving game audio. You'll want to ensure "A1" box is green so that you route the game audio to your main output device, so you can hear the game in your ears.
      +
    • +
    +
  4. +
  5. (Similarly, audio from the voice chat would come through Voicemeeter AUX column.)
  6. +
  7. At this point, you are able to hear both the game & listen to voice chat - success!
  8. +
+
+
+

Capturing audio in OBS with Voicemeeter

+
    +
  1. Now, how do you capture this audio for recording? The basic idea is to route game audio to Voicemeeter's virtual output device, and capturing that output device in OBS.
  2. +
  3. In the Voicemeeter VAIO column, click on B1 to make it turn green. This connects game audio to B1 channel, which is Voicemeeter Output virtual audio device.
  4. +
  5. In OBS, create a new Audio Input Capture source.
  6. +
  7. Double click on the new source and select VoiceMeeter Output (VB-Audio VoiceMeeter VAIO) from the drop-down.
  8. +
  9. Click on the gear icon on the audio source, click on Advanced Audio Properties. In the "Audio Monitoring" column, set it to Monitor Off. This way, you can avoid double audio in your headphones when recording.
      +
    • (Note that if you want to stream to Discord, you'll be doing something else instead; see the steps below.)
    • +
    +
  10. +
  11. You are done. You should see the game audio come through to OBS.
  12. +
+
+

Streaming to Discord

+
+

Important

+

To reiterate, do NOT stream in public places! Privately among friends only!

+
+

If you followed Option 1 (force shared mode audio), as previously mentioned, all you need is to capture the game window and stream to Discord.

+

If you followed other options, a bit more work is involved to stream both video and audio at the same time. One method is to capture audio and video in OBS, and screen sharing OBS to Discord. Follow these instructions:

+

Setting up Virtual Audio Monitor in OBS

+

We are going to make OBS capture audio and redirect the result to a virtual monitor device. In other words, OBS will be "outputting" audio to a fake speaker. Since it's still outputting audio, Discord is able to capture it, but you can avoid duplicated game audio this way.

+
+

Option 1 - Using Virtual Audio Cable

+
    +
  1. Download and install Virtual Audio Cable.
  2. +
  3. Go to OBS Settings, Audio, Advanced, Monitoring Device - set to CABLE Input.
  4. +
  5. Go to Edit, Advanced Audio Properties. For any audio channels you want to stream, turn on monitor to "Monitor and Output".
  6. +
+
+
+

Option 2 - Using Voicemeeter Potato

+
    +
  1. We are going to make use of an unused virtual input device which is only available in Potato. In Banana this feature is not present.
  2. +
  3. Go to OBS Settings, Audio, Advanced, Monitoring Device - set to VoiceMeeter VAIO3 Input.
      +
    • +
    +
  4. +
  5. Go to Edit, Advanced Audio Properties. For any audio channels you want to stream, turn on monitor to "Monitor and Output".
  6. +
  7. In VoiceMeeter Potato, prevent VAIO3 output so that you don't hear the OBS monitor audio in your ears. You can do this by disabling A1, B1, and so on in the VAIO3 column.
  8. +
+
+

Streaming OBS Windowed Preview to Discord

+
+
    +
  1. Add the game window capture as a scene, as you normally would in OBS.
  2. +
  3. Right click on OBS stage and click on Windows Projector (Preview).
      +
    • +
    +
  4. +
  5. Resize the new window as needed.
  6. +
  7. Use Discord to screen share this Windowed Projector.
      +
    • +
    +
  8. +
  9. You're done! The screen share should include both the OBS scene and the audio.
  10. +
+
+

Troubleshooting

+
+

General

+
    +
  • Game is too quiet!
      +
    • IIDX in TDJ mode is especially quiet. Try LDJ mode if you don't have a way to amplify things.
    • +
    +
  • +
+
+
+

Voicemeeter

+
    +
  • Use the right version - Banana or Potato is recommended. Regular Voicemeeter lacks features so you can't follow the steps in this guide.
  • +
  • If you hear crackling, or if you feel the latency is too high, you'll need to adjust the buffer size. This is highly dependent on your set up; it's recommended that you search "how to fix crackling audio voicemeeter" or "how to reduce latency in voicemeeter" and you'll get lots of helpful guides.
  • +
+
+
+

Discord

+
    +
  • If Discord fails to capture audio, go to Discord settings, Voice & Video, and enable "Use an experimental method to capture audio from applications". This should already be checked by default.
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/files/usaneko-unlock.zip b/site/files/usaneko-unlock.zip new file mode 100644 index 0000000..d8bcf80 Binary files /dev/null and b/site/files/usaneko-unlock.zip differ diff --git a/site/fonts/fontawesome-webfont.eot b/site/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/site/fonts/fontawesome-webfont.eot differ diff --git a/site/fonts/fontawesome-webfont.svg b/site/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/site/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/site/fonts/fontawesome-webfont.ttf b/site/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/site/fonts/fontawesome-webfont.ttf differ diff --git a/site/fonts/fontawesome-webfont.woff b/site/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/site/fonts/fontawesome-webfont.woff differ diff --git a/site/fonts/fontawesome-webfont.woff2 b/site/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/site/fonts/fontawesome-webfont.woff2 differ diff --git a/site/fonts/glyphicons-halflings-regular.eot b/site/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..b93a495 Binary files /dev/null and b/site/fonts/glyphicons-halflings-regular.eot differ diff --git a/site/fonts/glyphicons-halflings-regular.svg b/site/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..94fb549 --- /dev/null +++ b/site/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/site/fonts/glyphicons-halflings-regular.ttf b/site/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..1413fc6 Binary files /dev/null and b/site/fonts/glyphicons-halflings-regular.ttf differ diff --git a/site/fonts/glyphicons-halflings-regular.woff b/site/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..9e61285 Binary files /dev/null and b/site/fonts/glyphicons-halflings-regular.woff differ diff --git a/site/fonts/glyphicons-halflings-regular.woff2 b/site/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000..64539b5 Binary files /dev/null and b/site/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/site/games/beatstreamfinal/hexedits/index.html b/site/games/beatstreamfinal/hexedits/index.html new file mode 100644 index 0000000..c53e37b --- /dev/null +++ b/site/games/beatstreamfinal/hexedits/index.html @@ -0,0 +1,565 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

BeatStream アニムトライヴ Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For NBT-2016111400

+
+

All below edits are applied to beatstream.dll

+

E:/ Drive Fix

+
    +
  • 8645FC: 65 3A 2F -> 64 65 76
  • +
+

Unlock All Songs

+
    +
  • 16CCB1: 48 83 FD 10 72 03 48 8B 09 41 -> BE 00 00 00 00 E9 3A 01 00 00
  • +
+

Nightmare Difficulty Unlock

+
    +
  • 16EADE: 8B CB E8 DB B4 0E 00 -> B0 01 E9 AD 00 00 00
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/beatstreamfinal/problems/index.html b/site/games/beatstreamfinal/problems/index.html new file mode 100644 index 0000000..d88e34c --- /dev/null +++ b/site/games/beatstreamfinal/problems/index.html @@ -0,0 +1,593 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

BeatStream アニムトライヴ

+

Hardware Specs

+
+

Bemani PC Type 6 (ADE-704A)

+

Based on an AMD Embedded R Series SoC.

+

CPU: Intel Celeron B810

+

GPU: AMD Radeon E4690

+

OS: Windows 7 Embedded

+
+

My Game Doesn't Boot After Following the Guide!

+
+

The most common problem present here is if you do not have an E:/ drive. To resolve this issue, you must apply the E:/drive fix hex edit found here.

+
+

My Touchscreen Monitor Isn't Working

+
+

Try adding the -wintouch parameter to your .bat file, if that doesn't work, check the log and make sure it works with windows. SpiceTools at this point works with the grand majority of touchscreen monitors but no doubt some outliers are out there!

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/beatstreamfinal/setup/index.html b/site/games/beatstreamfinal/setup/index.html new file mode 100644 index 0000000..a9ec5fd --- /dev/null +++ b/site/games/beatstreamfinal/setup/index.html @@ -0,0 +1,619 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

BeatStream アニムトライヴ

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done,, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice64.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+
+
+

You're all done! If you have a touchscreen monitor make sure it's plugged in, it should work automatically, if it doesn't check out the advertised Common Problems/Tips section at the link below.

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/danevo/hexedits/index.html b/site/games/danevo/hexedits/index.html new file mode 100644 index 0000000..fefb8e8 --- /dev/null +++ b/site/games/danevo/hexedits/index.html @@ -0,0 +1,546 @@ + + + + + + + + + DanceEvolution Arcade Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

DanceEvolution Arcade Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For KDM-2016021900

+
+

Song Difficulties Unlocked

+
    +
  • gamekdm.dll - 0x544A2: 18 74 2F -> 18 90 90
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/danevo/problems/index.html b/site/games/danevo/problems/index.html new file mode 100644 index 0000000..1ce5535 --- /dev/null +++ b/site/games/danevo/problems/index.html @@ -0,0 +1,535 @@ + + + + + + + + + to be added - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

to be added

+
+

to be added

+

to be added

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/danevo/setup/index.html b/site/games/danevo/setup/index.html new file mode 100644 index 0000000..1ce5535 --- /dev/null +++ b/site/games/danevo/setup/index.html @@ -0,0 +1,535 @@ + + + + + + + + + to be added - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

to be added

+
+

to be added

+

to be added

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/ddrace/hexedits/index.html b/site/games/ddrace/hexedits/index.html new file mode 100644 index 0000000..18d30a8 --- /dev/null +++ b/site/games/ddrace/hexedits/index.html @@ -0,0 +1,597 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

DanceDanceRevolution Ace Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For MDX-2019042200

+
+

All edits below are for gamemdx.dll unless otherwise specified.

+

Force Enable Fast/Slow

+
    +
  • gamemdx.dll: 0x97C60: 8B 41 44 -> 31 C0 40
  • +
+

Force Background Judgement

+
    +
  • gamemdx.dll: 0x97C50: 8B 41 -> 31 C0
  • +
+

Force Darkest Background

+
    +
  • gamemdx.dll: 0x98A0E: 75 03 33 C0 -> 33 C0 B0 03
  • +
+

Song Unlock (Incomplete - Unlocks All the Event Mode Songs but Still Requires Editing the Music Database)

+
    +
  • gamemdx.dll: 0x846D1: 45 F4 -> 90 E9, 0x8D007: 32 C0 -> B0 01
  • +
+

Tutorial Skip

+
    +
  • gamemdx.dll: 0x49D33: 75 -> EB
  • +
+

Timer Freeze

+
    +
  • gamemdx.dll: 0x275D7: 74 -> EB
  • +
+

Unlock Options

+
    +
  • gamemdx.dll: 0x82733: 75 -> EB
  • +
+

Force Cabinet Type 6 (A20 Gold Theme)

+
    +
  • gamemdx.dll: 0xDE18: FF 24 -> EB 71
  • +
+

Force ENDYMION Menu Background

+
    +
  • gamemdx.dll: 0x1F98D: EC -> F0
  • +
+

Skip a20 Menu Background Loading

+
    +
  • gamemdx.dll: 0x1F944: 75 -> EB
  • +
+

Make Notes Possible to Read When Using Darkest Setting (Sets to 99%)

+
    +
  • gamemdx.dll: 0x1C9F6: 33 33 33 3F -> A4 70 7D 3F
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/ddrace/problems/index.html b/site/games/ddrace/problems/index.html new file mode 100644 index 0000000..1c31ebe --- /dev/null +++ b/site/games/ddrace/problems/index.html @@ -0,0 +1,617 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

DDR Ace Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 4

+

CPU: Celeron M 440 1.86GHz

+

GPU: ATI Radeon HD 2400

+

RAM: 2 GB

+

OS: Windows XP Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

Ddr a's Video Background Are Missing in the Menus And/Or Some Songs Soft-Lock the Game on the Nth/Final/Extra Stage Screen

+
+

DDR's Video backgrounds rely on two DLLs in the game's "com" folder. However, unlike most other Bemani AC Games, these DLLs must be registered (Windows must know that these files exist, and where to point to when they are called). Without these, the game will run, but songs that rely on FMV backgrounds will break and the menu's backgrounds will be blank.

+

There are two ways to fix this: You can either install the K-lite Codec Pack (which gives the added bonus of enabling playback of weird esoteric video formats outside of the game) or register the DLLs for the game manually, if you wish to save space and aren't afraid of the command prompt.

+

You can download the K-lite codec pack from here: https://www.codecguide.com/download_kl.htm +The basic installer is all you need. Simply install the pack and then run DDR A.

+

To register the DLLs with Windows:

+
    +
  1. +

    Open an elevated command prompt (Right click Command Prompt -> Run As Administrator)

    +
  2. +
  3. +

    Navigate to your Windows directory (Typically C:/ Windows), then to SysWOW64 (Or System32 if on a 32-bit version of Windows) by typing cd C:/windows inside the command prompt

    +
  4. +
  5. +

    Type regsvr32 [path to one of the two DLLs in your DDR A's "content/com/" folder]

    +

    Ex: regsvsr32 D:\MDX-2019042200\contents\com k-clvsd.dll

    +
  6. +
  7. +

    Repeat the command for the other DLL in the folder, and then close command prompt

    +

    Ex: regvsr32 D:\MDX-2019042200\contents\com xactengine2_10.dll

    +
  8. +
  9. +

    If everything went smoothly, run the game again with your desired tools and enjoy a properly working DDR A!

    +
  10. +
+
+

I Want to Play in 4:3 (SD) Mode!

+
+

If you're using SpiceTools, you can add -ddrsd to your gamestart.bat file and the game will boot into 4:3 mode.

+
+

Where Is the Option For Dancers/Shading/Measure lines/Fast-Slow/Layering?

+
+

These options are locked behind network requirements and they will not show unless connected to a network that has written support for these options. There are some hex edits for some of these options, however

+
+

Why Is My Game Not in English?

+
+

English text is built in, change <dest>J</dest> in the eamuse-config.xml file inside contents/prop to <dest>A</dest>, then you can change language to English in the service menu's GAME OPTIONS (accessed via Spice's Test button). If English is not automatically set as pictured below. Make sure the code at the top left upon booting indicates A:A:A as desired.

+
+

+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/ddrace/setup/index.html b/site/games/ddrace/setup/index.html new file mode 100644 index 0000000..f700904 --- /dev/null +++ b/site/games/ddrace/setup/index.html @@ -0,0 +1,615 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

DANCE DANCE REVOLUTION ACE

+
+

Warning

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file anything you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

One last important note before booting the game is that you should install K-Lite Mega Codec (See Common Problems/Tips for a guide!) before booting, the game will run without it, but some songs will lock up and the game will crash and all background videos will be black on most setups.

+

With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your gamestart.bat and the game should load and be ready to be enjoyed! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/exchain/hexedits/index.html b/site/games/exchain/hexedits/index.html new file mode 100644 index 0000000..0ee57c6 --- /dev/null +++ b/site/games/exchain/hexedits/index.html @@ -0,0 +1,560 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

GITADORA EXCHAIN Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For M32-2019092400

+
+

Timer Freeze

+
    +
  • game.dll: 0xBC27: 0F 85 AA 01 00 00 -> E9 AB 01 00 00 90
  • +
+

Fix IP change error

+
    +
  • libshare-pj.dll: 0x23305: 74 -> EB
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/exchain/problems/index.html b/site/games/exchain/problems/index.html new file mode 100644 index 0000000..c3f2420 --- /dev/null +++ b/site/games/exchain/problems/index.html @@ -0,0 +1,641 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

GITADORA EXCHAIN Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 4

+

CPU: AMD Athlon 64 X2 4400

+

GPU: ATI Radeon HD 2400

+

RAM: 1 GB

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Game Stuck On Title Screen (AMD Ryzen 3900X)

+
+

If you have AMD Ryzen 3900X-series processor and the game gets stuck on the title screen (or a black screen) you are running into a known processor bug for games using Media Foundation to play videos. The workaround is to disable simultaneous multithreading (SMT) in the system's BIOS settings. See this GitHub issue for Proton

+
+

Occasional Graphical Stuttering During Gameplay

+
+

Disable fullscreen optimizations for spice64.exe instance. Right click on spice64.exe, click on Properties. Click on Compatibility tab, "Change settings for all users", and check "Disable fullscreen optimizations".

+
+

I get an IP Change Error!

+ +

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Gitadora features BOTH a visual offset and an audio based one, so experiment accordingly.

+
+

Why Are My Videos Freezing (Usually Towards the End of the Song)?

+
+

If you're using Windows 10, there is a bug that is caused by the difference between the ASF stream decoder between Windows 7 and Windows 10 wherein it fails to properly detect the end of file of the video stream which causes the video decoder to throw an exception, which is why the video freezes. At the time of writing, SpiceTools does not have a fix for this, but there are hooks available to resolve this issue.

+
+

I Tried Switching to SpiceTools to Follow the Guide and It Crashes!

+
+

This is a known issue, make sure to replace all of the .dll files from the contents folder of the game with ones from a fresh install, other tools currently modify these files in a way that SpiceTools cannot deal with.

+
+

My Drum Pedal Isn't Working!

+
+

Some drum kits utilize hi-hat control with the pedal resulting in different MIDI addresses that require additional bindings, make sure to follow your drum kit's manual to see these other bindings and bind them in your desired tool's accordingly. Gitadora does not do this, so the game utilizes just 1 binding for every level of sensitivity on the pedal and multiple bindings are typically required with most drum kits.

+
+

When I Run This Game All Other Background Audio Is Gone! What's Going On?

+
+

Gitadora is a 64-bit game that utilizes a feature in Windows called WASAPI exclusive mode to obtain less audio latency than the former 32-bit versions of BEMANI games which used DirectSound. Unfortunately, this cannot be changed.

+
+

Note on 2-channel and 4-channel Audio

+
+

For most setups, the -2ch parameter will be mandatory to hear any functional audio. 4-channel setups aren't really working in general and there's buffer issues, please avoid using it.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/exchain/setup/index.html b/site/games/exchain/setup/index.html new file mode 100644 index 0000000..2f1a3eb --- /dev/null +++ b/site/games/exchain/setup/index.html @@ -0,0 +1,674 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

GITADORA EXCHAIN

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started.

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, the first thing to do is put your desired 64-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+
+

Why does this look different than the usual? This installation includes a modules folder that Spice automatically detects, keeping things clean and simple.

+
+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below for both launching the guitar version and drum version using SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

FOR GUITAR

+

For our guitar local network configuration example, on a single line in the .bat file we're going to type spice64.exe -e prop\eamuse-config2.xml -2ch -ea -w and save the file.

+

What do these different parameters do? +- -e sets a custom path for the eamuse config to boot the proper one (in this case, guitar via prop\eamuse-config2.xml) +- -2ch enables 2-channel audio for GITADORA +- -ea enables an integrated e-amusement server within SpiceTools. +- -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!

+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

FOR DRUM

+

For our drum local network configuration example, on a single line in the .bat file we're going to type spice64.exe -2ch -ea -w and save the file.

+

What do these different parameters do? +- -2ch enables 2-channel audio for GITADORA +- -ea enables an integrated e-amusement server within SpiceTools. +- -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!

+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

FOR GUITAR

+

For our guitar online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -e prop\eamuse-config2.xml -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -e sets a custom path for the eamuse config to boot the proper one (in this case, guitar via prop\eamuse-config2.xml)
  • +
  • -2ch enables 2-channel audio for GITADORA
  • +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

FOR DRUM

+

For our drum online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -2ch enables 2-channel audio for GITADORA
  • +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+

If it's your first time running the game, you'll immediately be greeted with this screen, oh no!

+
+

+
+

This is normal, simply hit your Test keybind and continue on to this.

+
+

+
+

From here, we will need to set a shop name to play, so select the GAME OPTIONS option.

+
+

+
+

Then, select SHOP SETTINGS.

+
+

+
+

Once inside, select SHOP NAME SETTINGS and name your shop whatever you desire! For the purpose of the guide, we named it Guide but highly encourage fun and/or lazy names. Once that's done, go down to PREFECTURE and set it to whatever you desire as well. Finally, go to SAVE AND EXIT to get back to the main menu.

+
+

+
+

The last menu we'll go inside from the service menu is the clock menu. Go inside CLOCK and simply set the clock by hitting SAVE AND EXIT as pictured below.

+
+

+
+

You're all done! From the service menu select GAME MODE and the game should load ready to be played! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/gitamatixx/hexedits/index.html b/site/games/gitamatixx/hexedits/index.html new file mode 100644 index 0000000..2c150b0 --- /dev/null +++ b/site/games/gitamatixx/hexedits/index.html @@ -0,0 +1,574 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

GITADORA Matixx Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For M32-2018071700

+
+

Timer Freeze

+
    +
  • game.dll: 0xBC37: 0F 85 AA 01 00 00 -> E9 AB 01 00 00 90
  • +
+

Stage Freeze (NOT compatible with usage on networks due to how the game saves user plays)

+
    +
  • game.dll: 0x1595E1 0F 85 FB 01 00 00 -> E9 FC 01 00 00 90
  • +
+

Unlock all music

+
    +
  • game.dll: 0x1EAEFA: 71 00 -> 4D 01
  • +
  • game.dll: 0x1EAF12: 73 00 -> 4D 01
  • +
  • game.dll: 0x162FF4: 75 16 -> EB 23
  • +
+

Enable Long music

+
    +
  • game.dll: 0x163134: 75 03 -> 90 90
  • +
+

Fix IP change error

+
    +
  • libshare-pj.dll: 0x23375: 74 -> EB
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/gitamatixx/problems/index.html b/site/games/gitamatixx/problems/index.html new file mode 100644 index 0000000..0c1c8c8 --- /dev/null +++ b/site/games/gitamatixx/problems/index.html @@ -0,0 +1,641 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

GITADORA Matixx Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 4

+

CPU: AMD Athlon 64 X2 4400

+

GPU: ATI Radeon HD 2400

+

RAM: 1 GB

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Game Stuck On Title Screen (AMD Ryzen 3900X)

+
+

If you have AMD Ryzen 3900X-series processor and the game gets stuck on the title screen (or a black screen) you are running into a known processor bug for games using Media Foundation to play videos. The workaround is to disable simultaneous multithreading (SMT) in the system's BIOS settings. See this GitHub issue for Proton

+
+

Occasional Graphical Stuttering During Gameplay

+
+

Disable fullscreen optimizations for spice64.exe instance. Right click on spice64.exe, click on Properties. Click on Compatibility tab, "Change settings for all users", and check "Disable fullscreen optimizations".

+
+

I get an IP Change Error!

+ +

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Gitadora features BOTH a visual offset and an audio based one, so experiment accordingly.

+
+

Why Are My Videos Freezing (Usually Towards the End of the Song)?

+
+

If you're using Windows 10, there is a bug that is caused by the difference between the ASF stream decoder between Windows 7 and Windows 10 wherein it fails to properly detect the end of file of the video stream which causes the video decoder to throw an exception, which is why the video freezes. At the time of writing, SpiceTools does not have a fix for this, but there are hooks available to resolve this issue.

+
+

I Tried Switching to SpiceTools to Follow the Guide and It Crashes!

+
+

This is a known issue, make sure to replace all of the .dll files from the contents folder of the game with ones from a fresh install, other tools currently modify these files in a way that SpiceTools cannot deal with.

+
+

My Drum Pedal Isn't Working!

+
+

Some drum kits utilize hi-hat control with the pedal resulting in different MIDI addresses that require additional bindings, make sure to follow your drum kit's manual to see these other bindings and bind them in your desired tool's accordingly. Gitadora does not do this, so the game utilizes just 1 binding for every level of sensitivity on the pedal and multiple bindings are typically required with most drum kits.

+
+

When I Run This Game All Other Background Audio Is Gone! What's Going On?

+
+

Gitadora is a 64-bit game that utilizes a feature in Windows called WASAPI exclusive mode to obtain less audio latency than the former 32-bit versions of BEMANI games which used DirectSound. Unfortunately, this cannot be changed.

+
+

Note on 2-channel and 4-channel Audio

+
+

For most setups, the -2ch parameter will be mandatory to hear any functional audio. 4-channel setups aren't really working in general and there's buffer issues, please avoid using it.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/gitamatixx/setup/index.html b/site/games/gitamatixx/setup/index.html new file mode 100644 index 0000000..14c3e99 --- /dev/null +++ b/site/games/gitamatixx/setup/index.html @@ -0,0 +1,671 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

GITADORA Matixx

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started.

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, the first thing to do is put your desired 64-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below for both launching the guitar version and drum version using SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

FOR GUITAR

+

For our guitar local network configuration example, on a single line in the .bat file we're going to type spice64.exe -e prop\eamuse-config2.xml -2ch -ea -w and save the file.

+

What do these different parameters do? +- -e sets a custom path for the eamuse config to boot the proper one (in this case, guitar via prop\eamuse-config2.xml) +- -2ch enables 2-channel audio for GITADORA +- -ea enables an integrated e-amusement server within SpiceTools. +- -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!

+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

FOR DRUM

+

For our drum local network configuration example, on a single line in the .bat file we're going to type spice64.exe -2ch -ea -w and save the file.

+

What do these different parameters do? +- -2ch enables 2-channel audio for GITADORA +- -ea enables an integrated e-amusement server within SpiceTools. +- -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!

+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

FOR GUITAR

+

For our guitar online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -e prop\eamuse-config2.xml -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -e sets a custom path for the eamuse config to boot the proper one (in this case, guitar via prop\eamuse-config2.xml)
  • +
  • -2ch enables 2-channel audio for GITADORA
  • +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

FOR DRUM

+

For our drum online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -2ch -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -2ch enables 2-channel audio for GITADORA
  • +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+

If it's your first time running the game, you'll immediately be greeted with this screen, oh no!

+
+

+
+

This is normal, simply hit your Test keybind and continue on to this.

+
+

+
+

From here, we will need to set a shop name to play, so select the GAME OPTIONS option.

+
+

+
+

Then, select SHOP SETTINGS.

+
+

+
+

Once inside, select SHOP NAME SETTINGS and name your shop whatever you desire! For the purpose of the guide, we named it Guide but highly encourage fun and/or lazy names. Once that's done, go down to PREFECTURE and set it to whatever you desire as well. Finally, go to SAVE AND EXIT to get back to the main menu.

+
+

+
+

The last menu we'll go inside from the service menu is the clock menu. Go inside CLOCK and simply set the clock by hitting SAVE AND EXIT as pictured below.

+
+

+
+

You're all done! From the service menu select GAME MODE and the game should load ready to be played! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/hellopopn/problems/index.html b/site/games/hellopopn/problems/index.html new file mode 100644 index 0000000..d1a2a5a --- /dev/null +++ b/site/games/hellopopn/problems/index.html @@ -0,0 +1,572 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

HELLO Pop'n Common Problems/Tips

+

My Game Is Running Slow/Lagging

+
+

Try to eliminate any unnecessary background processes during play.

+
+

My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

The game crashes fullscreen!

+
+

Some monitors and display adapters may not support the odd resolution the game runs at, which is 1360x768 versus the occasionally seen 1366x768. To resolve, setup a custom resolution inside your appropriate graphics card settings, or enable GPU resolution scaling.

+
+

Other Crashes

+
+

This game may fail in the case of using HDMI audio. Even if you're not using HDMI audio however, some failures to boot have been noted. Please update to the latest SpiceTools which fixes this issue.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/hellopopn/setup/index.html b/site/games/hellopopn/setup/index.html new file mode 100644 index 0000000..5a35b64 --- /dev/null +++ b/site/games/hellopopn/setup/index.html @@ -0,0 +1,634 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

HELLO Pop'n

+
+

Warning

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's contents folder. Pictured below is what your folder should look like.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up spicecfg.exe and head to the Options tab. Here you can configure all of the various options that SpiceTools has, but for the purpose of this guide we'll demonstrate how to set up a local server and an online server. You can skip over the parts that you don't need, and feel free to set any other options that you might like.

+
+
+

If you're not using SpiceTools:

+

It's most likely that your toolkit doesn't have an options interface, so you'll have to create a .bat file. Consult the appropriate documentation for this as this isn't covered in this guide.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, in the Options tab enable the following options: E-Amusement Emulation: -ea and Windowed Mode: -w.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the selected options in spicecfg.exe.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different options!

+

We're going to use the option PCBID: -pcbid for our PCBID, with XXXXXXXXXXXXXXXXXXXX as the value.
+For the network URL we're going to use the option Service URL: -url, with http://yoururlhere.com/ as the value.
+We'll also enable windowed mode by enabling the option Windowed Mode: -w.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the enabled options in spicecfg.exe.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Configuring Keybinds

+
+

While we're still in spicecfg.exe, why not set up the keybinds? To do this you'll have to head on over to the Buttons tab. Here you simply click Bind and press the button on your controller (or keyboard). Below are my keybinds for a keyboard. Notice that I've also bound the Service, Test and Coin Mech buttons to my keyboard. This might come in handy but shouldn't be necessary to play the game.

+
+

+

Final Steps and Setting up the Game

+
+

Boot the game by double-clicking spice.exe.

+

The boot sequence may have a very light blue background. Press any overlay hotkey (F12, for example) to make it display normally.

+
+

+

+
+

Simply follow the on-screen text in the bottom left corner to continue. On the first boot, the game may tell you to press Test, and then Service.

+

HELLO Pop'n has the ability to run offline, so the network error can be safely ignored.

+

You're all done! The game takes a couple of seconds to load all of the data.

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx25/hexedits/index.html b/site/games/iidx25/hexedits/index.html new file mode 100644 index 0000000..55ca700 --- /dev/null +++ b/site/games/iidx25/hexedits/index.html @@ -0,0 +1,648 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

beatmania IIDX 25 Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For LDJ-2019100700

+
+

All below edits are for bm2dx.dll unless otherwise specified.

+

SSE4.2 Fix (Allows the game to run on processors which do not support the SSE4.2 instruction set. If you can successfully boot the game already, DO NOT USE THIS EDIT!)

+
    +
  • 0x3F8CF7: F3 45 0F → 90 90 90
  • +
+

Unlock All Songs

+
    +
  • 0x16D7B2: 74 10 → 90 90
  • +
+

Unlock All 12s

+
    +
  • 0x16D660: 83 FF 02 74 05 83 FF 05 → 90 90 90 90 90 90 90 90
  • +
+

Skip CAMERA DEVICE ERROR prompt

+
    +
  • 0x36F3FB: 84 → 81
  • +
+

1P Premium Free

+
    +
  • 0x32F5C7: 75 → EB
  • +
+

2P Premium Free

+
    +
  • 0x32F765: 74 55 → 90 90
  • +
  • 0x32F77B: 74 3F → 90 90
  • +
+

Premium Free Timer Freeze

+
    +
  • 0x16FCAD: FF C8 → 90 90
  • +
+

Standard/Menu Timer Freeze

+
    +
  • 0x387F37: 74 → EB
  • +
+

Cursor lock

+
    +
  • 0x334914: 74 1D → 90 90
  • +
+

CS-Style Song Start Delay

+
    +
  • 0x3539EA: 7D 25 → 90 90
  • +
+

Play video preview on all songs (Normally only some beginner songs do this)

+
    +
  • 0x11CA4C: 0F B6 → EB 2F
  • +
  • 0x11FDFE: 74 0E → 90 90
  • +
+

Hide INSERT COIN[S] text

+
    +
  • 0x107279: 3B → 3A
  • +
+

Hide CREDIT %d text

+
    +
  • 0x106DF8: 0C → 0B
  • +
+

Hide CREDIT %d COIN %d / %d text

+
    +
  • 0x106DCD: 17 → 16
  • +
+

Hide EXTRA PASELI: %d text

+
    +
  • 0x106EE9: 43 → 42
  • +
+

Hide PASELI: %d text

+
    +
  • 0x1070B8: A4 → A3
  • +
+

Hide PASELI: NO ACCOUNT text

+
    +
  • 0x10717B: 21 → 20
  • +
+

Hide PASELI: ** text

+
    +
  • 0x1070DD: 9F → 9E
  • +
+

Free play text to LED ticker (Bottom Right)

+
    +
  • 0x106F9F: 35 2F 35 00 → D9 68 44 02
  • +
+

LED Ticker (Top Left)

+
    +
  • 0x36D780: FC B9 1C 00 → 98 01 3A 02
  • +
  • 0x36D958 74 3C → 90 90
  • +
+

Quick Retry (Guest and non-VIP card players can hold VEFX and Effect during a song to quickly restart)

+
    +
  • 0x1583BF: 32 C0 → B0 01
  • +
+

Expert Course Force Open (In offline or local mode)

+
    +
  • 0x32F711: 75 → EB
  • +
+

Shorter monitor check (Runs for 2 seconds instead of 20, only use if your framerate is extremely stable or you will have issues)

+
    +
  • 0x366E6C: B0 04 → 78 00
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx25/problems/index.html b/site/games/iidx25/problems/index.html new file mode 100644 index 0000000..db0c27e --- /dev/null +++ b/site/games/iidx25/problems/index.html @@ -0,0 +1,628 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

IIDX 25 Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC (ADE-6291)

+

Konami (2018)

+

Based on an AMD Embedded R Series SoC.

+

CPU: AMD RX-421BD

+

GPU: Radeon R7

+

RAM: 4 GB

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Camera Device Error Message

+
+

The game released with two USB cameras and naturally it's looking for them, if you do not have two cameras plugged into your computer then the game outputs this error, which can be ignored simply by hitting Test or waiting 60 seconds for it to be auto-dismissed.

+

But if you're tired of this message every time you start up the game, the CAMERA DEVICE ERROR message can be removed via a hex edit, check out the Hex Edits section for an easy drag and drop solution.

+
+

Occasional Game Stutters During Play

+
+

Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools -realtime parameter to your .bat file.

+
+

HD and HD*

+
+

This version of IIDX has two HD mode options, HD and HD* neither is inherently better than the other, the only difference is HD* is an additional + 1.0 offset in-game, the official reasoning is to account for a different set of monitors on arcade cabs. In beatmania IIDX 26 ROOTAGE this option is removed entirely and only HD is present.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+

A Note About SSE 4.2

+
+

In the rare case you are running this game on very old hardware, IIDX 25 requires a processor supporting the SSE 4.2 instruction set. But, in the event your processor does not have this, there is a hex edit available to bypass this.

+
+

When I Run This Game All Other Background Audio Is Gone! What's Going On?

+
+

64-bit versions of IIDX are now utilizing a feature in Windows called WASAPI exclusive mode to obtain less audio latency than the former 32-bit versions of the games which used DirectSound. Unfortunately, this cannot be changed.

+
+

I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac!

+
+

Several external DACs have issues with WASAPI exclusive mode and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx25/setup/index.html b/site/games/iidx25/setup/index.html new file mode 100644 index 0000000..927f7a3 --- /dev/null +++ b/site/games/iidx25/setup/index.html @@ -0,0 +1,657 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

beatmania IIDX 25 CANNON BALLERS

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice64.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+

If it's your first time running the game, you'll immediately be greeted with this screen, oh no!

+
+

+
+

Ignore this message, simply hit your Test keybind and continue onto this.

+
+

+
+

Hit the Test keybinding again to initialize the backup data, a message will pop up stating it's been initialized.

+
+

+
+

Lastly, you'll run into this error message as well, let's work on eliminating these messages. Let the game run for a bit until the monitor check is complete and you should be taken to the service menu pictured below.

+
+

+
+

Start by navigating up to CLOCK and entering that menu.

+
+

+
+

Simply hit save and exit and leave, the clock will be saved. Then, back in the service menu, go up to GAME OPTIONS

+
+

+
+

Once inside that menu, navigate your way up to DEFINITION TYPE and choose either HD or HD* depending on your preferences, both run the game at 720p but have a timing difference addressed on the FAQ page. It might be worth noting that the HD* option is no longer present as of beatmania IIDX 26 ROOTAGE.

+
+

+
+

The game will then count down asking you to confirm the selection before reverting, just hit YES assuming it loaded just fine on your computer. Then, exit out of that menu and head to NETWORK OPTIONS from back inside the service menu.

+
+

+
+

From here, we will need to set a shop name to play, so select the SHOP NAME SETTING option. Once inside, name your shop whatever you desire! For the purpose of the guide, we named it Guide but highly encourage fun and/or lazy names. Once that's done go to EXIT and then SAVE AND EXIT inside of NETWORK OPTIONS once you've chosen your desired name, as pictured below.

+
+

+

+
+

You're all done! From the service menu select GAME MODE and the game should load ready to be played! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx26/hexedits/index.html b/site/games/iidx26/hexedits/index.html new file mode 100644 index 0000000..b325760 --- /dev/null +++ b/site/games/iidx26/hexedits/index.html @@ -0,0 +1,648 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

beatmania IIDX 26 Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For LDJ-2019100700

+
+

All below edits are for bm2dx.dll unless otherwise specified.

+

SSE4.2 Fix (Allows the game to run on processors which do not support the SSE4.2 instruction set. If you can successfully boot the game already, DO NOT USE THIS EDIT!)

+
    +
  • 0x3F8CF7: F3 45 0F → 90 90 90
  • +
+

Unlock All Songs

+
    +
  • 0x16D7B2: 74 10 → 90 90
  • +
+

Unlock All 12s

+
    +
  • 0x16D660: 83 FF 02 74 05 83 FF 05 → 90 90 90 90 90 90 90 90
  • +
+

Skip CAMERA DEVICE ERROR prompt

+
    +
  • 0x36F3FB: 84 → 81
  • +
+

1P Premium Free

+
    +
  • 0x32F5C7: 75 → EB
  • +
+

2P Premium Free

+
    +
  • 0x32F765: 74 55 → 90 90
  • +
  • 0x32F77B: 74 3F → 90 90
  • +
+

Premium Free Timer Freeze

+
    +
  • 0x16FCAD: FF C8 → 90 90
  • +
+

Standard/Menu Timer Freeze

+
    +
  • 0x387F37: 74 → EB
  • +
+

Cursor lock

+
    +
  • 0x334914: 74 1D → 90 90
  • +
+

CS-Style Song Start Delay

+
    +
  • 0x3539EA: 7D 25 → 90 90
  • +
+

Play video preview on all songs (Normally only some beginner songs do this)

+
    +
  • 0x11CA4C: 0F B6 → EB 2F
  • +
  • 0x11FDFE: 74 0E → 90 90
  • +
+

Hide INSERT COIN[S] text

+
    +
  • 0x107279: 3B → 3A
  • +
+

Hide CREDIT %d text

+
    +
  • 0x106DF8: 0C → 0B
  • +
+

Hide CREDIT %d COIN %d / %d text

+
    +
  • 0x106DCD: 17 → 16
  • +
+

Hide EXTRA PASELI: %d text

+
    +
  • 0x106EE9: 43 → 42
  • +
+

Hide PASELI: %d text

+
    +
  • 0x1070B8: A4 → A3
  • +
+

Hide PASELI: NO ACCOUNT text

+
    +
  • 0x10717B: 21 → 20
  • +
+

Hide PASELI: ** text

+
    +
  • 0x1070DD: 9F → 9E
  • +
+

Free play text to LED ticker (Bottom Right)

+
    +
  • 0x106F9F: 35 2F 35 00 → D9 68 44 02
  • +
+

LED Ticker (Top Left)

+
    +
  • 0x36D780: FC B9 1C 00 → 98 01 3A 02
  • +
  • 0x36D958 74 3C → 90 90
  • +
+

Quick Retry (Guest and non-VIP card players can hold VEFX and Effect during a song to quickly restart)

+
    +
  • 0x1583BF: 32 C0 → B0 01
  • +
+

Expert Course Force Open (In offline or local mode)

+
    +
  • 0x32F711: 75 → EB
  • +
+

Shorter monitor check (Runs for 2 seconds instead of 20, only use if your framerate is extremely stable or you will have issues)

+
    +
  • 0x366E6C: B0 04 → 78 00
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx26/problems/index.html b/site/games/iidx26/problems/index.html new file mode 100644 index 0000000..fdb7ad4 --- /dev/null +++ b/site/games/iidx26/problems/index.html @@ -0,0 +1,628 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

IIDX 26 Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC (ADE-6291)

+

Konami (2018)

+

Based on an AMD Embedded R Series SoC.

+

CPU: AMD RX-421BD

+

GPU: Radeon R7

+

RAM: 4 GB

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Camera Device Error Message

+
+

The game released with two USB cameras and naturally it's looking for them, if you do not have two cameras plugged into your computer then the game outputs this error, which can be ignored simply by hitting Test or waiting 60 seconds for it to be auto-dismissed.

+

But if you're tired of this message every time you start up the game, the CAMERA DEVICE ERROR message can be removed via a hex edit, check out the Hex Edits section for an easy drag and drop solution.

+
+

Occasional Game Stutters During Play

+
+

Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools -realtime parameter to your .bat file.

+
+

HD and HD*

+
+

This version of IIDX has removed having two HD mode options, leaving only HD. HD and HD* neither is inherently better than the other, the only difference is HD* is an additional + 1.0 offset in-game, now applied to the lone HD mode. The official reasoning is to account for a different set of monitors on arcade cabs.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+

A Note About SSE 4.2

+
+

In the rare case you are running this game on very old hardware, IIDX 26 requires a processor supporting the SSE 4.2 instruction set. But, in the event your processor does not have this, there is a hex edit available to bypass this.

+
+

When I Run This Game All Other Background Audio Is Gone! What's Going On?

+
+

64-bit versions of IIDX are now utilizing a feature in Windows called WASAPI exclusive mode to obtain less audio latency than the former 32-bit versions of the games which used DirectSound. Unfortunately, this cannot be changed.

+
+

I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac!

+
+

Several external DACs have issues with WASAPI exclusive mode and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx26/setup/index.html b/site/games/iidx26/setup/index.html new file mode 100644 index 0000000..4f3c65d --- /dev/null +++ b/site/games/iidx26/setup/index.html @@ -0,0 +1,657 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

beatmania IIDX 26 Rootage

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice64.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+

If it's your first time running the game, you'll immediately be greeted with this screen, oh no!

+
+

+
+

Ignore this message, simply hit your Test keybind and continue onto this.

+
+

+
+

Hit the Test keybinding again to initialize the backup data, a message will pop up stating it's been initialized.

+
+

+
+

Lastly, you'll run into this error message as well, let's work on eliminating these messages. Let the game run for a bit until the monitor check is complete and you should be taken to the service menu pictured below.

+
+

+
+

Start by navigating up to CLOCK and entering that menu.

+
+

+
+

Simply hit save and exit and leave, the clock will be saved. Then, back in the service menu, go up to GAME OPTIONS

+
+

+
+

Once inside that menu, navigate your way up to DEFINITION TYPE and choose either SD or HD depending on your preferences.

+
+

+
+

The game will then count down asking you to confirm the selection before reverting, just hit YES assuming it loaded just fine on your computer. Then, exit out of that menu and head to NETWORK OPTIONS from back inside the service menu.

+
+

+
+

From here, we will need to set a shop name to play, so select the SHOP NAME SETTING option. Once inside, name your shop whatever you desire! For the purpose of the guide, we named it Guide but highly encourage fun and/or lazy names. Once that's done go to EXIT and then SAVE AND EXIT inside of NETWORK OPTIONS once you've chosen your desired name, as pictured below.

+
+

+

+
+

You're all done! From the service menu select GAME MODE and the game should load ready to be played! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx27/hexedits/index.html b/site/games/iidx27/hexedits/index.html new file mode 100644 index 0000000..a795c5e --- /dev/null +++ b/site/games/iidx27/hexedits/index.html @@ -0,0 +1,543 @@ + + + + + + + + + beatmania IIDX 27 Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

beatmania IIDX 27 Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For LDJ-2020092900

+
+

Hello I know I left this page up thank you.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx27/lightning/index.html b/site/games/iidx27/lightning/index.html new file mode 100644 index 0000000..5cbab42 --- /dev/null +++ b/site/games/iidx27/lightning/index.html @@ -0,0 +1,602 @@ + + + + + + + + + Lightning Mode Specifics - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

beatmania IIDX 27 Lighting Mode Information

+

Notes

+
+

Booting the game in Lightning Mode requires a few things. To start off with, you will need to enable the -iidxtdj option in SpiceTools and you will also need to enable the Enable Lightning Mode hex edit inside of SpiceTools and SpiceCompanion's patches tab.

+

In doing so, and subsequently every time you choose to switch between the two modes, you will want to delete everything inside your dev/nvram folder, and redo the setup process again with initializing the backup date, setting the clock, shop name, and the definition type.

+

SpiceTools as of 10/26/2020 has some updated features to work with this as well. Namely, the ability to toggle the Lightning Model subscreen via the Toggle Subscreen option in the Buttons tab. You can use your mouse to navigate the touchscreen as desired. Enter your pin, toggle buttons, etc.

+

SpiceCompanion has also as of 10/26/2020 added a brand new Screen feature as well. Using SpiceCompanion, you can receive the subscreen on your phone/tablet/etc and then use your device as a touch device for the subscreen. Do note that at this time it will not work while the game is running in windowed mode. If you run into performance issues, go to the settings tab to adjust things like the Screen Quality, Screen Threads, and Screen Divide, this feature is heavily dependent on connection and you will notice as you bump up the quality that the ping will increase as well. It may take some fiddling to find the most ideal settings for your setup.

+
+

Lightning-specific Troubleshooting

+
+

Below are the two main issues that have arisen for users utilizing this guide and general startup practices.

+
+

Hardware Specs

+
+

Bemani PC Type 11 (ARESPEAR C300)

+

Konami (2019)

+

Based on KONAMI ARESPEAR C300 gaming PC.

+

CPU: Intel i5-9400F 2.9Ghz

+

GPU: GIGABYTE GeForce GTX 1650 1530Mhz 4GB

+

RAM: 8 GB DDR4

+

STORAGE: Innodisk 2.5" 3ME3 SATA SSD 256GB

+

AUDIO: ASUS Xonar AE

+

OS: Windows 10 IoT Enterprise

+
+

Enabling Lighting Mode Patch

+
+

If you get a stack trace in your log.txt with the following line...

+

I:stackwalker: 00000001805FC970 (bm2dx): (unknown): dll_entry_main

+

Please enable the lightning mode patch in SpiceTool's patch manager.

+
+ +
+

If you get a stack trace in your log.txt that looks like this...

+

exception raised: EXCEPTION_ACCESS_VIOLATION

+

[2020/10/22 18:20:21] I:signal: printing callstack

+

[2020/10/22 18:20:21] I:stackwalker: 000000018026E906 (bm2dx): (unknown): (unknown)

+

For cab type 1 (LDJ), change your audio device to motherboard audio and/or use -audiobackend asio -asiodriverid ... -audiodummy

+

For cab type 2 (TDJ, with -iidxtdj or another means), you have a few options:

+

1) Use -iidxasio "Driver Name Here" to set the ASIO driver used by IIDX's own ASIO handler. (Does not work with all ASIO drivers, they designed it to work best with a specific revision of the XONAR SOUNCARD(64))

+

2) Use -iidxsounddevice wasapi to set IIDX to use WASAPI instead of its own ASIO handler.

+

3) Use -iidxsounddevice wasapi along with -audiobackend asio ... to have the game pipe audio through Spice's own ASIO handler which is more compatible with various ASIO drivers

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx27/problems/index.html b/site/games/iidx27/problems/index.html new file mode 100644 index 0000000..a16233f --- /dev/null +++ b/site/games/iidx27/problems/index.html @@ -0,0 +1,617 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

IIDX 27 Common Problems/Tips

+
+

Author Note:

+

For lightning specific issues, see lightning cab notes

+
+

Hardware Specs

+
+

(These are the specs for non-lightning model cab running Heroic Verse)

+

Bemani PC Type 9 (ADE-6291)

+

Konami (2017)

+

Based on an AMD Embedded R Series SoC.

+

CPU: AMD RX-421BD 2.1/3.4GHz APU

+

GPU: Radeon R7 800Mhz

+

RAM: 4 GB

+

STORAGE: innodisk 3ME2 mSATA SSD 256GB

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz or 120hz framerate, depending on if you're in LDJ or TDJ mode. The game is hardcoded to run at these specific framerates and this cannot be changed. To solve this, set your monitor's refresh rate to match if you're in LDJ 60hz or TDJ 120hz mode. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard or around 120.00hz. If it's not around there and your monitor is indeed set correctly for the given mode, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Occasional Game Stutters During Play

+
+

Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools -realtime parameter to your .bat file.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+

A Note About SSE 4.2

+
+

In the rare case you are running this game on very old hardware, IIDX 27 requires a processor supporting the SSE 4.2 instruction set. But, in the event your processor does not have this, there is a hex edit available to bypass this.

+
+

When I Run This Game All Other Background Audio Is Gone! What's Going On?

+
+

64-bit versions of IIDX are now utilizing a feature in Windows called WASAPI exclusive mode to obtain less audio latency than the former 32-bit versions of the games which used DirectSound. Unfortunately, this cannot be changed.

+
+

I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac!

+
+

Several external DACs have issues with WASAPI exclusive mode and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/iidx27/setup/index.html b/site/games/iidx27/setup/index.html new file mode 100644 index 0000000..212c32c --- /dev/null +++ b/site/games/iidx27/setup/index.html @@ -0,0 +1,670 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

beatmania IIDX 27 Heroic Verse

+
+

Author Note:

+

For hex edits: Use the Patches tab in SpiceTools or SpiceCompanion.

+

For lightning mode specifics: they are found here

+
+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's contents folder, Pictured below is what your folder should look like.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up spicecfg.exe and head to the Options where we'll set our desired parameters. For the purpose of this guide, we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

You will have to likely generate a .bat file given your existing tool's documentation. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs and to consult appropriate support if you're unsure how to do this.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, inside Options tab we're going to click on the following: E-Amusement Emulation: -ea and Windowed Mode: -w to enable them.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the selected options inside the Options tab in spicecfg.exe.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On the Service URL: -url parameter, we're going to input our chosen network URL like so: http://yoururlhere.com/

+

To go alongside this, we'll also be inputting into the PCBID: -p parameter, the PCBID given to us from our network, like so: XXXXXXXXXXXXXXXXXXXX

+

Lastly, we'll click on the Windowed Mode: -w parameter.

+

What do these different parameters do?

+
    +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the selected options inside the Options tab in spicecfg.exe.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds inside the Buttons and Analogs tabs! If you'd like an example, I've shown my keybindings below on a DJ DAO FP7 from the 1P side. Make sure you setup the Test keybind as it will be critical for setting up the game.

+
+

+
+

Once you've done that, launch your game for the first time by double clicking the spice64.exe and the game should load with your chosen parameters from spicecfg.exe.

+

If it's your first time running the game, you'll immediately be greeted with this screen, oh no!

+
+

+
+

Ignore this message, simply hit your Test keybind and continue onto this.

+
+

+
+

Hit the Test keybinding to initialize the backup data, a message will pop up stating it's been initialized.

+
+

+
+

You'll also run into this error message as well, let's work on eliminating these messages. Let the game run for a bit until the monitor check is complete and you should be taken to the service menu pictured below.

+
+

+
+

Start by navigating up to CLOCK and entering that menu.

+
+

+
+

Simply hit save and exit and leave, the clock will be saved. Then, back in the service menu, go up to GAME OPTIONS

+
+

+
+

Once inside that menu, navigate your way up to DEFINITION TYPE and choose either SD or HD depending on your preferences.

+
+

+
+

The game will then count down asking you to confirm the selection before reverting, just hit YES assuming it loaded just fine on your computer. Then, exit out of that menu and head to NETWORK OPTIONS from back inside the service menu.

+

If it doesn't transition to HD, after you've saved, you can simply reboot the game and all should be well.

+
+

+
+

The final thing we need to set is here inside NETWORK OPTIONS, we will need to set a shop name to play, so select the SHOP NAME SETTING option. Once inside, name your shop whatever you desire! For the purpose of the guide, we named it Guide but highly encourage fun and/or lazy names. Once that's done go to EXIT and then SAVE AND EXIT inside of NETWORK OPTIONS once you've chosen your desired name, as pictured below.

+
+

+

+
+

You're all done! From the service menu select GAME MODE and the game should load ready to be played! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+

Lightning Mode specifics can be found: here

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/jubeatclan/hexedits/index.html b/site/games/jubeatclan/hexedits/index.html new file mode 100644 index 0000000..6f19295 --- /dev/null +++ b/site/games/jubeatclan/hexedits/index.html @@ -0,0 +1,572 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

jubeat clan Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For L44-2018070901

+
+

Disable Tutorial

+
    +
  • jubeat.dll: 0xCFFC7: 75 4A 57 68 00 -> E9 90 00 00 00
  • +
+

Song Select Timer Freeze

+
    +
  • jubeat.dll: 0xA5A49: 75 -> EB
  • +
+

Expert Options Lock (Toggling on expert option keeps it on for every future play)

+
    +
  • jubeat.dll: 0xD4699: 89 1D -> EB 0B
  • +
+

Online Matching Skip

+
    +
  • jubeat.dll: 0xBCDCE: 7D -> EB
  • +
+

Unlock All Songs

+
    +
  • music_db.dll 0x1B8F: 74 09 -> 90 90
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/jubeatclan/problems/index.html b/site/games/jubeatclan/problems/index.html new file mode 100644 index 0000000..cfa6750 --- /dev/null +++ b/site/games/jubeatclan/problems/index.html @@ -0,0 +1,585 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

jubeat clan Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC (ADE-704A)

+

This board has a E4690 Radeon MXM card.

+

CPU: Intel Celeron B810

+

GPU: AMD Radeon E4690

+

Chipset: Intel HM65

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Occasional Game Stutters During Play

+
+

Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools -realtime parameter to your .bat file.

+
+

My Touchscreen Isn't Working!

+
+

There's a myriad of reasons for this. With SpiceTools in most cases, try using the -wintouch parameter if rawinput is not working for your monitor.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/jubeatclan/setup/index.html b/site/games/jubeatclan/setup/index.html new file mode 100644 index 0000000..7348b9f --- /dev/null +++ b/site/games/jubeatclan/setup/index.html @@ -0,0 +1,629 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

jubeat clan

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's main folder and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice.exe -ea and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+

If it's your first time running the game, you'll immediately be greeted with this screen (cropped to save your sanity with scrolling repeatedly on the page), oh no!

+
+

+
+

This is okay, you can use your mouse or touchscreen to simply hit TEST to initialize the backup data, the game will prompt you to reboot, but let's save ourselves some time and instead go into the GAME OPTIONS menu instead, as shown below. If you rebooted, you will see a message telling you to set the "Shop Settings" which is what we're going to now do, as shown below.

+
+

+
+

Enter the GAME OPTIONS menu and proceed to the SHOP SETTINGS menu.

+
+

+
+

From here, we will need to set the SHOP NAME SETTINGS. This is a simple process, simply navigate using the controls in the menu to set any name you desire! For the purpose of the guide, we named it Guide but highly encourage fun and/or lazy names. Lastly, if you're not connected to an online network, you'll need to set the SHOP AREA as well, navigate to any option you prefer, they're all predefined so you can't get creative here, pictured below is what we set ours to.

+
+

+
+

With that, you're all done! Simply exit the service menu or reboot then enjoy the game, have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/musecafinal/hexedits/index.html b/site/games/musecafinal/hexedits/index.html new file mode 100644 index 0000000..232eb82 --- /dev/null +++ b/site/games/musecafinal/hexedits/index.html @@ -0,0 +1,563 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

MUSECA 1+1/2 Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits for PIX-2018073002

+
+

All edits below are for museca.dll unless otherwise specified.

+

Infinite Final Layer

+
    +
  • 0x17E587: FF 83 48 14 00 00 -> 90 90 90 90 90 90
  • +
  • 0x17E4DF: 7F 08 -> 90 90
  • +
  • 0x17E060: 8B 81 48 14 00 00 -> B8 03 00 00 00 90
  • +
+

Auto Event Mode Toggled (Freeplay (Coin Options) Must be "ON" for this to Work Efficiently)

+
    +
  • 0x196431: 89 01 88 41 10 C7 41 14 01 00 00 00 C3 CC CC CC CC -> C7 01 01 00 00 00 88 41 10 C7 41 14 01 00 00 00 C3
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/musecafinal/problems/index.html b/site/games/musecafinal/problems/index.html new file mode 100644 index 0000000..fa90cff --- /dev/null +++ b/site/games/musecafinal/problems/index.html @@ -0,0 +1,611 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

MUSECA 1+1/2 Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC (ADE-6291)

+

Konami (2018)

+

Based on an AMD Embedded R Series SoC.

+

CPU: AMD RX-421BD

+

GPU: Radeon R7

+

RAM: 4 GB

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Occasional Game Stutters During Play

+
+

Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools -realtime parameter to your .bat file.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+

Booting the Game in Offline Mode

+
+

If your game version is PIX-2018073002, this version supports turning off E-Amusement. In order to do that, change the game code to J:B:A (<spec>B</spec> in prop/ea3-config.xml), disable/disconnect all network adapters and turn set the E-Amusement setting in the game's operator menu to OFF.

+
+

When I Run This Game All Other Background Audio Is Gone! What's Going On?

+
+

Museca is a 64-bit game utilizing a feature in Windows called WASAPI exclusive mode to obtain less audio latency. Unfortunately, this cannot be changed.

+
+

I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac!

+
+

Several external DACs have issues with WASAPI exclusive mode and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/musecafinal/setup/index.html b/site/games/musecafinal/setup/index.html new file mode 100644 index 0000000..37b48d3 --- /dev/null +++ b/site/games/musecafinal/setup/index.html @@ -0,0 +1,622 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

MUSECA 1+1/2

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice64.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

It's important to note before booting the game that Museca uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our main monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into Display Settings, then simply set the orientation to Portrait as pictured.

+

In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is -w and can be placed right after any other desired parameters chosen in our gamestart.bat

+

+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load and be ready to be enjoyed! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/nostforte/hexedits/index.html b/site/games/nostforte/hexedits/index.html new file mode 100644 index 0000000..bbe5658 --- /dev/null +++ b/site/games/nostforte/hexedits/index.html @@ -0,0 +1,553 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

NOSTALGIA FORTE Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For PAN-2018062002

+
+

At the time of writing, no hex edits have been worked on for Nostalgia.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/nostforte/problems/index.html b/site/games/nostforte/problems/index.html new file mode 100644 index 0000000..697dbe9 --- /dev/null +++ b/site/games/nostforte/problems/index.html @@ -0,0 +1,593 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

NOSTALGIA FORTE Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 6 (ADE-704A)

+

Based on an AMD Embedded R Series SoC.

+

CPU: Intel Celeron B810

+

GPU: AMD Radeon E4690

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Occasional Game Stutters During Play

+
+

Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools -realtime parameter to your .bat file.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+

No Matter What I Do, the Game Crashes and I Have Multiple Monitors!

+
+

This problem is somewhat irregular, but sometimes Nostalgia has issues booting with multiple monitors present, particularly when trying to boot the game windowed. Make sure you're running the latest SpiceTools which has attempted to resolve all instances of this issue.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/nostforte/setup/index.html b/site/games/nostforte/setup/index.html new file mode 100644 index 0000000..4be19da --- /dev/null +++ b/site/games/nostforte/setup/index.html @@ -0,0 +1,642 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

NOSTALGIA FORTE

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's main folder and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate ONLY a local network configuration with SpiceTools. Why only local? Because none of the most typical places currently support Nostalgia. Regardless, please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice64.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+

If it's your first time running the game, you should be automatically forced into the service menu with lots of scary flashing notifications as pictured below, let's work through them.

+
+

+
+

Interestingly, only the red flashing ones really take any effort to deal with. You can start by entering and exiting the following menus: SOUND OPTIONS, GAME OPTIONS, COIN OPTIONS, ECOMODE OPTIONS, and NETWORK OPTIONS.

+

Once you've done that, enter CLOCK and set the clock by hitting SAVE AND EXIT as pictured below.

+
+

+
+

The final menu we must deal with is VIRTUAL COIN, enter the menu and select OPERATION SETTINGS as seen below.

+
+

+
+

Once inside this menu, we'll need to deal with all 4 blinking options, let's start by entering the TAX RATE SETTING menu, shown below.

+
+

+
+

Set the tax rate by simply selecting SAVE AND EXIT while will take us back into the OPERATING SETTINGS. Pictured below is the TAX RATE SETTING menu.

+
+

+
+

Once back inside the TAX RATE SETTING menu, we must deal with the three blinking PATTERN options. Doing so is effortless, simply enter all three menus one by one and hit SAVE AND EXIT just as we did for the TAX RATE SETTING in the previous step. Pictured below is the inside of PATTERN 1.

+
+

+
+

After saving and exiting all three PATTERN options, you're all done! From the service menu select GAME MODE and the game should load ready to be played! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/nostop2/hexedits/index.html b/site/games/nostop2/hexedits/index.html new file mode 100644 index 0000000..b3003b0 --- /dev/null +++ b/site/games/nostop2/hexedits/index.html @@ -0,0 +1,574 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

NOSTALGIA OP.2 Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For PAN-20191002/PAN-2019112700

+
+

Menu Timer Freeze

+
    +
  • nostalgia.dll: 0x303D33: 41 FF C8 -> 90 90 90
  • +
+

Shorter Monitor Check

+
    +
  • nostalgia.dll: 0x21A6FA: 1E -> 00
  • +
+

Hide "EXTRA PASELI: %d"

+
    +
  • nostalgia.dll: 0x307BD2: CA 2F 2A -> 04 72 26
  • +
  • nostalgia.dll: 0x307BEE: 7E 2F 2A -> E8 71 26
  • +
+

Hide "PASELI: *"

+
    +
  • nostalgia.dll: 0x307A6E: FF 15 14 42 09 00 -> E9 A0 01 00 00 90
  • +
+

Hide Credit Count

+
    +
  • nostalgia.dll: 0x307E31: BB 2B 2A -> A5 6F 26
  • +
  • nostalgia.dll: 0x307E4D: 7F 2B 2A -> 89 6F 26
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/nostop2/problems/index.html b/site/games/nostop2/problems/index.html new file mode 100644 index 0000000..415d3db --- /dev/null +++ b/site/games/nostop2/problems/index.html @@ -0,0 +1,593 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

NOSTALGIA OP.2 Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 6 (ADE-704A)

+

Based on an AMD Embedded R Series SoC.

+

CPU: Intel Celeron B810

+

GPU: AMD Radeon E4690

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast!

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Occasional Game Stutters During Play

+
+

Sometimes you might have occasional stutters during play, while solutions can vary wildly from general performance issues to bad hard drives, try adding SpiceTools -realtime parameter to your .bat file.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+

No Matter What I Do, the Game Crashes and I Have Multiple Monitors!

+
+

This problem is somewhat irregular, but sometimes Nostalgia has issues booting with multiple monitors present, particularly when trying to boot the game windowed. Make sure you're running the latest SpiceTools which has attempted to resolve all instances of this issue.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/nostop2/setup/index.html b/site/games/nostop2/setup/index.html new file mode 100644 index 0000000..b867971 --- /dev/null +++ b/site/games/nostop2/setup/index.html @@ -0,0 +1,642 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

NOSTALGIA OP.2

+
+

Warning:

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential audio issues on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

Once that's done, it's time to work on setting up your data.

+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's main folder and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file whatever you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate ONLY a local network configuration with SpiceTools. Why only local? Because none of the most typical places currently support Nostalgia. Regardless, please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice64.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Final Steps and Setting up the Game

+
+

The last steps you'll have to do with your chosen tools is simply setting up your desired keybinds! Make sure you setup the Test keybind as it will be critical for setting up the game. Once you've done that, launch your game for the first time by double clicking the .bat you setup and the game should load.

+

If it's your first time running the game, you should be automatically forced into the service menu with lots of scary flashing notifications as pictured below, let's work through them.

+
+

+
+

Interestingly, only the red flashing ones really take any effort to deal with. You can start by entering and exiting the following menus: SOUND OPTIONS, GAME OPTIONS, COIN OPTIONS, ECOMODE OPTIONS, and NETWORK OPTIONS.

+

Once you've done that, enter CLOCK and set the clock by hitting SAVE AND EXIT as pictured below.

+
+

+
+

The final menu we must deal with is VIRTUAL COIN, enter the menu and select OPERATION SETTINGS as seen below.

+
+

+
+

Once inside this menu, we'll need to deal with all 4 blinking options, let's start by entering the TAX RATE SETTING menu, shown below.

+
+

+
+

Set the tax rate by simply selecting SAVE AND EXIT while will take us back into the OPERATING SETTINGS. Pictured below is the TAX RATE SETTING menu.

+
+

+
+

Once back inside the TAX RATE SETTING menu, we must deal with the three blinking PATTERN options. Doing so is effortless, simply enter all three menus one by one and hit SAVE AND EXIT just as we did for the TAX RATE SETTING in the previous step. Pictured below is the inside of PATTERN 1.

+
+

+
+

After saving and exiting all three PATTERN options, you're all done! From the service menu select GAME MODE and the game should load ready to be played! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/popnpeace/hexedits/index.html b/site/games/popnpeace/hexedits/index.html new file mode 100644 index 0000000..23bb29b --- /dev/null +++ b/site/games/popnpeace/hexedits/index.html @@ -0,0 +1,585 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Pop'n Peace Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For M39-2020092800

+
+

E: Drive fix

+
    +
  • popn22.dll: 0x286AA8: 65 3A 2F -> 64 65 76
  • +
+

HDMI Audio Fix

+
    +
  • popn22.dll 0x13442C: 85 C0 75 96 -> 90 90 90 90
  • +
+

Prevent Windows volume change on boot

+
    +
  • popn22.dll: 0x137030: 83 -> C3
  • +
+

Boot to Event Mode

+
    +
  • popn22.dll 0x108DC0: 8B 00 C3 CC -> 31 C0 40 C3
  • +
+

Timer Freeze

+
    +
  • popn22.dll 0xE294C: 0F 85 -> 0x90 E9
  • +
+

Skip Menu and Long Note Tutorials

+
    +
  • popn22.dll 0x28E0B: 74 -> EB
  • +
  • popn22.dll 0x28DE7: 75 -> EB
  • +
  • popn22.dll 0x8AE71: 75 -> EB
  • +
+

Unlock All Songs

+
    +
  • popn22.dll 0x10D2E2: 74 -> EB
  • +
  • popn22.dll 0x10D2FB: 75 46 -> 90 90
  • +
  • popn22.dll 0x10D318: 74 3A -> 90 90
  • +
  • popn22.dll 0x10D33B: 84 C0 -> B0 01
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/popnpeace/problems/index.html b/site/games/popnpeace/problems/index.html new file mode 100644 index 0000000..1f408de --- /dev/null +++ b/site/games/popnpeace/problems/index.html @@ -0,0 +1,594 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Pop'n Peace Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 4

+

CPU: Intel Celeron B810 1.6GHz

+

GPU: ATI Radeon E4690 MXM

+

OS: Windows XP Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Why Is the In-Game Text Garbled?

+
+

The in-game text requires a Japanese locale to display the Japanese characters correctly, look up a guide for your specific operating system on how to switch your operating system's locale to Japanese.

+
+

The game crashes fullscreen!

+
+

Some monitors and display adapters may not support the odd resolution the game runs at, which is 1360x768 versus the occasionally seen 1366x768. To resolve, setup a custom resolution inside your appropriate graphic's card settings, or enable GPU resolution scaling.

+
+

Other Crashes

+
+

This game requires an E: drive to be named by the computer. If you do not have one, make sure to apply the E: Drive fix hex edit

+

It may also fail to boot regardless of this, such as in the case of using HDMI audio. Even if you're not using HDMI audio however, some failures to boot have been noted. For safety, make sure to also apply the HDMI Audio Fix hex edit unless you're using the latest SpiceTools which fixes this issue.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/popnpeace/setup/index.html b/site/games/popnpeace/setup/index.html new file mode 100644 index 0000000..5ca6a01 --- /dev/null +++ b/site/games/popnpeace/setup/index.html @@ -0,0 +1,626 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Pop'n Peace

+
+

Warning

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's contents folder. Pictured below is what your folder should look like.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up spicecfg.exe and head to the Options tab. Here you can configure all of the various options that SpiceTools has, but for the purpose of this guide we'll demonstrate how to set up a local server and an online server. You can skip over the parts that you don't need, and feel free to set any other options that you might like.

+
+
+

If you're not using SpiceTools:

+

It's most likely that your toolkit doesn't have an options interface, so you'll have to create a .bat file. Consult the appropriate documentation for this as this isn't covered in this guide.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, in the Options tab enable the following options: E-Amusement Emulation: -ea and Windowed Mode: -w.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the selected options in spicecfg.exe.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different options!

+

We're going to use the option PCBID: -pcbid for our PCBID, with XXXXXXXXXXXXXXXXXXXX as the value.
+For the network URL we're going to use the option Service URL: -url, with http://yoururlhere.com/ as the value.
+We'll also enable windowed mode by enabling the option Windowed Mode: -w.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to disable -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the enabled options in spicecfg.exe.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Configuring Keybinds

+
+

While we're still in spicecfg.exe, why not set up the keybinds? To do this you'll have to head on over to the Buttons tab. Here you simply click Bind and press the button on your controller (or keyboard). Below are my keybinds of an arduino based controller. Notice that I've also bound the Service, Test and Coin Mech buttons to my keyboard. This might come in handy but shouldn't be necessary to play the game.

+
+

+

Booting

+
+

With that, you're all done! Boot the game by double-clicking spice.exe and the game should load and be ready to be enjoyed! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/popnusaneko/hexedits/index.html b/site/games/popnusaneko/hexedits/index.html new file mode 100644 index 0000000..ad9640d --- /dev/null +++ b/site/games/popnusaneko/hexedits/index.html @@ -0,0 +1,594 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Pop'n Usaneko Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For M39-2018082100

+
+

E: Drive fix

+
    +
  • popn22.dll: 0x25A5D0: 65 3A 2F -> 64 65 76
  • +
+

HDMI Audio Fix

+
    +
  • popn22.dll 0x12C26C: 85 C0 75 96 -> 90 90 90 90
  • +
+

Prevent Windows volume change on boot

+
    +
  • popn22.dll: 0x12EE70: 83 -> C3
  • +
+

Boot to Event Mode

+
    +
  • popn22.dll 0x100A10: 8B 00 C3 CC -> 31 C0 40 C3
  • +
+

Timer Freeze

+
    +
  • popn22.dll 0xDB3F2: C7 45 38 09 00 00 00 -> 90 90 90 90 90 90 90
  • +
+

Partial Song Unlock (NOTE: This does not unlock all songs, see the notes below.

+
    +
  • popn22.dll 0x1E0524 - 0x1E073F: fill with zeros (00)
  • +
+

Unlock Classic 8 EX as a 49

+
    +
  • popn22.dll 0x2AC1DB: 05 -> 07
  • +
  • popn22.dll 0x2AC1EB: 01 -> 31
  • +
+

Network Adapter Fix (for matching online/local)

+
    +
  • libavs-win32.dll: '0x3A13D: 8B 7C 24 08 8B D5 8B -> BA 01 00 00 00 EB B5'
  • +
+
+

Notes

+
+

Since we don't have hex edits to unlock songs that are both new and old (eclale songs, SDVX FLOOR INFECTION, etc.) Here is an unlocked DLL with both the HDMI audio fix and E: drive fix already done.

+

This will unlock all songs in pop'n 24, 23 and the floor infection songs in pop'n 23 and 22. This also takes away the hold note identifier on the menus, so you don't have to have that annoying hold note tutorial if you play without a card or offline.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/popnusaneko/problems/index.html b/site/games/popnusaneko/problems/index.html new file mode 100644 index 0000000..c48eccb --- /dev/null +++ b/site/games/popnusaneko/problems/index.html @@ -0,0 +1,604 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Pop'n Usaneko Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 4

+

CPU: Intel Celeron B810 1.6GHz

+

GPU: ATI Radeon E4690 MXM

+

OS: Windows XP Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Why Is the In-Game Text Garbled?

+
+

The in-game text requires a Japanese locale to display the Japanese characters correctly, look up a guide for your specific operating system on how to switch your operating system's locale to Japanese.

+
+

The game crashes fullscreen!

+
+

Some monitors and display adapters may not support the odd resolution the game runs at, which is 1360x768 versus the occasionally seen 1366x768. To resolve, setup a custom resolution inside your appropriate graphic's card settings, or enable GPU resolution scaling.

+
+

Other Crashes

+
+

This game requires an E: drive to be named by the computer. If you do not have one, make sure to apply the E: Drive fix hex edit

+

It may also fail to boot regardless of this, such as in the case of using HDMI audio. Even if you're not using HDMI audio however, some failures to boot have been noted. For safety, make sure to also apply the HDMI Audio Fix hex edit unless you're using the latest SpiceTools which fixes this issue.

+
+

How to Unlock Songs

+
+

Without an appropriate hex edit available, the game is missing song unlocks. To resolve this, I've provided an unlocked DLL with BOTH the HDMI audio fix and E: drive fix already applied. You can download it here

+

Simply replace it with your existing one inside the contents folder of your game installation. When asked to replace, hit yes.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/popnusaneko/setup/index.html b/site/games/popnusaneko/setup/index.html new file mode 100644 index 0000000..070057a --- /dev/null +++ b/site/games/popnusaneko/setup/index.html @@ -0,0 +1,614 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Pop'n Usaneko

+
+

Warning

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file anything you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your gamestart.bat and the game should load and be ready to be enjoyed! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/reflesia/hexedits/index.html b/site/games/reflesia/hexedits/index.html new file mode 100644 index 0000000..18c7240 --- /dev/null +++ b/site/games/reflesia/hexedits/index.html @@ -0,0 +1,556 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Reflec Beat Reflesia Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For MBR-2018121100

+
+

E:\ drive fix

+
    +
  • reflecbeat.dll: 0x28B0FC: 65 3A 2F -> 64 65 76
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/reflesia/problems/index.html b/site/games/reflesia/problems/index.html new file mode 100644 index 0000000..f3dac67 --- /dev/null +++ b/site/games/reflesia/problems/index.html @@ -0,0 +1,600 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

REFLEC BEAT: Reflesia Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC (ADE-704A)

+

CPU: Intel Celeron B810 1.6GHz

+

GPU: E4690 Radeon MXM

+

OS: Windows XP Embedded

+
+

My Game Doesn't Boot After Following the Guide!

+
+

The most common problem present here is if you do not have an E:/ drive. To resolve this issue, you must apply the E:/drive fix hex edit found here.

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-).

+
+

Failed to Create Texture Error in SpiceTools

+
+

If your error is along the lines of a failure to create a texture W:afputils: CTexture::create_texture テクスチャの作成に失敗しました。 then boot the game without touching anything, even your mouse, maybe give it a few tries, it's admittedly a strange issue with no exact science behind it discovered.

+
+

I Get a White Screen That Silently Closes After a Few Seconds

+
+

Reflesia runs at 768x1360 opposed to more common resolutions. If your monitor doesn't have support for this, try making a custom resolution in your graphic's cards options. Also, make sure your monitor is in portrait mode as opposed to landscape.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/reflesia/setup/index.html b/site/games/reflesia/setup/index.html new file mode 100644 index 0000000..0e6789d --- /dev/null +++ b/site/games/reflesia/setup/index.html @@ -0,0 +1,620 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

REFLEC BEAT: The Reflesia of Eternity

+
+

Warning

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

One other thing, make sure your game folder isn't set to Read Only and that you don't have horribly wonky security permissions in Windows.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is put your desired 32-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file anything you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

It's important to note before booting the game that Reflec Beat uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our main monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into Display Settings, then simply set the orientation to Portrait as pictured.

+

+

In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is -w and can be placed right after any other desired parameters chosen in our gamestart.bat

+

As for the touch stuff, by default SpiceTools should detect your mouse just fine, you can use the -s parameter to have your cursor show at all times above the game window. For touchscreen monitors, it's a bit tricky to write something encompassing them all. Many should be detected automatically, however some may require adding the -wintouch parameter for support.

+

You can check out some documented touchscreen monitors here.

+

With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your gamestart.bat and the game should load and be ready to be enjoyed! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/sdvx4/hexedits/index.html b/site/games/sdvx4/hexedits/index.html new file mode 100644 index 0000000..420fbf4 --- /dev/null +++ b/site/games/sdvx4/hexedits/index.html @@ -0,0 +1,693 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Sound Voltex IV: Heavenly Haven Hex Edits

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For KFC-2019020600

+
+

Auto Event Mode Toggled (Freeplay (Coin Options) must be "ON" for this to work efficiently)

+
    +
  • soundvoltex.dll: 0x19EAD2: 00 > 01
  • +
+

Difficulty Unlock

+
    +
  • soundvoltex.dll: 0x158D42: E8 69 5D 02 -> B8 0D 00 00
  • +
+

Song Unlock

+
    +
  • soundvoltex.dll: 0x1BF579: 8B 44 24 20 E8 3E EB FF FF -> B8 03 00 00 00 90 90 90 90
  • +
+

2 Song Safe

+
    +
  • soundvoltex.dll: 0x17A153: 32 C0 -> B0 01
  • +
+

Premium Free Hack (Combine with 2 Song Safe Hex above for full effect)

+
    +
  • soundvoltex.dll: 0x1D6B8F: 00 -> 02
  • +
  • soundvoltex.dll: 0x1D6D76: 8B 83 64 10 00 00 8D 48 01 83 F9 04 56 57 7F 52 -> B8 01 00 00 00 89 83 64 10 00 00 90 56 57 90 90
  • +
+

Safe Banner Removal

+
    +
  • soundvoltex.dll 0x2FB684: 73 -> 00
  • +
+

Prevent Windows volume change on boot

+
    +
  • soundvoltex.dll: 0x2550CA: E8 21 03 00 00 -> 90 90 90 90 90
  • +
+

Disable EVENT MODE/FREE PLAY text

+
    +
  • soundvoltex.dll: 0xBF9E0: E8 DB -> EB 03
  • +
+

Allow ARS (Alternative Rate System) Option (At gauge select, goto excessive and press BT-D to enable)

+
    +
  • soundvoltex.dll 0x179864: 74 -> EB
  • +
+

Non-effective rate gauges start at 0%

+
    +
  • soundvoltex.dll: 0x120730: 10 27 -> 01 00
  • +
+

Non-effective rate gauges do not recover

+
    +
  • soundvoltex.dll: 0x120BAA: 01 50 48 -> 90 90 90
  • +
+

Enable MUSECA cards in generator start

+
    +
  • soundvoltex.dll: 0x31F3BA: 6D 75 73 65 63 61 -> 90 90 90 90 90 90
  • +
+

Disable chain display

+
    +
  • soundvoltex.dll: 0x128241 8B 45 08 -> 90 90 90
  • +
+

Disable gold chain color

+
    +
  • soundvoltex.dll: 0x12822F 00 -> FF
  • +
+

Disable UC,PUC fanfare

+
    +
  • soundvoltex.dll: 0x1285D2 80 -> 81
  • +
  • soundvoltex.dll: 0x128614 00 -> FF
  • +
+

Unlock blaster barrier rank 5

+
    +
  • soundvoltex.dll: 0x9DAA6 08 -> 0A
  • +
  • soundvoltex.dll: 0x9DAB7 08 -> 0A
  • +
+
+

List of Known Edits For KFC-2017112800

+
+

Auto Event Mode Toggled (Freeplay (Coin Options) must be "ON" for this to work efficiently)

+
    +
  • soundvoltex.dll: 0x196562 : 00 > 01
  • +
+

Song & Difficulty Unlock

+
    +
  • soundvoltex.dll: 0x152142: E8 F9 41 02 -> B8 0D 00 00 (Difficulty Unlock)
  • +
  • soundvoltex.dll: 0x1B4A31: 8B 44 24 20 E8 A6 EC FF FF -> B8 03 00 00 00 90 90 90 90 (Song Unlock)
  • +
+

2 Song Safe

+
    +
  • soundvoltex.dll: 0x171B07: 32 C0 -> B0 01
  • +
+

Premium Free Hack (Combine with 2 Song Safe Hex above for full effect)

+
    +
  • soundvoltex.dll: 0x1CAAFF: 00 -> 02
  • +
  • soundvoltex.dll: 0x1CACC6: 8B 83 64 10 00 00 8D 48 01 83 F9 04 56 57 7F 52 -> B8 01 00 00 00 89 83 64 10 00 00 90 56 57 90 90
  • +
+

Safe Banner Removal

+
    +
  • soundvoltex.dll: 0x2E9C44: 73 -> 00
  • +
+

Prevent Windows volume change on boot

+
    +
  • soundvoltex.dll: 0x2451EA: E8 21 03 00 00 -> 90 90 90 90 90
  • +
+

Disable EVENT MODE/FREE PLAY text

+
    +
  • soundvoltex.dll: 0xBC920: E8 6B -> EB 03
  • +
+

Hispeed values from 0.1 to 20.0

+
    +
  • soundvoltex.dll: 0x12198B: DD 05 F8 87 2D 10 -> D9 05 A0 89 2D 10
  • +
  • soundvoltex.dll: 0x1219A0: DD 05 00 88 2D 10 -> D9 05 E4 86 2D 10
  • +
  • soundvoltex.dll: 0x1211C1: DD 05 F8 87 2D 10 -> D9 05 A0 89 2D 10
  • +
  • soundvoltex.dll: 0x1211BB: DD 05 00 88 2D 10 -> D9 05 E4 86 2D 10
  • +
+

Allow ARS (Alternative Rate System) Option (At gauge select, goto excessive and press BT-D to enable)

+
    +
  • soundvoltex.dll: 0x171274: 74 -> EB
  • +
+

Non-effective rate gauges start at 0%

+
    +
  • soundvoltex.dll: 0x11ACD0: 10 27 -> 01 00
  • +
+

Non-effective rate gauges do not recover

+
    +
  • soundvoltex.dll: 0x11B14A: 01 50 48 -> 90 90 90
  • +
+

Remove combo/chain display

+
    +
  • soundvoltex.dll: 0x1220B1: 8B 45 08 -> 90 90 90
  • +
+

Omega Dimension semi-conversion

+
    +
  • +

    soundvoltex.dll: 0x358B40: DC 5F 30 10 -> 38 54 30 10

    +
  • +
  • +

    data/sound/sys_sd_ver04.2dx

    +
  • +
  • +

    sys_sd_ver04.2dx: 0x4C: 0A D5 0B 00 -> B6 1D 52 00

    +
  • +
  • sys_sd_ver04.2dx: 0x5C: D2 6B 3D 00 -> 28 10 68 00
  • +
  • sys_sd_ver04.2dx 0x50: 7C 0E 15 00 -> 9A 01 7A 00
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/sdvx4/problems/index.html b/site/games/sdvx4/problems/index.html new file mode 100644 index 0000000..1633451 --- /dev/null +++ b/site/games/sdvx4/problems/index.html @@ -0,0 +1,593 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

SDVX IV Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 4

+

CPU: Celeron M 440 1.86GHz

+

GPU: ATI Radeon HD 2400

+

RAM: 2 GB

+

OS: Windows XP Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+
+

My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Please note that Sound Voltex IV's offset is purely visual and the game does not have an audio-based offset adjustment. Sound Voltex V however, does.

+
+

Running the Game Windowed and Borderless

+
+

Some players utilizing windowed mode use 3rd party software called Borderless Gaming in order to achieve this, follow the program's instructions accordingly.

+
+

Where Are All the Navigators?

+
+

Many navigators are locked behind network requirements and they will not show unless connected to a network that has written support for the events that they're typically locked behind.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/sdvx4/setup/index.html b/site/games/sdvx4/setup/index.html new file mode 100644 index 0000000..f7912b3 --- /dev/null +++ b/site/games/sdvx4/setup/index.html @@ -0,0 +1,617 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

SOUND VOLTEX IV: HEAVENLY HAVEN

+
+

Warning

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

This game still uses DirectSound so we can skip audio related setup needed for other games. After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 32-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file anything you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

It's important to note before booting the game that Sound Voltex uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our main monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into Display Settings, then simply set the orientation to Portrait as pictured.

+

+

In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is -w and can be placed right after any other desired parameters chosen in our gamestart.bat

+

With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your gamestart.bat and the game should load and be ready to be enjoyed! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/sdvx5/hexedits/index.html b/site/games/sdvx5/hexedits/index.html new file mode 100644 index 0000000..dc39274 --- /dev/null +++ b/site/games/sdvx5/hexedits/index.html @@ -0,0 +1,623 @@ + + + + + + + + + Hex Edits - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

Sound Voltex V: Vivid Wave

+
+

Unsure how to apply hex edits?

+

Check out the Beginner's Guide to Hex Editing for assistance.

+
+

List of Known Edits For KFC-2020122200

+
+

These are included inside of SpiceTools now by default! Check the Patches tab inside of the overlay and apply whichever you desire by clicking the check boxes and hitting apply.

+
+

List of Known Edits For KFC-2020011500

+
+

Boot Into Event Mode (Not compatible with premium free mode)

+
    +
  • soundvoltex.dll: 0x4C4830: 33 C0 C7 41 08 64 05 00 00 48 89 01 C3 CC CC CC CC -> 31 C0 67 8D 40 01 C7 41 08 64 05 00 00 48 89 01 C3
  • +
+

All Songs/Difficulties Unlocked (Do not use when connected to online servers, will break automation paradise favoriting)

+
    +
  • soundvoltex.dll: 0x4D2D75: 8B 4C 24 34 E8 C2 09 00 00 -> B8 03 00 00 00 90 90 90 90
  • +
  • soundvoltex.dll: 0x55F4A2: E8 C9 A2 08 00 -> B8 0D 00 00 00
  • +
+

Infinite Premium Time

+
    +
  • soundvoltex.dll: 0x2F4A15: FF 15 6D 5B 38 00 48 8B 44 24 30 -> 48 C7 C0 01 00 00 00 90 90 90 90
  • +
+

All Songs SAFE (You will not be forced out of your session for failing a song)

+
    +
  • soundvoltex.dll: 0x5E2424: 06 -> 13
  • +
  • soundvoltex.dll: 0x5E2433: A4 -> 00
  • +
+

No Safe Banner on Jackets

+
    +
  • soundvoltex.dll: 0x4FFF2B: 07 -> 45
  • +
+

Enable ARS (Alternative Rate System) Globally

+
    +
  • soundvoltex.dll: 0x5E2A3D: 85 C9 74 08 -> B1 01 75 08
  • +
+

Freeze Non-Premium Timer

+
    +
  • soundvoltex.dll: 0x406C8D: 8B 53 68 -> 90 90 90
  • +
+

Non-Effective Rate Gauges Start At 0%

+
    +
  • soundvoltex.dll: 0x52E535: 10 27 -> 01 00
  • +
+

Non-Effective Rate Gauges Do Not Recover

+
    +
  • soundvoltex.dll 0x52F003: 41 01 41 6C -> 90 90 90 90
  • +
+

Skip Global Matching Screen

+
    +
  • soundvoltex.dll: 0x726A30: 4D -> 4E
  • +
+

All Appeal Cards Unlocked

+
    +
  • soundvoltex.dll: 0x4D7E22: 16 -> 00
  • +
+

All Crew Unlocked

+
    +
  • soundvoltex.dll 0x4D890B: 95 -> 91
  • +
+

SSE4.2 Fix (Allows the game to run on processors which do not support the SSE4.2 instruction set. If you can successfully boot the game already, DO NOT USE THIS EDIT!)

+
    +
  • soundvoltex.dll: 0x25280D: F3 45 0F B8 C8 -> 67 45 8D 48 FF
  • +
  • soundvoltex.dll: 0x26CCC6: F3 45 0F B8 CA -> 44 8D 4E 02 90
  • +
+

Bypass Camera Error

+
    +
  • soundvoltex.dll: 0x61FBF0: 74 24 -> 90 90
  • +
+

Shared Mode WASAPI (Replaces the first audio device initilization attempt)

+
    +
  • soundvoltex.dll: 0x638EC5: BA 03 00 00 00 -> BA 00 00 00 00
  • +
+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/sdvx5/problems/index.html b/site/games/sdvx5/problems/index.html new file mode 100644 index 0000000..fea2a07 --- /dev/null +++ b/site/games/sdvx5/problems/index.html @@ -0,0 +1,619 @@ + + + + + + + + + Common Problems/Tips - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

SDVX V Common Problems/Tips

+

Hardware Specs

+
+

Bemani PC Type 4

+

CPU: Intel i3-4300 3.5GHz

+

GPU: Nvidia GeForce GTX 1050 2GB

+

RAM: 8GB DDR3L PC3-12800 (4GB*2)

+

OS: Windows 7 Embedded

+
+

My Game Is Running Slow/Lagging

+
+

Make sure you at least meet the above hardware requirements, try to eliminate any unnecessary background processes during play as well.

+

At the time of writing, some individuals with more than capable PCs have had framerate issues, most notably with Ryzen CPUs. There's really no fix as the issues seem largely random, but it's worth noting regardless to consider trying different computers if you have them available.

+
+

My Game Is Running Crazy Fast/After Finishing a Song Loading Is Stuck

+
+

The most common reason for this is the game is running over its required 60hz, the game is hardcoded to run at 60hz and this cannot be changed. To solve this, set your monitor's refresh rate to 60hz. You can always check on the game's monitor check if the game is fluctuating around 59.94hz, the NTSC standard. If it's not around there and your monitor is indeed set to 60hz, consider trying a different panel or forcing vsync on in your GPU's graphics settings.

+
+

Which Offset Is Which?

+
+

If you're getting too many fasts, increase your offset (+). If you're getting too many slows, decrease your offset (-). Sound Voltex V has two types of offset adjustments, visual and audio based, so be sure to fiddle with both to find desirable settings.

+
+

Running the Game Windowed and Borderless

+
+

Some players utilizing windowed mode use 3rd party software called Borderless Gaming in order to achieve this, follow the program's instructions accordingly.

+
+

Where Are All the Navigators?

+
+

Many navigators are locked behind network requirements and they will not show unless connected to a network that has written support for the events that they're typically locked behind.

+
+

A Note About SSE 4.2

+
+

In the rare case you are running this game on very old hardware, SDVX V requires a processor supporting the SSE 4.2 instruction set. But, in the event your processor does not have this, there is a hex edit available to bypass this.

+
+

When I Run This Game All Other Background Audio Is Gone! What's Going On?

+
+

64-bit versions of SDVX are now utilizing a feature in Windows called WASAPI exclusive mode to obtain less audio latency than the former 32-bit versions of the games which used DirectSound. You can use the Shared Mode WASAPI hex edit to deal with some hardware issues, it can also be used to hear background audio outside the game so that the game does not take total control. Many have reported that this edit only works when the audio is set to either 16-bit 44100Hz or 24-bit 44100Hz.

+
+

I'm Not Getting Any Audio/My Audio Is Completely Wrecked and I'm Using an External Dac!

+
+

Several external DACs have issues with WASAPI exclusive mode and are unable to be used entirely, it's likely you'll be forced to use your motherboard's sound chip, or find a compatible DAC.

+

Alongside this, many setups have found some difficulty with audio due to various equipment being used. Consider applying the Shared Mode WASAPI hex edit

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/games/sdvx5/setup/index.html b/site/games/sdvx5/setup/index.html new file mode 100644 index 0000000..8041181 --- /dev/null +++ b/site/games/sdvx5/setup/index.html @@ -0,0 +1,624 @@ + + + + + + + + + First Time Setup - bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

SOUND VOLTEX V: VIVID WAVE

+
+

Warning

+

Please make sure your data is from an appropriate source and unmodified before proceeding, this guide is unable to troubleshoot any problems related to bad or poorly managed data.

+

If you obtained data from a torrent file, make sure you're not seeding the data before proceeding as well.

+

Lastly, for demonstrative purposes, this guide uses SpiceTools, you should consult appropriate documentation and requirements of your desired tools as the setup process is likely to be extremely similar.

+
+

Getting Started

+
+

Before we even touch the game, let's fiddle with our audio settings to minimize any potential crashing on startup. In Windows, go to Playback Devices and then right click on your default device and go to Properties. From there, hit the Advanced tab and set your Default Format to 44100 Hz and check both of the options inside Exclusive Mode as pictured.

+
+

+
+

After downloading your data, the first thing to do is make sure your files aren't set to READ ONLY, make sure to uncheck it from the main folder in the Windows Properties tab if so. Then, put your desired 64-bit tools inside the game's contents folder, and to create a .bat file. Pictured below is what your folder should look like, feel free to name your .bat file anything you desire, for the sake of convenience we've named ours gamestart.bat.

+
+

+
+

Why does this look different than the usual? This installation includes a modules folder that Spice automatically detects, keeping things clean and simple. If your version of the game doesn't have this, it probably has the contents folder populated with many different dll files such as the main soundvoltex.dll. You should still place your tools here if so!

+
+

Configuring Your Tools

+
+

Now that you have your files ready, open up your .bat file in your desired text editor (we're using Notepad++) and edit it with your desired parameters, for the purpose of this guide we will demonstrate both a local network configuration and an online example below with SpiceTools, skip to whichever you're in need of accordingly and please keep in mind you can add whatever additional parameters you desire.

+
+
+

If you're not using SpiceTools:

+

The overall structure of your .bat file will differ from the guide, namely the initialization of SpiceTools won't be present and potential parameters may differ. As stated above, make sure to check the documentation of your tools to ensure you're using the correct parameters for your needs.

+
+

Configuring for a Local Network

+
+

For our local network configuration example, on a single line in the .bat file we're going to type spice64.exe -ea -w and save the file.

+

What do these different parameters do?

+
    +
  • -ea enables an integrated e-amusement server within SpiceTools.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+

Configuring for an Online Network

+
+

For our online network example we're simply doing the above but with different parameters! On our single line, we're going to type spice64.exe -p XXXXXXXXXXXXXXXXXXXX -url http://yoururlhere.com/ -w and save the file.

+

What do these different parameters do?

+
    +
  • -p takes your PCBID on your network of choice, simply replace XXXXXXXXXXXXXXXXXXXX with your PCBID.
  • +
  • -url allows you to specify a custom service URL to connect with, simply replace http://yoururlhere.com/ with your chosen network's URL.
  • +
  • -w will boot the game in windowed mode which will ease our initial setup and testing later, make sure to remove -w to run the game fullscreen once you're done setting up!
  • +
+

Pictured below, the contents of our gamestart.bat file in Notepad++.

+
+

+
+

One final note, since you're playing on a network, you will have one additional step of setting up your card file within your chosen tools, make sure to check your server's information on how to setup a card file.

+
+

Final Steps and Setting up the Game

+
+

It's important to note before booting the game that Sound Voltex uses portrait mode and attempting to boot the game fullscreen in most landscape environments will result in a crash. To alleviate this, we must set our main monitor to portrait mode and be ready to rotate it! To do so, right click on your desktop and go into Display Settings, then simply set the orientation to Portrait as pictured.

+

+

In the event that you do not have the means to run the game in portrait mode and cannot rotate your monitor, it is recommended you boot the game in windowed mode. In SpiceTools, simply add the windowed mode parameter, this parameter is -w and can be placed right after any other desired parameters chosen in our gamestart.bat

+

With that, you're all done! The final step you'll have to do with your chosen tools is simply setting up your desired keybinds! Once you've done that, Boot the game with your gamestart.bat and the game should load and be ready to be enjoyed! Have fun!

+
+
+

Have any other errors?

+

Check out the Common Problems/Tips section and Error Code section to resolve any issues not seen in this guide to greater depth.

+
+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + diff --git a/site/img/ascs/L-tek Logo.png b/site/img/ascs/L-tek Logo.png new file mode 100644 index 0000000..50101e9 Binary files /dev/null and b/site/img/ascs/L-tek Logo.png differ diff --git a/site/img/ascs/Stepmaniax Logo.png b/site/img/ascs/Stepmaniax Logo.png new file mode 100644 index 0000000..12c0a03 Binary files /dev/null and b/site/img/ascs/Stepmaniax Logo.png differ diff --git a/site/img/ascs/cotton.jpg b/site/img/ascs/cotton.jpg new file mode 100644 index 0000000..8f48aa2 Binary files /dev/null and b/site/img/ascs/cotton.jpg differ diff --git a/site/img/ascs/dao_comp.png b/site/img/ascs/dao_comp.png new file mode 100644 index 0000000..61c66b3 Binary files /dev/null and b/site/img/ascs/dao_comp.png differ diff --git a/site/img/ascs/daopop.png b/site/img/ascs/daopop.png new file mode 100644 index 0000000..76d5a25 Binary files /dev/null and b/site/img/ascs/daopop.png differ diff --git a/site/img/ascs/fb9.png b/site/img/ascs/fb9.png new file mode 100644 index 0000000..bb8e76c Binary files /dev/null and b/site/img/ascs/fb9.png differ diff --git a/site/img/ascs/fp7.png b/site/img/ascs/fp7.png new file mode 100644 index 0000000..c21c731 Binary files /dev/null and b/site/img/ascs/fp7.png differ diff --git a/site/img/ascs/g2.jpg b/site/img/ascs/g2.jpg new file mode 100644 index 0000000..5b10019 Binary files /dev/null and b/site/img/ascs/g2.jpg differ diff --git a/site/img/ascs/ltek.jpg b/site/img/ascs/ltek.jpg new file mode 100644 index 0000000..fbcf329 Binary files /dev/null and b/site/img/ascs/ltek.jpg differ diff --git a/site/img/ascs/smx.gif b/site/img/ascs/smx.gif new file mode 100644 index 0000000..803f4fe Binary files /dev/null and b/site/img/ascs/smx.gif differ diff --git a/site/img/ascs/svre9.png b/site/img/ascs/svre9.png new file mode 100644 index 0000000..3fe1316 Binary files /dev/null and b/site/img/ascs/svre9.png differ diff --git a/site/img/ascs/svse5.png b/site/img/ascs/svse5.png new file mode 100644 index 0000000..3469c59 Binary files /dev/null and b/site/img/ascs/svse5.png differ diff --git a/site/img/ascs/wan.png b/site/img/ascs/wan.png new file mode 100644 index 0000000..5c8745a Binary files /dev/null and b/site/img/ascs/wan.png differ diff --git a/site/img/ascs/yuan.png b/site/img/ascs/yuan.png new file mode 100644 index 0000000..5b6b9e9 Binary files /dev/null and b/site/img/ascs/yuan.png differ diff --git a/site/img/ascs/yuaniidx.png b/site/img/ascs/yuaniidx.png new file mode 100644 index 0000000..fb9e956 Binary files /dev/null and b/site/img/ascs/yuaniidx.png differ diff --git a/site/img/ascs/yuanpop.png b/site/img/ascs/yuanpop.png new file mode 100644 index 0000000..d36b34f Binary files /dev/null and b/site/img/ascs/yuanpop.png differ diff --git a/site/img/ascs/yuansdvx.png b/site/img/ascs/yuansdvx.png new file mode 100644 index 0000000..66d5074 Binary files /dev/null and b/site/img/ascs/yuansdvx.png differ diff --git a/site/img/bst/1.png b/site/img/bst/1.png new file mode 100644 index 0000000..d68b442 Binary files /dev/null and b/site/img/bst/1.png differ diff --git a/site/img/clan/1.png b/site/img/clan/1.png new file mode 100644 index 0000000..1a147f4 Binary files /dev/null and b/site/img/clan/1.png differ diff --git a/site/img/clan/10.png b/site/img/clan/10.png new file mode 100644 index 0000000..aa0475a Binary files /dev/null and b/site/img/clan/10.png differ diff --git a/site/img/clan/2.png b/site/img/clan/2.png new file mode 100644 index 0000000..0637e03 Binary files /dev/null and b/site/img/clan/2.png differ diff --git a/site/img/clan/3.png b/site/img/clan/3.png new file mode 100644 index 0000000..4cc0636 Binary files /dev/null and b/site/img/clan/3.png differ diff --git a/site/img/clan/5.png b/site/img/clan/5.png new file mode 100644 index 0000000..3d1679a Binary files /dev/null and b/site/img/clan/5.png differ diff --git a/site/img/clan/6.png b/site/img/clan/6.png new file mode 100644 index 0000000..1cb8da0 Binary files /dev/null and b/site/img/clan/6.png differ diff --git a/site/img/clan/7.png b/site/img/clan/7.png new file mode 100644 index 0000000..0083762 Binary files /dev/null and b/site/img/clan/7.png differ diff --git a/site/img/clan/8.png b/site/img/clan/8.png new file mode 100644 index 0000000..d56a120 Binary files /dev/null and b/site/img/clan/8.png differ diff --git a/site/img/clan/9.png b/site/img/clan/9.png new file mode 100644 index 0000000..8e453ec Binary files /dev/null and b/site/img/clan/9.png differ diff --git a/site/img/ddrace/1.png b/site/img/ddrace/1.png new file mode 100644 index 0000000..ba34f49 Binary files /dev/null and b/site/img/ddrace/1.png differ diff --git a/site/img/ddrace/2.png b/site/img/ddrace/2.png new file mode 100644 index 0000000..7c1f06b Binary files /dev/null and b/site/img/ddrace/2.png differ diff --git a/site/img/ddrace/3.png b/site/img/ddrace/3.png new file mode 100644 index 0000000..b6b3ccd Binary files /dev/null and b/site/img/ddrace/3.png differ diff --git a/site/img/ddrace/eng.png b/site/img/ddrace/eng.png new file mode 100644 index 0000000..af1ba51 Binary files /dev/null and b/site/img/ddrace/eng.png differ diff --git a/site/img/discord.png b/site/img/discord.png new file mode 100644 index 0000000..f048197 Binary files /dev/null and b/site/img/discord.png differ diff --git a/site/img/exchain/1.png b/site/img/exchain/1.png new file mode 100644 index 0000000..22f53f2 Binary files /dev/null and b/site/img/exchain/1.png differ diff --git a/site/img/favicon.ico b/site/img/favicon.ico new file mode 100644 index 0000000..0261e10 Binary files /dev/null and b/site/img/favicon.ico differ diff --git a/site/img/gen/441.png b/site/img/gen/441.png new file mode 100644 index 0000000..d52e639 Binary files /dev/null and b/site/img/gen/441.png differ diff --git a/site/img/gen/bind_iidx.png b/site/img/gen/bind_iidx.png new file mode 100644 index 0000000..bf231d2 Binary files /dev/null and b/site/img/gen/bind_iidx.png differ diff --git a/site/img/grid.png b/site/img/grid.png new file mode 100644 index 0000000..878c3ed Binary files /dev/null and b/site/img/grid.png differ diff --git a/site/img/hexguide/1.png b/site/img/hexguide/1.png new file mode 100644 index 0000000..b553e03 Binary files /dev/null and b/site/img/hexguide/1.png differ diff --git a/site/img/hexguide/2.png b/site/img/hexguide/2.png new file mode 100644 index 0000000..d75509d Binary files /dev/null and b/site/img/hexguide/2.png differ diff --git a/site/img/hexguide/3.png b/site/img/hexguide/3.png new file mode 100644 index 0000000..aba61c3 Binary files /dev/null and b/site/img/hexguide/3.png differ diff --git a/site/img/hexguide/4.png b/site/img/hexguide/4.png new file mode 100644 index 0000000..1deb893 Binary files /dev/null and b/site/img/hexguide/4.png differ diff --git a/site/img/hexguide/5.png b/site/img/hexguide/5.png new file mode 100644 index 0000000..2a40d2d Binary files /dev/null and b/site/img/hexguide/5.png differ diff --git a/site/img/icon.png b/site/img/icon.png new file mode 100644 index 0000000..d7111cd Binary files /dev/null and b/site/img/icon.png differ diff --git a/site/img/iidx25/1.png b/site/img/iidx25/1.png new file mode 100644 index 0000000..b5b4025 Binary files /dev/null and b/site/img/iidx25/1.png differ diff --git a/site/img/iidx25/10.png b/site/img/iidx25/10.png new file mode 100644 index 0000000..aa0bf18 Binary files /dev/null and b/site/img/iidx25/10.png differ diff --git a/site/img/iidx25/11.png b/site/img/iidx25/11.png new file mode 100644 index 0000000..6d66b4d Binary files /dev/null and b/site/img/iidx25/11.png differ diff --git a/site/img/iidx25/12.png b/site/img/iidx25/12.png new file mode 100644 index 0000000..d3d6472 Binary files /dev/null and b/site/img/iidx25/12.png differ diff --git a/site/img/iidx25/13.png b/site/img/iidx25/13.png new file mode 100644 index 0000000..9ad98c7 Binary files /dev/null and b/site/img/iidx25/13.png differ diff --git a/site/img/iidx25/1a.png b/site/img/iidx25/1a.png new file mode 100644 index 0000000..23c5f5e Binary files /dev/null and b/site/img/iidx25/1a.png differ diff --git a/site/img/iidx25/2.png b/site/img/iidx25/2.png new file mode 100644 index 0000000..659040a Binary files /dev/null and b/site/img/iidx25/2.png differ diff --git a/site/img/iidx25/3.png b/site/img/iidx25/3.png new file mode 100644 index 0000000..8bc3cc3 Binary files /dev/null and b/site/img/iidx25/3.png differ diff --git a/site/img/iidx25/4.png b/site/img/iidx25/4.png new file mode 100644 index 0000000..1bdf006 Binary files /dev/null and b/site/img/iidx25/4.png differ diff --git a/site/img/iidx25/5.png b/site/img/iidx25/5.png new file mode 100644 index 0000000..bda248c Binary files /dev/null and b/site/img/iidx25/5.png differ diff --git a/site/img/iidx25/6.png b/site/img/iidx25/6.png new file mode 100644 index 0000000..6e28008 Binary files /dev/null and b/site/img/iidx25/6.png differ diff --git a/site/img/iidx25/7.png b/site/img/iidx25/7.png new file mode 100644 index 0000000..68b2c7d Binary files /dev/null and b/site/img/iidx25/7.png differ diff --git a/site/img/iidx25/8.png b/site/img/iidx25/8.png new file mode 100644 index 0000000..0f4937a Binary files /dev/null and b/site/img/iidx25/8.png differ diff --git a/site/img/iidx25/9.png b/site/img/iidx25/9.png new file mode 100644 index 0000000..a2c8783 Binary files /dev/null and b/site/img/iidx25/9.png differ diff --git a/site/img/iidx26/1.png b/site/img/iidx26/1.png new file mode 100644 index 0000000..9f4e132 Binary files /dev/null and b/site/img/iidx26/1.png differ diff --git a/site/img/iidx27/1.png b/site/img/iidx27/1.png new file mode 100644 index 0000000..51b7ecf Binary files /dev/null and b/site/img/iidx27/1.png differ diff --git a/site/img/iidx27/cfg_ea.png b/site/img/iidx27/cfg_ea.png new file mode 100644 index 0000000..f734997 Binary files /dev/null and b/site/img/iidx27/cfg_ea.png differ diff --git a/site/img/iidx27/cfg_on.png b/site/img/iidx27/cfg_on.png new file mode 100644 index 0000000..f5a8f4a Binary files /dev/null and b/site/img/iidx27/cfg_on.png differ diff --git a/site/img/matixx/1.png b/site/img/matixx/1.png new file mode 100644 index 0000000..6b310cd Binary files /dev/null and b/site/img/matixx/1.png differ diff --git a/site/img/matixx/2d.png b/site/img/matixx/2d.png new file mode 100644 index 0000000..7180ff4 Binary files /dev/null and b/site/img/matixx/2d.png differ diff --git a/site/img/matixx/2g.png b/site/img/matixx/2g.png new file mode 100644 index 0000000..49217f8 Binary files /dev/null and b/site/img/matixx/2g.png differ diff --git a/site/img/matixx/3d.png b/site/img/matixx/3d.png new file mode 100644 index 0000000..9dc7156 Binary files /dev/null and b/site/img/matixx/3d.png differ diff --git a/site/img/matixx/3g.png b/site/img/matixx/3g.png new file mode 100644 index 0000000..48301e3 Binary files /dev/null and b/site/img/matixx/3g.png differ diff --git a/site/img/matixx/4.png b/site/img/matixx/4.png new file mode 100644 index 0000000..5a121e7 Binary files /dev/null and b/site/img/matixx/4.png differ diff --git a/site/img/matixx/5.png b/site/img/matixx/5.png new file mode 100644 index 0000000..6fdc0bc Binary files /dev/null and b/site/img/matixx/5.png differ diff --git a/site/img/matixx/6.png b/site/img/matixx/6.png new file mode 100644 index 0000000..c57db25 Binary files /dev/null and b/site/img/matixx/6.png differ diff --git a/site/img/matixx/7.png b/site/img/matixx/7.png new file mode 100644 index 0000000..afce60b Binary files /dev/null and b/site/img/matixx/7.png differ diff --git a/site/img/matixx/8.png b/site/img/matixx/8.png new file mode 100644 index 0000000..a4ba528 Binary files /dev/null and b/site/img/matixx/8.png differ diff --git a/site/img/matixx/9.png b/site/img/matixx/9.png new file mode 100644 index 0000000..cf100d4 Binary files /dev/null and b/site/img/matixx/9.png differ diff --git a/site/img/museca/1.png b/site/img/museca/1.png new file mode 100644 index 0000000..7d223c0 Binary files /dev/null and b/site/img/museca/1.png differ diff --git a/site/img/nost/1.png b/site/img/nost/1.png new file mode 100644 index 0000000..f125e35 Binary files /dev/null and b/site/img/nost/1.png differ diff --git a/site/img/nost/2.png b/site/img/nost/2.png new file mode 100644 index 0000000..d63af60 Binary files /dev/null and b/site/img/nost/2.png differ diff --git a/site/img/nost/3.png b/site/img/nost/3.png new file mode 100644 index 0000000..2d2b9f5 Binary files /dev/null and b/site/img/nost/3.png differ diff --git a/site/img/nost/4.png b/site/img/nost/4.png new file mode 100644 index 0000000..d8d946f Binary files /dev/null and b/site/img/nost/4.png differ diff --git a/site/img/nost/5.png b/site/img/nost/5.png new file mode 100644 index 0000000..e09509b Binary files /dev/null and b/site/img/nost/5.png differ diff --git a/site/img/nost/6.png b/site/img/nost/6.png new file mode 100644 index 0000000..3dc151a Binary files /dev/null and b/site/img/nost/6.png differ diff --git a/site/img/nost/7.png b/site/img/nost/7.png new file mode 100644 index 0000000..fea3c8e Binary files /dev/null and b/site/img/nost/7.png differ diff --git a/site/img/nost/8.png b/site/img/nost/8.png new file mode 100644 index 0000000..869c2dd Binary files /dev/null and b/site/img/nost/8.png differ diff --git a/site/img/popn/1.png b/site/img/popn/1.png new file mode 100644 index 0000000..943e618 Binary files /dev/null and b/site/img/popn/1.png differ diff --git a/site/img/popn/2.png b/site/img/popn/2.png new file mode 100644 index 0000000..555b0e9 Binary files /dev/null and b/site/img/popn/2.png differ diff --git a/site/img/popn/3.png b/site/img/popn/3.png new file mode 100644 index 0000000..21c2801 Binary files /dev/null and b/site/img/popn/3.png differ diff --git a/site/img/popn/4.png b/site/img/popn/4.png new file mode 100644 index 0000000..383a2b4 Binary files /dev/null and b/site/img/popn/4.png differ diff --git a/site/img/popn/5.png b/site/img/popn/5.png new file mode 100644 index 0000000..6f8c01a Binary files /dev/null and b/site/img/popn/5.png differ diff --git a/site/img/popn/hello1.png b/site/img/popn/hello1.png new file mode 100644 index 0000000..3567a87 Binary files /dev/null and b/site/img/popn/hello1.png differ diff --git a/site/img/popn/hello2.png b/site/img/popn/hello2.png new file mode 100644 index 0000000..9a2ca81 Binary files /dev/null and b/site/img/popn/hello2.png differ diff --git a/site/img/popn/hello3.png b/site/img/popn/hello3.png new file mode 100644 index 0000000..a17ef52 Binary files /dev/null and b/site/img/popn/hello3.png differ diff --git a/site/img/popn/hello4.png b/site/img/popn/hello4.png new file mode 100644 index 0000000..93ea1d2 Binary files /dev/null and b/site/img/popn/hello4.png differ diff --git a/site/img/popn/helloboot1.png b/site/img/popn/helloboot1.png new file mode 100644 index 0000000..5b70b34 Binary files /dev/null and b/site/img/popn/helloboot1.png differ diff --git a/site/img/popn/helloboot2.png b/site/img/popn/helloboot2.png new file mode 100644 index 0000000..b42c200 Binary files /dev/null and b/site/img/popn/helloboot2.png differ diff --git a/site/img/reflesia/reflesia.png b/site/img/reflesia/reflesia.png new file mode 100644 index 0000000..fb696df Binary files /dev/null and b/site/img/reflesia/reflesia.png differ diff --git a/site/img/sdvxiv/1.png b/site/img/sdvxiv/1.png new file mode 100644 index 0000000..25e4574 Binary files /dev/null and b/site/img/sdvxiv/1.png differ diff --git a/site/img/sdvxiv/2.png b/site/img/sdvxiv/2.png new file mode 100644 index 0000000..7c1f06b Binary files /dev/null and b/site/img/sdvxiv/2.png differ diff --git a/site/img/sdvxiv/3.png b/site/img/sdvxiv/3.png new file mode 100644 index 0000000..b6b3ccd Binary files /dev/null and b/site/img/sdvxiv/3.png differ diff --git a/site/img/sdvxiv/4.png b/site/img/sdvxiv/4.png new file mode 100644 index 0000000..857f804 Binary files /dev/null and b/site/img/sdvxiv/4.png differ diff --git a/site/img/sdvxv/1.png b/site/img/sdvxv/1.png new file mode 100644 index 0000000..67310c9 Binary files /dev/null and b/site/img/sdvxv/1.png differ diff --git a/site/img/spice/options.png b/site/img/spice/options.png new file mode 100644 index 0000000..02a6238 Binary files /dev/null and b/site/img/spice/options.png differ diff --git a/site/img/voicemeeter/a1.png b/site/img/voicemeeter/a1.png new file mode 100644 index 0000000..dbfc627 Binary files /dev/null and b/site/img/voicemeeter/a1.png differ diff --git a/site/img/voicemeeter/golive.png b/site/img/voicemeeter/golive.png new file mode 100644 index 0000000..15fb99e Binary files /dev/null and b/site/img/voicemeeter/golive.png differ diff --git a/site/img/voicemeeter/obsvaio3.png b/site/img/voicemeeter/obsvaio3.png new file mode 100644 index 0000000..70f7aa8 Binary files /dev/null and b/site/img/voicemeeter/obsvaio3.png differ diff --git a/site/img/voicemeeter/projector.png b/site/img/voicemeeter/projector.png new file mode 100644 index 0000000..becfb73 Binary files /dev/null and b/site/img/voicemeeter/projector.png differ diff --git a/site/img/voicemeeter/stereomix.png b/site/img/voicemeeter/stereomix.png new file mode 100644 index 0000000..3bc2bf6 Binary files /dev/null and b/site/img/voicemeeter/stereomix.png differ diff --git a/site/img/voicemeeter/vumeter.png b/site/img/voicemeeter/vumeter.png new file mode 100644 index 0000000..290ed07 Binary files /dev/null and b/site/img/voicemeeter/vumeter.png differ diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..7800e05 --- /dev/null +++ b/site/index.html @@ -0,0 +1,580 @@ + + + + + + + + + bemani.guide + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +

bemani.guide

+

A compendium of information and guides written to ease headaches.

+

Last Updated: April 8th, 2021.

+

Contact: here

+
+

Important

+

This site is by no means all-encompassing, I place emphasis on the need to engage in these guides with clean data from a trusted source.

+

Please treat these games with some degree of respect and don't tamper with things if you don't know what you're doing, if you can do that, these guides will probably be of use to you. If not, I imagine you're beyond the help of the pages within, good luck.

+
+

What do I need to know before starting?

+
+

Before beginning with any of the guides on this site, please make sure your game files are from a clean and trusted source, also make sure you are using the latest version of whichever tools you have chosen, the guides on this website at the time of writing are using SpiceTools.

+
+

First time working with data?

+
+

Check out the First Time Setup section of your respective game if you've never worked with BEMANI games before or if it's just been a while.

+
+

Need help with error codes?

+
+

Check out the Error Codes section for a list of the majority of error codes you may come across.

+
+

 

+
+
+ +
+
+

Made by a IIDX player.

+

Documentation built with MkDocs.

+
+ + + + + + + + + diff --git a/site/js/base.js b/site/js/base.js new file mode 100644 index 0000000..8ba6faa --- /dev/null +++ b/site/js/base.js @@ -0,0 +1,283 @@ +function getSearchTerm() { + var sPageURL = window.location.search.substring(1); + var sURLVariables = sPageURL.split('&'); + for (var i = 0; i < sURLVariables.length; i++) { + var sParameterName = sURLVariables[i].split('='); + if (sParameterName[0] == 'q') { + return sParameterName[1]; + } + } +} + +function applyTopPadding() { + // Update various absolute positions to match where the main container + // starts. This is necessary for handling multi-line nav headers, since + // that pushes the main container down. + var offset = $('body > .container').offset(); + $('html').css('scroll-padding-top', offset.top + 'px'); + $('.bs-sidebar.affix').css('top', offset.top + 'px'); +} + +$(document).ready(function() { + + applyTopPadding(); + + var search_term = getSearchTerm(), + $search_modal = $('#mkdocs_search_modal'), + $keyboard_modal = $('#mkdocs_keyboard_modal'); + + if (search_term) { + $search_modal.modal(); + } + + // make sure search input gets autofocus everytime modal opens. + $search_modal.on('shown.bs.modal', function() { + $search_modal.find('#mkdocs-search-query').focus(); + }); + + // Close search modal when result is selected + // The links get added later so listen to parent + $('#mkdocs-search-results').click(function(e) { + if ($(e.target).is('a')) { + $search_modal.modal('hide'); + } + }); + + // Populate keyboard modal with proper Keys + $keyboard_modal.find('.help.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.help]; + $keyboard_modal.find('.prev.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.previous]; + $keyboard_modal.find('.next.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.next]; + $keyboard_modal.find('.search.shortcut kbd')[0].innerHTML = keyCodes[shortcuts.search]; + + // Keyboard navigation + document.addEventListener("keydown", function(e) { + if ($(e.target).is(':input')) return true; + var key = e.which || e.keyCode || window.event && window.event.keyCode; + var page; + switch (key) { + case shortcuts.next: + page = $('.navbar a[rel="next"]:first').prop('href'); + break; + case shortcuts.previous: + page = $('.navbar a[rel="prev"]:first').prop('href'); + break; + case shortcuts.search: + e.preventDefault(); + $keyboard_modal.modal('hide'); + $search_modal.modal('show'); + $search_modal.find('#mkdocs-search-query').focus(); + break; + case shortcuts.help: + $search_modal.modal('hide'); + $keyboard_modal.modal('show'); + break; + default: break; + } + if (page) { + $keyboard_modal.modal('hide'); + window.location.href = page; + } + }); + + $('table').addClass('table table-striped table-hover'); + + // Improve the scrollspy behaviour when users click on a TOC item. + $(".bs-sidenav a").on("click", function() { + var clicked = this; + setTimeout(function() { + var active = $('.nav li.active a'); + active = active[active.length - 1]; + if (clicked !== active) { + $(active).parent().removeClass("active"); + $(clicked).parent().addClass("active"); + } + }, 50); + }); + + function showInnerDropdown(item) { + var popup = $(item).next('.dropdown-menu'); + popup.addClass('show'); + $(item).addClass('open'); + + // First, close any sibling dropdowns. + var container = $(item).parent().parent(); + container.find('> .dropdown-submenu > a').each(function(i, el) { + if (el !== item) { + hideInnerDropdown(el); + } + }); + + var popupMargin = 10; + var maxBottom = $(window).height() - popupMargin; + var bounds = item.getBoundingClientRect(); + + popup.css('left', bounds.right + 'px'); + if (bounds.top + popup.height() > maxBottom && + bounds.top > $(window).height() / 2) { + popup.css({ + 'top': (bounds.bottom - popup.height()) + 'px', + 'max-height': (bounds.bottom - popupMargin) + 'px', + }); + } else { + popup.css({ + 'top': bounds.top + 'px', + 'max-height': (maxBottom - bounds.top) + 'px', + }); + } + } + + function hideInnerDropdown(item) { + var popup = $(item).next('.dropdown-menu'); + popup.removeClass('show'); + $(item).removeClass('open'); + + popup.scrollTop(0); + popup.find('.dropdown-menu').scrollTop(0).removeClass('show'); + popup.find('.dropdown-submenu > a').removeClass('open'); + } + + $('.dropdown-submenu > a').on('click', function(e) { + if ($(this).next('.dropdown-menu').hasClass('show')) { + hideInnerDropdown(this); + } else { + showInnerDropdown(this); + } + + e.stopPropagation(); + e.preventDefault(); + }); + + $('.dropdown-menu').parent().on('hide.bs.dropdown', function(e) { + $(this).find('.dropdown-menu').scrollTop(0); + $(this).find('.dropdown-submenu > a').removeClass('open'); + $(this).find('.dropdown-menu .dropdown-menu').removeClass('show'); + }); +}); + +$(window).on('resize', applyTopPadding); + +$('body').scrollspy({ + target: '.bs-sidebar', + offset: 100 +}); + +/* Prevent disabled links from causing a page reload */ +$("li.disabled a").click(function() { + event.preventDefault(); +}); + +// See https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes +// We only list common keys below. Obscure keys are omitted and their use is discouraged. +var keyCodes = { + 8: 'backspace', + 9: 'tab', + 13: 'enter', + 16: 'shift', + 17: 'ctrl', + 18: 'alt', + 19: 'pause/break', + 20: 'caps lock', + 27: 'escape', + 32: 'spacebar', + 33: 'page up', + 34: 'page down', + 35: 'end', + 36: 'home', + 37: '←', + 38: '↑', + 39: '→', + 40: '↓', + 45: 'insert', + 46: 'delete', + 48: '0', + 49: '1', + 50: '2', + 51: '3', + 52: '4', + 53: '5', + 54: '6', + 55: '7', + 56: '8', + 57: '9', + 65: 'a', + 66: 'b', + 67: 'c', + 68: 'd', + 69: 'e', + 70: 'f', + 71: 'g', + 72: 'h', + 73: 'i', + 74: 'j', + 75: 'k', + 76: 'l', + 77: 'm', + 78: 'n', + 79: 'o', + 80: 'p', + 81: 'q', + 82: 'r', + 83: 's', + 84: 't', + 85: 'u', + 86: 'v', + 87: 'w', + 88: 'x', + 89: 'y', + 90: 'z', + 91: 'Left Windows Key / Left ⌘', + 92: 'Right Windows Key', + 93: 'Windows Menu / Right ⌘', + 96: 'numpad 0', + 97: 'numpad 1', + 98: 'numpad 2', + 99: 'numpad 3', + 100: 'numpad 4', + 101: 'numpad 5', + 102: 'numpad 6', + 103: 'numpad 7', + 104: 'numpad 8', + 105: 'numpad 9', + 106: 'multiply', + 107: 'add', + 109: 'subtract', + 110: 'decimal point', + 111: 'divide', + 112: 'f1', + 113: 'f2', + 114: 'f3', + 115: 'f4', + 116: 'f5', + 117: 'f6', + 118: 'f7', + 119: 'f8', + 120: 'f9', + 121: 'f10', + 122: 'f11', + 123: 'f12', + 124: 'f13', + 125: 'f14', + 126: 'f15', + 127: 'f16', + 128: 'f17', + 129: 'f18', + 130: 'f19', + 131: 'f20', + 132: 'f21', + 133: 'f22', + 134: 'f23', + 135: 'f24', + 144: 'num lock', + 145: 'scroll lock', + 186: ';', + 187: '=', + 188: ',', + 189: '‐', + 190: '.', + 191: '?', + 192: '`', + 219: '[', + 220: '\', + 221: ']', + 222: ''', +}; diff --git a/site/js/bootstrap.min.js b/site/js/bootstrap.min.js new file mode 100644 index 0000000..ca013b7 --- /dev/null +++ b/site/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.3.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)g(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ee},je="show",He="out",Re={HIDE:"hide"+De,HIDDEN:"hidden"+De,SHOW:"show"+De,SHOWN:"shown"+De,INSERTED:"inserted"+De,CLICK:"click"+De,FOCUSIN:"focusin"+De,FOCUSOUT:"focusout"+De,MOUSEENTER:"mouseenter"+De,MOUSELEAVE:"mouseleave"+De},xe="fade",Fe="show",Ue=".tooltip-inner",We=".arrow",qe="hover",Me="focus",Ke="click",Qe="manual",Be=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Fe))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(xe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:We},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),g(o).addClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===He&&e._leave(null,e)};if(g(this.tip).hasClass(xe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=g.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==je&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),g(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(g(this.element).trigger(i),!i.isDefaultPrevented()){if(g(n).removeClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ke]=!1,this._activeTrigger[Me]=!1,this._activeTrigger[qe]=!1,g(this.tip).hasClass(xe)){var r=_.getTransitionDurationFromElement(n);g(n).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Ae+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ue)),this.getTitle()),g(t).removeClass(xe+" "+Fe)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Se(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Pe[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Qe){var e=t===qe?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===qe?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),g(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Me:qe]=!0),g(e.getTipElement()).hasClass(Fe)||e._hoverState===je?e._hoverState=je:(clearTimeout(e._timeout),e._hoverState=je,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===je&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Me:qe]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=He,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===He&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==Oe.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(be,t,this.constructor.DefaultType),t.sanitize&&(t.template=Se(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ne);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(xe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ie),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ie,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Le}},{key:"NAME",get:function(){return be}},{key:"DATA_KEY",get:function(){return Ie}},{key:"Event",get:function(){return Re}},{key:"EVENT_KEY",get:function(){return De}},{key:"DefaultType",get:function(){return ke}}]),i}();g.fn[be]=Be._jQueryInterface,g.fn[be].Constructor=Be,g.fn[be].noConflict=function(){return g.fn[be]=we,Be._jQueryInterface};var Ve="popover",Ye="bs.popover",ze="."+Ye,Xe=g.fn[Ve],$e="bs-popover",Ge=new RegExp("(^|\\s)"+$e+"\\S+","g"),Je=l({},Be.Default,{placement:"right",trigger:"click",content:"",template:''}),Ze=l({},Be.DefaultType,{content:"(string|element|function)"}),tn="fade",en="show",nn=".popover-header",on=".popover-body",rn={HIDE:"hide"+ze,HIDDEN:"hidden"+ze,SHOW:"show"+ze,SHOWN:"shown"+ze,INSERTED:"inserted"+ze,CLICK:"click"+ze,FOCUSIN:"focusin"+ze,FOCUSOUT:"focusout"+ze,MOUSEENTER:"mouseenter"+ze,MOUSELEAVE:"mouseleave"+ze},sn=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){g(this.getTipElement()).addClass($e+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},o.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(nn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(on),e),t.removeClass(tn+" "+en)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ge);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("