diff --git a/CREDITS.md b/CREDITS.md index 5b9979f4..4965de82 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -1,9 +1,9 @@ # FIGfonts PageTop utiliza el paquete [figlet-rs](https://crates.io/crates/figlet-rs) de -*yuanbohan*, que muestra al inicio de la ejecución un rótulo con el nombre de +*yuanbohan*. Muestra en el terminal un rótulo de presentación con el nombre de la aplicación usando caracteres [FIGlet](http://www.figlet.org/). Las fuentes -incluidas en `resources` son: +incluidas en `src/app/banner` son: * [slant.flf](http://www.figlet.org/fontdb_example.cgi?font=slant.flf) por *Glenn Chappell*. @@ -13,3 +13,11 @@ incluidas en `resources` son: por *Claude Martins*. * [starwars.flf](http://www.figlet.org/fontdb_example.cgi?font=starwars.flf) por *Ryan Youck*. + + +# Icono + +El monstruo sonriente de Frankenstein es una divertida creación de +[Webalys](https://www.iconfinder.com/webalys). Puede encontrarse en su colección +[Nasty Icons](https://www.iconfinder.com/iconsets/nasty) disponible en +[ICONFINDER](https://www.iconfinder.com/). \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 2369a8da..00ab4e13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,4 +2,7 @@ members = [ "drust", "pagetop", + "pagetop-admin", + "pagetop-user", + "pagetop-node", ] \ No newline at end of file diff --git a/LICENSE-APACHE b/LICENSE-APACHE new file mode 100644 index 00000000..263ddac1 --- /dev/null +++ b/LICENSE-APACHE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2022 Manuel Cillero + + 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/LICENSE-MIT b/LICENSE-MIT new file mode 100644 index 00000000..cd8af3d6 --- /dev/null +++ b/LICENSE-MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Manuel Cillero + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..9f8d5024 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +**PageTop** es un entorno de desarrollo basado en [Rust](https://www.rust-lang.org/es/) que reúne +algunos de los crates más estables y populares para crear soluciones web modulares, extensibles y +configurables. + +Incluye **Drust**, un sistema de gestión de contenidos basado en PageTop que permite crear, editar y +mantener sitios web dinámicos, rápidos y seguros. + + +# Advertencia + +**PageTop** es un proyecto personal para aprender Rust y conocer su ecosistema. Ahora mismo sólo se +liberan versiones de desarrollo. En este contexto la API no tiene ninguna estabilidad y los cambios +son constantes. No puede considerarse listo para probar hasta que se libere la versión **0.1.0**. + + +# Estructura del código + +El repositorio se organiza en un *workspace* con los siguientes subproyectos: + +* [pagetop](pagetop/), es la librería esencial construida con *crates* estables y muy conocidos del + ecosistema Rust para proporcionar APIs, patrones de desarrollo y buenas prácticas para la creación + avanzada de soluciones web SSR (*Server-Side Rendering*). + +* [pagetop-admin](pagetop_admin/), módulo que proporciona a otros módulos un lugar común donde + presentar a los administradores sus opciones de configuración. + +* [pagetop-user](pagetop_user/), módulo para añadir gestión de usuarios, roles, permisos y sesiones + en aplicaciones desarrolladas con PageTop. + +* [pagetop-node](pagetop_node/), módulo para crear, extender o personalizar los tipos de contenido + que puede administrar un sitio web. + +* [drust](drust/) es una aplicación inspirada modestamente en [Drupal](https://www.drupal.org) que + proporciona un CMS (*Content Management System*) o sistema de gestión de contenidos para construir + sitios web dinámicos, administrados y configurables. + + +# Licencia + +Este proyecto tiene licencia, de hecho se puede aplicar cualquiera de las siguientes a tu elección: + +* Licencia Apache versión 2.0 + ([LICENSE-APACHE](https://gitlab.com/manuelcillero/pagetop/-/blob/main/LICENSE-APACHE) o + [http://www.apache.org/licenses/LICENSE-2.0]). + +* Licencia MIT + ([LICENSE-MIT](https://gitlab.com/manuelcillero/pagetop/-/blob/main/LICENSE-MIT) o + [http://opensource.org/licenses/MIT]). diff --git a/config/default.toml b/config/default.toml index 33280fbd..6d6317f3 100644 --- a/config/default.toml +++ b/config/default.toml @@ -1,12 +1,13 @@ [app] name = "Drust" description = """\ - A modern Content Management System for sharing the world.\ + A modern web Content Management System to share your world.\ """ -language = "es-ES" #theme = "Aliner" #theme = "Minimal" theme = "Bootsier" +#theme = "Bulmix" +language = "es-ES" [database] db_type = "mysql" @@ -15,4 +16,7 @@ db_user = "drust" db_pass = "DrU__#3T" [log] -tracing = "Info,sqlx::query=Warn" +tracing = "Info,pagetop=Debug,sqlx::query=Warn" + +[dev] +#static_files = "pagetop/static" diff --git a/drust/Cargo.toml b/drust/Cargo.toml index dd0bfdc5..4e06320a 100644 --- a/drust/Cargo.toml +++ b/drust/Cargo.toml @@ -7,10 +7,11 @@ authors = [ "Manuel Cillero " ] description = """\ - A modern Content Management System for sharing the world.\ + A modern web Content Management System to share your world.\ """ homepage = "https://suitepro.cillero.es/projects/drust" repository = "https://gitlab.com/manuelcillero/drust" +license = "Apache-2.0 or MIT" [dependencies.pagetop] path = "../pagetop" @@ -19,3 +20,6 @@ default-features = false [dependencies] actix-web = "3.3.3" +pagetop-admin = { path = "../pagetop-admin" } +pagetop-user = { path = "../pagetop-user" } +pagetop-node = { path = "../pagetop-node" } diff --git a/drust/src/main.rs b/drust/src/main.rs index 6916d3b1..4c210191 100644 --- a/drust/src/main.rs +++ b/drust/src/main.rs @@ -1,4 +1,25 @@ +use pagetop::prelude::*; + +struct Drust; + +impl AppTrait for Drust { + fn enable_modules(&self) -> Vec<&'static dyn ModuleTrait> { + vec![ + &pagetop_admin::Admin, + &pagetop_user::User, + &pagetop_node::Node, + &pagetop::base::module::demopage::Demopage, + ] + } + + fn themes(&self) -> Vec<&'static dyn ThemeTrait> { + vec![ + &pagetop::base::theme::bulmix::Bulmix, + ] + } +} + #[actix_web::main] async fn main() -> std::io::Result<()> { - pagetop::Application::build(None).await?.run()?.await + Application::prepare(Drust).await?.run()?.await } diff --git a/pagetop-admin/Cargo.toml b/pagetop-admin/Cargo.toml new file mode 100644 index 00000000..1f037317 --- /dev/null +++ b/pagetop-admin/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "pagetop-admin" +version = "0.0.1" +edition = "2021" + +authors = [ + "Manuel Cillero " +] +description = """\ + ...\ +""" +homepage = "https://suitepro.cillero.es/projects/pagetop" +repository = "https://gitlab.com/manuelcillero/pagetop" +license = "Apache-2.0 or MIT" + +[dependencies] +pagetop = { path = "../pagetop" } +maud = { version = "0.23.0" } diff --git a/pagetop-admin/src/lib.rs b/pagetop-admin/src/lib.rs new file mode 100644 index 00000000..d495ecaf --- /dev/null +++ b/pagetop-admin/src/lib.rs @@ -0,0 +1,40 @@ +use pagetop::prelude::*; + +pub const ADMIN_MODULE: &str = "pagetop-admin::module::admin"; + +localize!("src/locales"); + +mod summary; + +pub struct Admin; + +impl ModuleTrait for Admin { + fn handler(&self) -> &'static str { + ADMIN_MODULE + } + + fn name(&self) -> String { + l("module_name") + } + + fn description(&self) -> Option { + Some(l("module_description")) + } + + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + cfg.service( + app::web::scope("/admin") + .route("", app::web::get().to(summary::summary)) + ); + } + + fn actions(&self) -> Vec { + vec![ + hook_item!(BeforeRenderPageHook => before_render_page) + ] + } +} + +fn before_render_page(page: &mut Page) { + page.alter_body_classes("test-admin", ClassesOp::Add); +} diff --git a/pagetop/src/base/module/admin/locales/en-US/admin.ftl b/pagetop-admin/src/locales/en-US/admin.ftl similarity index 58% rename from pagetop/src/base/module/admin/locales/en-US/admin.ftl rename to pagetop-admin/src/locales/en-US/admin.ftl index 88da2fe6..758f5ab5 100644 --- a/pagetop/src/base/module/admin/locales/en-US/admin.ftl +++ b/pagetop-admin/src/locales/en-US/admin.ftl @@ -1,2 +1,2 @@ -module_fullname = Admin module +module_name = Admin module module_description = Administration module. diff --git a/pagetop/src/base/module/admin/locales/es-ES/admin.ftl b/pagetop-admin/src/locales/es-ES/admin.ftl similarity index 61% rename from pagetop/src/base/module/admin/locales/es-ES/admin.ftl rename to pagetop-admin/src/locales/es-ES/admin.ftl index c9105a6a..ba596691 100644 --- a/pagetop/src/base/module/admin/locales/es-ES/admin.ftl +++ b/pagetop-admin/src/locales/es-ES/admin.ftl @@ -1,2 +1,2 @@ -module_fullname = Admin module +module_name = Admin module module_description = Módulo de administración. diff --git a/pagetop/src/base/module/admin/summary.rs b/pagetop-admin/src/summary.rs similarity index 63% rename from pagetop/src/base/module/admin/summary.rs rename to pagetop-admin/src/summary.rs index cee26c22..f254714f 100644 --- a/pagetop/src/base/module/admin/summary.rs +++ b/pagetop-admin/src/summary.rs @@ -1,51 +1,51 @@ -use crate::prelude::*; +use pagetop::prelude::*; use super::l; -pub async fn summary() -> server::Result { - let top_menu = Menu::prepare() - .add(MenuItem::label(l("module_fullname").as_str())) +pub async fn summary() -> app::Result { + let top_menu = Menu::new() + .add(MenuItem::label(l("module_name").as_str())) .add(MenuItem::link("Opción 2", "https://www.google.es")) .add(MenuItem::link_blank("Opción 3", "https://www.google.es")) - .add(MenuItem::submenu("Submenú 1", Menu::prepare() + .add(MenuItem::submenu("Submenú 1", Menu::new() .add(MenuItem::label("Opción 1")) .add(MenuItem::label("Opción 2")) )) .add(MenuItem::separator()) - .add(MenuItem::submenu("Submenú 2", Menu::prepare() + .add(MenuItem::submenu("Submenú 2", Menu::new() .add(MenuItem::label("Opción 1")) .add(MenuItem::label("Opción 2")) )) .add(MenuItem::label("Opción 4")); - let side_menu = Menu::prepare() + let side_menu = Menu::new() .add(MenuItem::label("Opción 1")) .add(MenuItem::link("Opción 2", "https://www.google.es")) .add(MenuItem::link_blank("Opción 3", "https://www.google.es")) - .add(MenuItem::submenu("Submenú 1", Menu::prepare() + .add(MenuItem::submenu("Submenú 1", Menu::new() .add(MenuItem::label("Opción 1")) .add(MenuItem::label("Opción 2")) )) .add(MenuItem::separator()) - .add(MenuItem::submenu("Submenú 2", Menu::prepare() + .add(MenuItem::submenu("Submenú 2", Menu::new() .add(MenuItem::label("Opción 1")) .add(MenuItem::label("Opción 2")) )) .add(MenuItem::label("Opción 4")); - Page::prepare() + Page::new() - .using_theme("bootsier") + .using_theme("Bootsier") .with_title("Admin") .add_to("top-menu", top_menu) - .add_to("content", Container::row() - .add(Container::column() + .add_to("content", grid::Row::new() + .add_column(grid::Column::new() .add(side_menu) ) - .add(Container::column() - .add(Chunck::markup(html! { + .add_column(grid::Column::new() + .add(Chunck::with(html! { p { "Columna 2"} })) ) diff --git a/pagetop-node/Cargo.toml b/pagetop-node/Cargo.toml new file mode 100644 index 00000000..71412013 --- /dev/null +++ b/pagetop-node/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "pagetop-node" +version = "0.0.1" +edition = "2021" + +authors = [ + "Manuel Cillero " +] +description = """\ + Allows content to be submitted to the site and displayed on pages.\ +""" +homepage = "https://suitepro.cillero.es/projects/pagetop" +repository = "https://gitlab.com/manuelcillero/pagetop" +license = "Apache-2.0 or MIT" + +[dependencies] +pagetop = { path = "../pagetop" } diff --git a/pagetop-node/src/lib.rs b/pagetop-node/src/lib.rs new file mode 100644 index 00000000..5556fefe --- /dev/null +++ b/pagetop-node/src/lib.rs @@ -0,0 +1,55 @@ +use pagetop::prelude::*; + +pub const NODE_MODULE: &str = "pagetop-node::module::node"; + +localize!("src/locales"); + +//mod entity; +mod migration; + +pub struct Node; + +impl ModuleTrait for Node { + fn handler(&self) -> &'static str { + NODE_MODULE + } + + fn name(&self) -> String { + l("module_name") + } + + fn description(&self) -> Option { + Some(l("module_description")) + } + + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + cfg.route("/node", app::web::get().to(node)); + } + + fn actions(&self) -> Vec { + vec![ + hook_item!(BeforeRenderPageHook => before_render_page, -1) + ] + } + + fn migrations(&self) -> Vec { + vec![ + migration_item!(m20220316_000001_create_table_node_type), + migration_item!(m20220316_000002_create_table_node), + migration_item!(m20220316_000003_create_table_node_access), + migration_item!(m20220316_000004_create_table_node_revision), + ] + } +} + +async fn node() -> app::Result { + Page::new() + .with_title( + "Nodo" + ) + .render() +} + +fn before_render_page(page: &mut Page) { + page.alter_body_classes("test-node", ClassesOp::Add); +} diff --git a/pagetop-node/src/locales/en-US/homepage.ftl b/pagetop-node/src/locales/en-US/homepage.ftl new file mode 100644 index 00000000..46a2e750 --- /dev/null +++ b/pagetop-node/src/locales/en-US/homepage.ftl @@ -0,0 +1,2 @@ +module_name = Node +module_description = Allows content to be submitted to the site and displayed on pages. diff --git a/pagetop-node/src/locales/es-ES/homepage.ftl b/pagetop-node/src/locales/es-ES/homepage.ftl new file mode 100644 index 00000000..a2253fe9 --- /dev/null +++ b/pagetop-node/src/locales/es-ES/homepage.ftl @@ -0,0 +1,2 @@ +module_name = Nodo +module_description = Permite enviar contenidos al sitio y mostrarlos en páginas. diff --git a/pagetop-node/src/migration.rs b/pagetop-node/src/migration.rs new file mode 100644 index 00000000..49f4e057 --- /dev/null +++ b/pagetop-node/src/migration.rs @@ -0,0 +1,4 @@ +pub mod m20220316_000001_create_table_node_type; +pub mod m20220316_000002_create_table_node; +pub mod m20220316_000003_create_table_node_access; +pub mod m20220316_000004_create_table_node_revision; diff --git a/pagetop-node/src/migration/m20220316_000001_create_table_node_type.rs b/pagetop-node/src/migration/m20220316_000001_create_table_node_type.rs new file mode 100644 index 00000000..9065836a --- /dev/null +++ b/pagetop-node/src/migration/m20220316_000001_create_table_node_type.rs @@ -0,0 +1,84 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum NodeType { + Table, // node_type: Stores information about all defined Node types. + + Type, // The machine-readable name of this type. + Name, // The human-readable name of this type. + Description, // Descripción breve del tipo. + Help, // Help information shown to the user when creating a Node of this type. + HasTitle, // Boolean indicating whether this type uses the Node.Title field. + TitleLabel, // The label displayed for the title field on the edit form. + Custom, // A boolean indicating whether this type is defined by a module (FALSE) or + // by a user via Add content type (TRUE). + Locked, // A boolean indicating whether the administrator can change the machine + // name of this type. + Disabled, // A boolean indicating whether the node type is disabled. + OrigType, // The original machine-readable name of this node type, this may be + // different from the current type name if the locked field is 0. +} + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(NodeType::Table) + .if_not_exists() + .col(ColumnDef::new(NodeType::Type) + .integer() + .not_null() + .auto_increment() + .primary_key(), + ) + .col(ColumnDef::new(NodeType::Name) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Description) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Help) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::HasTitle) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::TitleLabel) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Custom) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Locked) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::Disabled) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeType::OrigType) + .string() + .not_null() + ) + .to_owned() + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(NodeType::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop-node/src/migration/m20220316_000002_create_table_node.rs b/pagetop-node/src/migration/m20220316_000002_create_table_node.rs new file mode 100644 index 00000000..1c8d7b12 --- /dev/null +++ b/pagetop-node/src/migration/m20220316_000002_create_table_node.rs @@ -0,0 +1,107 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum Node { + Table, // node: The base table for nodes. + + Nid, // The primary identifier for a node. + Vid, // The current NodeRevision.vid version identifier. + Type, // The NodeType.type of this node. + Language, // The {languages}.language of this node. + Title, // The title of this node, always treated as non-markup plain text. + Uid, // The User.uid that owns this node; initially, this is the user that + // created it. + Status, // Boolean indicating whether the node is published (visible to + // non-administrators). + Created, // The Unix timestamp when the node was created. + Changed, // The Unix timestamp when the node was most recently saved. + Comment, // Whether comments are allowed on this node: 0 = no, 1 = closed (read + // only), 2 = open (read/write). + Promote, // Boolean indicating whether the node should be displayed on the front + // page. + Sticky, // Boolean indicating whether the node should be displayed at the top of + // lists in which it appears. + Tnid, // The translation set id for this node, which equals the node id of the + // source post in each set. + Translate, // A boolean indicating whether this translation page needs to be updated. +} + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(Node::Table) + .if_not_exists() + .col(ColumnDef::new(Node::Nid) + .integer() + .not_null() + .auto_increment() + .primary_key(), + ) + .col(ColumnDef::new(Node::Vid) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Type) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Language) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Title) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Uid) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Status) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Created) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Changed) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Comment) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Promote) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Sticky) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Tnid) + .string() + .not_null() + ) + .col(ColumnDef::new(Node::Translate) + .string() + .not_null() + ) + .to_owned() + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(Node::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop-node/src/migration/m20220316_000003_create_table_node_access.rs b/pagetop-node/src/migration/m20220316_000003_create_table_node_access.rs new file mode 100644 index 00000000..3fa19d66 --- /dev/null +++ b/pagetop-node/src/migration/m20220316_000003_create_table_node_access.rs @@ -0,0 +1,67 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum NodeAccess { + Table, // node_access: Identifies which realm/grant pairs a user must possess in + // order to view, update, or delete specific nodes. + + Nid, // The Node.nid this record affects. + Gid, // The grant ID a user must possess in the specified realm to gain this + // row's privileges on the node. + Realm, // The realm in which the user must possess the grant ID. Each node access + // node can define one or more realms. + GrantView, // Boolean indicating whether a user with the realm/grant pair can view this + // node. + GrantUpdate, // Boolean indicating whether a user with the realm/grant pair can edit this + // node. + GrantDelete, // Boolean indicating whether a user with the realm/grant pair can delete + // this node. +} + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(NodeAccess::Table) + .if_not_exists() + .col(ColumnDef::new(NodeAccess::Nid) + .integer() + .not_null() + .auto_increment() + .primary_key(), + ) + .col(ColumnDef::new(NodeAccess::Gid) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::Realm) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::GrantView) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::GrantUpdate) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeAccess::GrantDelete) + .string() + .not_null() + ) + .to_owned() + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(NodeAccess::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop-node/src/migration/m20220316_000004_create_table_node_revision.rs b/pagetop-node/src/migration/m20220316_000004_create_table_node_revision.rs new file mode 100644 index 00000000..621628a6 --- /dev/null +++ b/pagetop-node/src/migration/m20220316_000004_create_table_node_revision.rs @@ -0,0 +1,85 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum NodeRevision { + Table, // node_revision: Stores information about each saved version of a Node. + + Nid, // The Node this version belongs to. + Vid, // The primary identifier for this version. + Uid, // The User.uid that created this version. + Title, // The title of this version. + Log, // The log entry explaining the changes in this version. + Timestamp, // A Unix timestamp indicating when this version was created. + Status, // Boolean indicating whether the node (at the time of this revision) is + // published (visible to non-administrators). + Comment, // Whether comments are allowed on this node (at the time of this revision): + // 0 = no, 1 = closed (read only), 2 = open (read/write). + Promote, // Boolean indicating whether the node (at the time of this revision) should + // be displayed on the front page. + Sticky, // Boolean indicating whether the node (at the time of this revision) should + // be displayed at the top of lists in which it appears. +} + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(NodeRevision::Table) + .if_not_exists() + .col(ColumnDef::new(NodeRevision::Nid) + .integer() + .not_null() + .auto_increment() + .primary_key(), + ) + .col(ColumnDef::new(NodeRevision::Vid) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Uid) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Title) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Log) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Timestamp) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Status) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Comment) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Promote) + .string() + .not_null() + ) + .col(ColumnDef::new(NodeRevision::Sticky) + .string() + .not_null() + ) + .to_owned() + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(NodeRevision::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop-user/Cargo.toml b/pagetop-user/Cargo.toml new file mode 100644 index 00000000..8781d7ff --- /dev/null +++ b/pagetop-user/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "pagetop-user" +version = "0.0.1" +edition = "2021" + +authors = [ + "Manuel Cillero " +] +description = """\ + Allows content to be submitted to the site and displayed on pages.\ +""" +homepage = "https://suitepro.cillero.es/projects/pagetop" +repository = "https://gitlab.com/manuelcillero/pagetop" +license = "Apache-2.0 or MIT" + +[dependencies] +pagetop = { path = "../pagetop" } +serde = { version = "1.0", features = ["derive"] } diff --git a/pagetop-user/src/lib.rs b/pagetop-user/src/lib.rs new file mode 100644 index 00000000..8003e707 --- /dev/null +++ b/pagetop-user/src/lib.rs @@ -0,0 +1,67 @@ +use pagetop::prelude::*; + +pub const USER_MODULE: &str = "pagetop-user::module::user"; + +localize!("src/locales"); + +mod migration; + +pub struct User; + +impl ModuleTrait for User { + fn handler(&self) -> &'static str { + USER_MODULE + } + + fn name(&self) -> String { + l("module_name") + } + + fn description(&self) -> Option { + Some(l("module_description")) + } + + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + cfg.route("/user/login", app::web::get().to(login)); + } + + fn migrations(&self) -> Vec { + vec![ + migration_item!(m20220312_000001_create_table_role), + migration_item!(m20220312_000002_create_table_role_permission), + migration_item!(m20220312_000003_create_table_user), + migration_item!(m20220312_000004_create_table_user_role), + ] + } +} + +async fn login() -> app::Result { + Page::new() + .with_title( + "Identificación del usuario" + ) + .add_to("content", Container::new() + .with_id("welcome") + .add(form_login()) + ) + .render() +} + +fn form_login() -> Form { + Form::new() + .with_id("user-login") + .add(form::Input::textfield() + .with_name("name") + .with_label(l("username").as_str()) + .with_help_text(t("username_help", &args![ + "app" => SETTINGS.app.name.to_owned() + ]).as_str()) + .with_autofocus(true) + ) + .add(form::Input::password() + .with_name("pass") + .with_label(l("password").as_str()) + .with_help_text(l("password_help").as_str()) + ) + .add(form::Button::submit(l("login").as_str())) +} diff --git a/pagetop/src/base/module/user/locales/en-US/homepage.ftl b/pagetop-user/src/locales/en-US/homepage.ftl similarity index 91% rename from pagetop/src/base/module/user/locales/en-US/homepage.ftl rename to pagetop-user/src/locales/en-US/homepage.ftl index 0493672e..710369d7 100644 --- a/pagetop/src/base/module/user/locales/en-US/homepage.ftl +++ b/pagetop-user/src/locales/en-US/homepage.ftl @@ -1,4 +1,4 @@ -module_fullname = User +module_name = User module_description = Manages the user registration and login system. username = User name diff --git a/pagetop/src/base/module/user/locales/es-ES/homepage.ftl b/pagetop-user/src/locales/es-ES/homepage.ftl similarity index 67% rename from pagetop/src/base/module/user/locales/es-ES/homepage.ftl rename to pagetop-user/src/locales/es-ES/homepage.ftl index ae9a70e0..8faaf12d 100644 --- a/pagetop/src/base/module/user/locales/es-ES/homepage.ftl +++ b/pagetop-user/src/locales/es-ES/homepage.ftl @@ -1,5 +1,5 @@ -module_fullname = Usuario -module_description = Gestion el registro de usuarios y el sistema de accesos. +module_name = Usuario +module_description = Gestiona el registro de usuarios y el sistema de accesos. username = Nombre de usuario password = Contraseña diff --git a/pagetop-user/src/migration.rs b/pagetop-user/src/migration.rs new file mode 100644 index 00000000..f56a9b53 --- /dev/null +++ b/pagetop-user/src/migration.rs @@ -0,0 +1,4 @@ +pub mod m20220312_000001_create_table_role; +pub mod m20220312_000002_create_table_role_permission; +pub mod m20220312_000003_create_table_user; +pub mod m20220312_000004_create_table_user_role; diff --git a/pagetop-user/src/migration/m20220312_000001_create_table_role.rs b/pagetop-user/src/migration/m20220312_000001_create_table_role.rs new file mode 100644 index 00000000..649115ac --- /dev/null +++ b/pagetop-user/src/migration/m20220312_000001_create_table_role.rs @@ -0,0 +1,64 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum Role { + Table, // role: Store user roles. + + Rid, // Primary Key: Unique role ID. + Name, // Unique role name. + Weight, // The weight of this role in listings and the user interface. +} + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(Role::Table) + .if_not_exists() + .col(ColumnDef::new(Role::Rid) + .unsigned() + .not_null() + .auto_increment() + .primary_key() + ) + .col(ColumnDef::new(Role::Name) + .string_len(64) + .not_null() + .unique_key() + ) + .col(ColumnDef::new(Role::Weight) + .integer() + .not_null() + .default(10) + ) + // INDEXES. + .index(Index::create() + .name("weight-name") + .col(Role::Weight) + .col(Role::Name) + ) + .to_owned() + ) + .await?; + + // Built-in roles. + app::db::exec::(Query::insert() + .into_table(Role::Table) + .columns(vec![Role::Name, Role::Weight]) + .values_panic(vec!["anonymous".into(), "1".into()]) + .values_panic(vec!["authenticated".into(), "2".into()]) + .values_panic(vec!["administrator".into(), "3".into()]) + ) + .await.map(|_| ()) + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(Role::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop-user/src/migration/m20220312_000002_create_table_role_permission.rs b/pagetop-user/src/migration/m20220312_000002_create_table_role_permission.rs new file mode 100644 index 00000000..7869f029 --- /dev/null +++ b/pagetop-user/src/migration/m20220312_000002_create_table_role_permission.rs @@ -0,0 +1,58 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum RolePermission { + Table, // role_permission: Stores the permissions assigned to user roles. + + Rid, // Foreign Key: Role::Rid. + Permission, // A single permission granted to the role identified by Rid. +} + +#[derive(Iden)] +enum Role { Table, Rid, /* ... */ } + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(RolePermission::Table) + .if_not_exists() + .col(ColumnDef::new(RolePermission::Rid) + .unsigned() + .not_null() + ) + .col(ColumnDef::new(RolePermission::Permission) + .string_len(128) + .not_null() + ) + // INDEXES. + .primary_key(Index::create() + .col(RolePermission::Rid) + .col(RolePermission::Permission) + ) + .index(Index::create() + .name("permission") + .col(RolePermission::Permission) + ) + .foreign_key(ForeignKey::create() + .name("fk_role_permission-rid") + .from(RolePermission::Table, RolePermission::Rid) + .to(Role::Table, Role::Rid) + .on_delete(ForeignKeyAction::Restrict) + .on_update(ForeignKeyAction::Restrict) + ) + .to_owned() + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(RolePermission::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop-user/src/migration/m20220312_000003_create_table_user.rs b/pagetop-user/src/migration/m20220312_000003_create_table_user.rs new file mode 100644 index 00000000..ed3d85f7 --- /dev/null +++ b/pagetop-user/src/migration/m20220312_000003_create_table_user.rs @@ -0,0 +1,79 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum User { + Table, // user: Stores user data. + + Uid, // Primary Key: Unique user ID. + Name, // Unique user name. + Pass, // User's password (hashed). + Mail, // User's e-mail address. + Created, // Timestamp for when user was created. + Changed, // Timestamp for when user was changed. + Access, // Timestamp for previous time user accessed the site. + Login, // Timestamp for user's last login. + Status, // Whether the user is active(1) or blocked(0). + Timezone, // User's time zone. +} + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(User::Table) + .if_not_exists() + .col(ColumnDef::new(User::Uid) + .unsigned() + .not_null() + .primary_key() + ) + .col(ColumnDef::new(User::Name) + .string_len(60) + .not_null() + .unique_key() + ) + .col(ColumnDef::new(User::Pass) + .string_len(128) + .not_null() + ) + .col(ColumnDef::new(User::Mail) + .string_len(255) + ) + .col(ColumnDef::new(User::Created) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Changed) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Access) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Login) + .timestamp() + .not_null() + ) + .col(ColumnDef::new(User::Status) + .boolean() + .not_null() + ) + .col(ColumnDef::new(User::Timezone) + .string_len(32) + ) + .to_owned() + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(User::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop-user/src/migration/m20220312_000004_create_table_user_role.rs b/pagetop-user/src/migration/m20220312_000004_create_table_user_role.rs new file mode 100644 index 00000000..cae74e3e --- /dev/null +++ b/pagetop-user/src/migration/m20220312_000004_create_table_user_role.rs @@ -0,0 +1,64 @@ +use pagetop::prelude::*; + +#[derive(Iden)] +enum UserRole { + Table, // user_role: Maps users to roles. + + Uid, // Foreign Key: User::Uid for user. + Rid, // Foreign Key: Role::Rid for role. +} + +#[derive(Iden)] +enum User { Table, Uid, /* ... */ } + +#[derive(Iden)] +enum Role { Table, Rid, /* ... */ } + +pub_migration!(Migration); + +#[async_trait::async_trait] +impl MigrationTrait for Migration { + async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.create_table(Table::create() + .table(UserRole::Table) + .if_not_exists() + .col(ColumnDef::new(UserRole::Uid) + .unsigned() + .not_null() + ) + .col(ColumnDef::new(UserRole::Rid) + .unsigned() + .not_null() + ) + // INDEXES. + .primary_key(Index::create() + .col(UserRole::Uid) + .col(UserRole::Rid) + ) + .foreign_key(ForeignKey::create() + .name("fk_user_role-uid") + .from(UserRole::Table, UserRole::Uid) + .to(User::Table, User::Uid) + .on_delete(ForeignKeyAction::Restrict) + .on_update(ForeignKeyAction::Restrict) + ) + .foreign_key(ForeignKey::create() + .name("fk_user_role-rid") + .from(UserRole::Table, UserRole::Rid) + .to(Role::Table, Role::Rid) + .on_delete(ForeignKeyAction::Restrict) + .on_update(ForeignKeyAction::Restrict) + ) + .to_owned() + ) + .await + } + + async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { + manager.drop_table(Table::drop() + .table(UserRole::Table) + .to_owned() + ) + .await + } +} diff --git a/pagetop/Cargo.toml b/pagetop/Cargo.toml index 364b35d2..11fd2d5e 100644 --- a/pagetop/Cargo.toml +++ b/pagetop/Cargo.toml @@ -1,20 +1,18 @@ [package] name = "pagetop" -version = "0.0.1" +version = "0.0.16" edition = "2021" authors = [ "Manuel Cillero " ] description = """\ - PageTop es un proyecto personal para aprender Rust. Incluye algunos de los \ - crates más estables y populares para desarrollar soluciones web modulares, \ - extensibles y configurables. También es un sistema para la gestión de \ - contenidos web.\ + PageTop is an opinionated framework for using the most stable and popular \ + Rust packages to build modular, extensible and configurable web solutions.\ """ homepage = "https://suitepro.cillero.es/projects/pagetop" repository = "https://gitlab.com/manuelcillero/pagetop" -license = "MIT" +license = "Apache-2.0 or MIT" keywords = [ "web", "cms", "framework", "frontend", "ssr" @@ -24,53 +22,56 @@ categories = [ ] [dependencies] -doc-comment = "0.3.3" -downcast-rs = "1.2.0" -figlet-rs = "0.1.3" -futures = "0.3.21" -once_cell = "1.9.0" -url = "2.2.2" +concat-string = "1.0.1" +doc-comment = "0.3.3" +figlet-rs = "0.1.3" +futures = "0.3.21" +once_cell = "1.12.0" +substring = "1.4.5" +term_size = "0.3.2" +url = "2.2.2" config_rs = { package = "config", version = "0.11.0", features = ["toml"] } -tracing = "0.1.32" -tracing-appender = "0.2.1" -tracing-subscriber = { version = "0.3.9", features = ["json", "env-filter"] } +tracing = "0.1.35" +tracing-appender = "0.2.2" +tracing-subscriber = { version = "0.3.11", features = ["json", "env-filter"] } tracing-unwrap = { version = "0.9.2", default-features = false } -tracing-actix-web = "0.5.1" +tracing-actix-web = "0.6.0" -fluent-templates = "0.6.1" +fluent-templates = "0.7.1" unic-langid = "0.9.0" -actix-web = "4.0.1" +actix-web = "4.1.0" actix-web-static-files = "4.0.0" -static-files = "0.2.3" +actix-files = "0.6.1" -maud = { version = "0.23.0", features = ["actix-web"] } +maud = { git = "https://github.com/lambda-fairy/maud", rev = "e6787cd62165a075c7f16a32f8bbacc398f52d13", features = ["actix-web"] } sycamore = { version = "0.7.1", features = ["ssr"] } serde = { version = "1.0", features = ["derive"] } [dependencies.sea-orm] -version = "0.6.0" +version = "0.8.0" features = ["debug-print", "macros", "runtime-async-std-native-tls"] default-features = false optional = true -[dependencies.sea-schema] -version = "0.6.0" -features = ["debug-print", "migration"] -default-features = false +[dependencies.sea-orm-migration] +version = "0.8.3" optional = true [features] default = [] -mysql = ["sea-orm", "sea-schema", "sea-orm/sqlx-mysql"] -postgres = ["sea-orm", "sea-schema", "sea-orm/sqlx-postgres"] -sqlite = ["sea-orm", "sea-schema", "sea-orm/sqlx-sqlite"] +mysql = ["sea-orm", "sea-orm-migration", "sea-orm/sqlx-mysql"] +postgres = ["sea-orm", "sea-orm-migration", "sea-orm/sqlx-postgres"] +sqlite = ["sea-orm", "sea-orm-migration", "sea-orm/sqlx-sqlite"] [build-dependencies] static-files = "0.2.3" +[dev-dependencies] +tokio = { version = "1.17.0", features = ["macros", "rt-multi-thread"] } + [lib] name = "pagetop" diff --git a/pagetop/STARTER.Cargo.toml b/pagetop/STARTER.bin.Cargo.toml similarity index 59% rename from pagetop/STARTER.Cargo.toml rename to pagetop/STARTER.bin.Cargo.toml index 7cddd5fc..f3169356 100644 --- a/pagetop/STARTER.Cargo.toml +++ b/pagetop/STARTER.bin.Cargo.toml @@ -8,19 +8,18 @@ edition = "2021" [dependencies.pagetop] path = "../pagetop" -# Opcional. Por defecto se puede usar PageTop sin base de datos. +# Si se usa base de datos: features = ["mysql"] # features = ["postgres"] # features = ["sqlite"] -# PageTop puede dar soporte a todas las bases de datos. +# Soporte alternativo a todas las bases de datos: # features = ["mysql", "postgres", "sqlite"] -# Sólo cuando no se usen las características predeterminadas. +# En estos casos hay que deshabilitar las características predeterminadas: default-features = false [dependencies] -# Requerido. actix-web = "3.3.3" -# Opcional. Sólo si se usa la macro html!. +# Si se usa la macro html!: maud = { version = "0.23.0" } -# Opcional. Si se requiere serialización de estructuras de datos. +# Si se requiere serialización de estructuras de datos: serde = { version = "1.0", features = ["derive"] } diff --git a/pagetop/STARTER.lib.Cargo.toml b/pagetop/STARTER.lib.Cargo.toml new file mode 100644 index 00000000..c268b8cc --- /dev/null +++ b/pagetop/STARTER.lib.Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "app" +version = "0.1.0" +edition = "2021" + +# Ver más claves y sus definiciones en +# https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +pagetop = { path = "../pagetop" } +# Si se usa la macro html!: +maud = { version = "0.23.0" } +# Si se requiere serialización de estructuras de datos: +serde = { version = "1.0", features = ["derive"] } diff --git a/pagetop/config/settings.default.toml b/pagetop/config/settings.default.toml index b9c329cf..115b4cb7 100644 --- a/pagetop/config/settings.default.toml +++ b/pagetop/config/settings.default.toml @@ -8,7 +8,7 @@ language = "en-US" # Dirección predeterminada para el texto: "ltr", "rtl" o "auto". direction = "ltr" # Rótulo al inicio: "Off", "Slant", "Small", "Speed" o "Starwars". -startup_banner = "Small" +startup_banner = "Slant" [log] # Traza de ejecución: "Error", "Warn", "Info", "Debug" o "Trace". @@ -25,7 +25,7 @@ format = "Full" [database] # Conecta con una base de datos (opcional). -# Tipo de la base de datos (mysql, postgres ó sqlite). +# Tipo de base de datos (mysql, postgres ó sqlite). db_type = "" # Nombre (para mysql/postgres) o referencia (para sqlite) de la base de datos. db_name = "" @@ -43,3 +43,11 @@ max_pool_size = 5 # Configuración del servidor web. bind_address = "localhost" bind_port = 8088 + +[dev] +# Los archivos estáticos requeridos por temas y componentes incluidos en PageTop +# se integran de manera predeterminada en el binario ejecutable. Sin embargo, es +# útil servir estos archivos desde su propio directorio durante el desarrollo ya +# que no requiere compilar cada vez que se modifican. En este caso, normalmente, +# basta con indicar el directorio "pagetop/static". +static_files = "" diff --git a/pagetop/src/core/server/mod.rs b/pagetop/src/app.rs similarity index 73% rename from pagetop/src/core/server/mod.rs rename to pagetop/src/app.rs index 394886b4..17bd0509 100644 --- a/pagetop/src/core/server/mod.rs +++ b/pagetop/src/app.rs @@ -2,6 +2,8 @@ pub use actix_web::{ App, HttpRequest, HttpResponse, HttpServer, Responder, Result, http, web }; +mod banner; + mod tracing; pub mod locale; @@ -9,4 +11,7 @@ pub mod locale; #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] pub mod db; -pub mod app; +mod definition; +pub use definition::AppTrait; + +pub mod application; diff --git a/pagetop/src/app/application.rs b/pagetop/src/app/application.rs new file mode 100644 index 00000000..4cb18d39 --- /dev/null +++ b/pagetop/src/app/application.rs @@ -0,0 +1,72 @@ +use crate::{Lazy, base, trace}; +use crate::config::SETTINGS; +use crate::core::{module, theme}; +use super::AppTrait; + +use std::io::Error; +use actix_web::middleware::normalize::{NormalizePath, TrailingSlash}; +use actix_web::dev::Server; + +pub struct Application { + server: Server, +} + +impl Application { + pub async fn prepare(app: impl AppTrait) -> Result { + // Rótulo de presentación. + super::banner::print_on_startup(); + + // Inicia registro de trazas y eventos. + Lazy::force(&super::tracing::TRACING); + + // Valida el identificador de idioma. + Lazy::force(&super::locale::LANGID); + + // Conecta con la base de datos (opcional). + #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] + Lazy::force(&super::db::DBCONN); + + // Habilita los módulos de la aplicación. + module::all::enable_modules(app.enable_modules()); + + // Registra los temas predeterminados. + theme::all::register_themes(vec![ + &base::theme::aliner::Aliner, + &base::theme::minimal::Minimal, + &base::theme::bootsier::Bootsier, + ]); + // Registra los temas de la aplicación. + theme::all::register_themes(app.themes()); + + // Registra las acciones de todos los módulos. + module::all::register_hooks(); + + // Ejecuta actualizaciones pendientes de la base de datos (opcional). + #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] + module::all::run_migrations(); + + // Ejecuta la función de inicio de la aplicación. + trace::info!("Calling application bootstrap"); + app.bootstrap(); + + // Prepara el servidor web. + let server = super::HttpServer::new(move || { + super::App::new() + .wrap(tracing_actix_web::TracingLogger) + .wrap(NormalizePath::new(TrailingSlash::Trim)) + .configure(&module::all::modules) + .configure(&theme::all::themes) + }) + .bind(format!("{}:{}", + &SETTINGS.webserver.bind_address, + &SETTINGS.webserver.bind_port + ))? + .run(); + + Ok(Self { server }) + } + + pub fn run(self) -> Result { + Ok(self.server) + } +} diff --git a/pagetop/src/app/banner.rs b/pagetop/src/app/banner.rs new file mode 100644 index 00000000..a4dfd5b3 --- /dev/null +++ b/pagetop/src/app/banner.rs @@ -0,0 +1,31 @@ +mod figfont; +use figfont::FIGFONT; + +use crate::config::SETTINGS; + +use substring::Substring; + +pub fn print_on_startup() { + if SETTINGS.app.startup_banner.to_lowercase() != "off" { + if let Some((term_width, _)) = term_size::dimensions() { + if term_width >= 80 { + let maxlen = (term_width / 10) - 2; + let mut app = SETTINGS.app.name.substring(0, maxlen).to_owned(); + if SETTINGS.app.name.len() > maxlen { + app = format!("{}...", app); + } + println!("\n{} {}\n\n Powered by PageTop {}\n", + FIGFONT.convert(&app).unwrap(), + &SETTINGS.app.description, + env!("CARGO_PKG_VERSION") + ); + return; + } + } + println!("\n{}\n{}\n\nPowered by PageTop {}\n", + &SETTINGS.app.name, + &SETTINGS.app.description, + env!("CARGO_PKG_VERSION") + ); + } +} diff --git a/pagetop/src/app/banner/figfont.rs b/pagetop/src/app/banner/figfont.rs new file mode 100644 index 00000000..8fe0a4e7 --- /dev/null +++ b/pagetop/src/app/banner/figfont.rs @@ -0,0 +1,30 @@ +use crate::Lazy; +use crate::config::SETTINGS; + +use figlet_rs::FIGfont; + +pub static FIGFONT: Lazy = Lazy::new(|| { + let slant = include_str!("slant.flf"); + let small = include_str!("small.flf"); + let speed = include_str!("speed.flf"); + let starwars = include_str!("starwars.flf"); + + FIGfont::from_content( + match SETTINGS.app.startup_banner.to_lowercase().as_str() { + "off" => slant, + "slant" => slant, + "small" => small, + "speed" => speed, + "starwars" => starwars, + _ => { + println!( + "\n FIGfont \"{}\" not found for banner. {}. {}.", + SETTINGS.app.startup_banner, + "Using \"Slant\"", + "Check the settings file", + ); + slant + } + } + ).unwrap() +}); diff --git a/pagetop/src/core/server/figfonts/slant.flf b/pagetop/src/app/banner/slant.flf similarity index 100% rename from pagetop/src/core/server/figfonts/slant.flf rename to pagetop/src/app/banner/slant.flf diff --git a/pagetop/src/core/server/figfonts/small.flf b/pagetop/src/app/banner/small.flf similarity index 100% rename from pagetop/src/core/server/figfonts/small.flf rename to pagetop/src/app/banner/small.flf diff --git a/pagetop/src/core/server/figfonts/speed.flf b/pagetop/src/app/banner/speed.flf similarity index 100% rename from pagetop/src/core/server/figfonts/speed.flf rename to pagetop/src/app/banner/speed.flf diff --git a/pagetop/src/core/server/figfonts/starwars.flf b/pagetop/src/app/banner/starwars.flf similarity index 100% rename from pagetop/src/core/server/figfonts/starwars.flf rename to pagetop/src/app/banner/starwars.flf diff --git a/pagetop/src/app/db.rs b/pagetop/src/app/db.rs new file mode 100644 index 00000000..aa3f0045 --- /dev/null +++ b/pagetop/src/app/db.rs @@ -0,0 +1,89 @@ +use crate::{Lazy, run_now, trace}; +use crate::config::SETTINGS; +use crate::db::*; + +use sea_orm::{ConnectionTrait, ConnectOptions, Database, DatabaseBackend, Statement}; +use tracing_unwrap::ResultExt; + +pub static DBCONN: Lazy = Lazy::new(|| { + trace::info!( + "Connecting to database \"{}\" using a pool of {} connections", + &SETTINGS.database.db_name, + &SETTINGS.database.max_pool_size + ); + + let db_uri = match SETTINGS.database.db_type.as_str() { + "mysql" | "postgres" => { + let mut tmp_uri = DbUri::parse(format!( + "{}://{}/{}", + &SETTINGS.database.db_type, + &SETTINGS.database.db_host, + &SETTINGS.database.db_name + ).as_str()).unwrap(); + tmp_uri.set_username( + &SETTINGS.database.db_user.as_str() + ).unwrap(); + // https://github.com/launchbadge/sqlx/issues/1624 + tmp_uri.set_password( + Some(&SETTINGS.database.db_pass.as_str()) + ).unwrap(); + if SETTINGS.database.db_port != 0 { + tmp_uri.set_port( + Some(SETTINGS.database.db_port) + ).unwrap(); + } + tmp_uri + }, + "sqlite" => DbUri::parse( + format!("{}://{}", + &SETTINGS.database.db_type, + &SETTINGS.database.db_name + ).as_str()).unwrap(), + _ => { + trace::error!( + "Unrecognized database type \"{}\"", + &SETTINGS.database.db_type + ); + DbUri::parse("").unwrap() + } + }; + + run_now( + Database::connect::({ + let mut db_opt = ConnectOptions::new(db_uri.to_string()); + db_opt.max_connections(SETTINGS.database.max_pool_size); + db_opt.into() + }) + ).expect_or_log("Failed to connect to database") +}); + +static DBBACKEND: Lazy = Lazy::new(|| { + DBCONN.get_database_backend() +}); + + +pub async fn query(stmt: &mut Q) -> Result, DbErr> { + DBCONN.query_all(Statement::from_string( + *DBBACKEND, + match *DBBACKEND { + DatabaseBackend::MySql => stmt.to_string(MysqlQueryBuilder), + DatabaseBackend::Postgres => stmt.to_string(PostgresQueryBuilder), + DatabaseBackend::Sqlite => stmt.to_string(SqliteQueryBuilder), + } + )).await +} + +pub async fn exec(stmt: &mut Q) -> Result, DbErr> { + DBCONN.query_one(Statement::from_string( + *DBBACKEND, + match *DBBACKEND { + DatabaseBackend::MySql => stmt.to_string(MysqlQueryBuilder), + DatabaseBackend::Postgres => stmt.to_string(PostgresQueryBuilder), + DatabaseBackend::Sqlite => stmt.to_string(SqliteQueryBuilder), + } + )).await +} + +pub async fn exec_raw(stmt: String) -> Result { + DBCONN.execute(Statement::from_string(*DBBACKEND, stmt)).await +} diff --git a/pagetop/src/app/definition.rs b/pagetop/src/app/definition.rs new file mode 100644 index 00000000..4740d223 --- /dev/null +++ b/pagetop/src/app/definition.rs @@ -0,0 +1,22 @@ +use crate::base::module::demopage; +use crate::core::module::ModuleTrait; +use crate::core::theme::ThemeTrait; + +pub trait AppTrait: Send + Sync { + fn bootstrap(&self) { + } + + fn enable_modules(&self) -> Vec<&'static dyn ModuleTrait> { + vec![ + &demopage::Demopage, + ] + } + + fn disable_modules(&self) -> Vec<&'static dyn ModuleTrait> { + vec![] + } + + fn themes(&self) -> Vec<&'static dyn ThemeTrait> { + vec![] + } +} diff --git a/pagetop/src/core/server/locale.rs b/pagetop/src/app/locale.rs similarity index 77% rename from pagetop/src/core/server/locale.rs rename to pagetop/src/app/locale.rs index 8bc6fc10..59fc8468 100644 --- a/pagetop/src/core/server/locale.rs +++ b/pagetop/src/app/locale.rs @@ -11,11 +11,12 @@ pub static LANGID: Lazy = Lazy::new(|| { Ok(language) => language, Err(_) => { trace::warn!( - "Failed to parse language \"{}\". {}. {}. {}.", + "{}, {} \"{}\"! {}, {}", + "Failed to parse language", + "unrecognized Unicode Language Identifier", SETTINGS.app.language, - "Unrecognized Unicode Language Identifier", "Using \"en-US\"", - "Check the settings file", + "check the settings file", ); "en-US".parse().unwrap() } diff --git a/pagetop/src/core/server/tracing.rs b/pagetop/src/app/tracing.rs similarity index 100% rename from pagetop/src/core/server/tracing.rs rename to pagetop/src/app/tracing.rs diff --git a/pagetop/src/base/mod.rs b/pagetop/src/base.rs similarity index 54% rename from pagetop/src/base/mod.rs rename to pagetop/src/base.rs index f40d2d0e..d58aa565 100644 --- a/pagetop/src/base/mod.rs +++ b/pagetop/src/base.rs @@ -1,5 +1,3 @@ -//! Temas, Módulos y Componentes base. - -pub mod theme; -pub mod module; pub mod component; +pub mod module; +pub mod theme; diff --git a/pagetop/src/base/component.rs b/pagetop/src/base/component.rs new file mode 100644 index 00000000..b0fd2673 --- /dev/null +++ b/pagetop/src/base/component.rs @@ -0,0 +1,44 @@ +mod container; +pub use container::{ + CONTAINER_COMPONENT, Container, ContainerType +}; + +pub mod grid; + +mod chunck; +pub use chunck::{ + CHUNCK_COMPONENT, Chunck +}; +mod icon; +pub use icon::{ + ICON_COMPONENT, Icon +}; +mod heading; +pub use heading::{ + HEADING_COMPONENT, Heading, HeadingDisplay, HeadingType +}; +mod paragraph; +pub use paragraph::{ + PARAGRAPH_COMPONENT, Paragraph, ParagraphDisplay +}; +mod anchor; +pub use anchor::{ + ANCHOR_COMPONENT, Anchor, AnchorIcon, AnchorTarget, AnchorType +}; +mod block; +pub use block::{ + BLOCK_COMPONENT, Block +}; +mod image; +pub use image::{ + IMAGE_COMPONENT, Image +}; +mod menu; +pub use menu::{ + MENU_COMPONENT, MENUITEM_COMPONENT, Menu, MenuItem, MenuItemType +}; + +pub mod form; +pub use form::{ + FORM_COMPONENT, Form, FormMethod +}; diff --git a/pagetop/src/base/component/anchor.rs b/pagetop/src/base/component/anchor.rs new file mode 100644 index 00000000..50d1b41e --- /dev/null +++ b/pagetop/src/base/component/anchor.rs @@ -0,0 +1,265 @@ +use crate::prelude::*; + +pub const ANCHOR_COMPONENT: &str = "pagetop::component::anchor"; + +pub enum AnchorType { + Button, + Link, + Location, +} + +pub enum AnchorTarget { + Blank, + Context(String), + Default, + Parent, + Top, +} + +pub type AnchorIcon = ComponentsBundle; + +pub struct Anchor { + renderable : fn() -> bool, + weight : isize, + anchor_type: AnchorType, + href : OptAttr, + html : Markup, + left_icon : AnchorIcon, + right_icon : AnchorIcon, + target : AnchorTarget, + id : OptIden, + classes : Classes, + template : String, +} + +impl ComponentTrait for Anchor { + fn new() -> Self { + Anchor { + renderable : render_always, + weight : 0, + anchor_type: AnchorType::Link, + href : OptAttr::new(), + html : html! {}, + left_icon : AnchorIcon::new(), + right_icon : AnchorIcon::new(), + target : AnchorTarget::Default, + id : OptIden::new(), + classes : Classes::new(), + template : "default".to_owned(), + } + } + + fn handler(&self) -> &'static str { + ANCHOR_COMPONENT + } + + fn is_renderable(&self) -> bool { + (self.renderable)() + } + + fn weight(&self) -> isize { + self.weight + } + + fn default_render(&self, context: &mut InContext) -> Markup { + let target = match &self.target() { + AnchorTarget::Blank => Some("_blank"), + AnchorTarget::Context(name) => Some(name.as_str()), + AnchorTarget::Parent => Some("_parent"), + AnchorTarget::Top => Some("_top"), + _ => None, + }; + html! { + a + id=[self.id()] + class=[self.classes()] + href=[self.href()] + target=[target] + { + (self.left_icon().render(context)) + (" ")(*self.html())(" ") + (self.right_icon().render(context)) + } + } + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } +} + +impl Anchor { + pub fn link(href: &str, html: Markup) -> Self { + Anchor::new().with_href(href).with_html(html) + } + + pub fn button(href: &str, html: Markup) -> Self { + Anchor::new().with_type(AnchorType::Button).with_href(href).with_html(html) + } + + pub fn location(id: &str) -> Self { + Anchor::new().with_type(AnchorType::Location).with_id(id) + } + + // Anchor BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_type(mut self, anchor_type: AnchorType) -> Self { + self.alter_type(anchor_type); + self + } + + pub fn with_href(mut self, href: &str) -> Self { + self.alter_href(href); + self + } + + pub fn with_html(mut self, html: Markup) -> Self { + self.alter_html(html); + self + } + + pub fn with_left_icon(mut self, icon: Icon) -> Self { + self.alter_left_icon(icon); + self + } + + pub fn with_right_icon(mut self, icon: Icon) -> Self { + self.alter_right_icon(icon); + self + } + + pub fn with_target(mut self, target: AnchorTarget) -> Self { + self.alter_target(target); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Anchor ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_type(&mut self, anchor_type: AnchorType) -> &mut Self { + self.anchor_type = anchor_type; + self.classes.alter(match self.anchor_type { + AnchorType::Button => "btn btn-primary", + _ => "", + }, ClassesOp::SetDefault); + self + } + + pub fn alter_href(&mut self, href: &str) -> &mut Self { + self.href.with_value(href); + self + } + + pub fn alter_html(&mut self, html: Markup) -> &mut Self { + self.html = html; + self + } + + pub fn alter_left_icon(&mut self, icon: Icon) -> &mut Self { + self.left_icon.clear(); + self.left_icon.add(icon); + self + } + + pub fn alter_right_icon(&mut self, icon: Icon) -> &mut Self { + self.right_icon.clear(); + self.right_icon.add(icon); + self + } + + pub fn alter_target(&mut self, target: AnchorTarget) -> &mut Self { + self.target = target; + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { + self.template = template.to_owned(); + self + } + + // Anchor GETTERS. + + pub fn anchor_type(&self) -> &AnchorType { + &self.anchor_type + } + + pub fn href(&self) -> &Option { + self.href.option() + } + + pub fn html(&self) -> &Markup { + &self.html + } + + pub fn left_icon(&self) -> &AnchorIcon { + &self.left_icon + } + + pub fn right_icon(&self) -> &AnchorIcon { + &self.right_icon + } + + pub fn target(&self) -> &AnchorTarget { + &self.target + } + + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() + } + + pub fn template(&self) -> &str { + self.template.as_str() + } +} diff --git a/pagetop/src/base/component/block.rs b/pagetop/src/base/component/block.rs index 4f658c9e..c3581654 100644 --- a/pagetop/src/base/component/block.rs +++ b/pagetop/src/base/component/block.rs @@ -1,105 +1,158 @@ use crate::prelude::*; +pub const BLOCK_COMPONENT: &str = "pagetop::component::block"; + pub struct Block { renderable: fn() -> bool, - weight : i8, - id : Option, - title : Option, - markup : Vec, + weight : isize, + components: ComponentsBundle, + title : OptAttr, + id : OptIden, + classes : Classes, template : String, } -impl PageComponent for Block { - - fn prepare() -> Self { +impl ComponentTrait for Block { + fn new() -> Self { Block { - renderable: always, + renderable: render_always, weight : 0, - id : None, - title : None, - markup : Vec::new(), + components: ComponentsBundle::new(), + title : OptAttr::new(), + id : OptIden::new(), + classes : Classes::new_with_default("block"), template : "default".to_owned(), } } + fn handler(&self) -> &'static str { + BLOCK_COMPONENT + } + fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { - let id = assets.serial_id(self.name(), self.id()); + fn default_render(&self, context: &mut InContext) -> Markup { + let id = context.required_id::(self.id()); html! { - div id=(id) class="block" { - @if self.title != None { - h2 class="block-title" { (self.title()) } + div id=(id) class=[self.classes()] { + @match self.title() { + Some(title) => h2 class="block-title" { (title) }, + None => {} } div class="block-body" { - @for markup in self.markup.iter() { - (*markup) - } + (self.components().render(context)) } } } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Block { - pub fn markup(markup: Markup) -> Self { - Block::prepare().add_markup(markup) + // Block CONTAINER. + + pub fn add(mut self, component: impl ComponentTrait) -> Self { + self.components.add(component); + self + } + + pub fn components(&self) -> &ComponentsBundle { + &self.components } // Block BUILDER. pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; + self.alter_renderable(renderable); self } - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; - self - } - - pub fn with_id(mut self, id: &str) -> Self { - self.id = util::valid_id(id); + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); self } pub fn with_title(mut self, title: &str) -> Self { - self.title = util::optional_str(title); + self.alter_title(title); self } - pub fn add_markup(mut self, markup: Markup) -> Self { - self.markup.push(markup); + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); self } pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Block ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_title(&mut self, title: &str) -> &mut Self { + self.title.with_value(title); + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Block GETTERS. - pub fn id(&self) -> &str { - util::assigned_str(&self.id) + pub fn title(&self) -> &Option { + self.title.option() } - pub fn title(&self) -> &str { - util::assigned_str(&self.title) + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() } pub fn template(&self) -> &str { self.template.as_str() } } - -fn always() -> bool { - true -} diff --git a/pagetop/src/base/component/chunck.rs b/pagetop/src/base/component/chunck.rs index 63cc20f7..1832a455 100644 --- a/pagetop/src/base/component/chunck.rs +++ b/pagetop/src/base/component/chunck.rs @@ -1,75 +1,105 @@ use crate::prelude::*; +pub const CHUNCK_COMPONENT: &str = "pagetop::component::chunck"; + pub struct Chunck { renderable: fn() -> bool, - weight : i8, - markup : Vec, + weight : isize, + html : Markup, template : String, } -impl PageComponent for Chunck { - - fn prepare() -> Self { +impl ComponentTrait for Chunck { + fn new() -> Self { Chunck { - renderable: always, + renderable: render_always, weight : 0, - markup : Vec::new(), + html : html! {}, template : "default".to_owned(), } } + fn handler(&self) -> &'static str { + CHUNCK_COMPONENT + } + fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { - html! { - @for markup in self.markup.iter() { - (*markup) - } - } + fn default_render(&self, _: &mut InContext) -> Markup { + html! { (*self.html()) } + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self } } impl Chunck { - - pub fn markup(markup: Markup) -> Self { - Chunck::prepare().add_markup(markup) + pub fn with(html: Markup) -> Self { + Chunck::new().with_html(html) } // Chunck BUILDER. pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; + self.alter_renderable(renderable); self } - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); self } - pub fn add_markup(mut self, markup: Markup) -> Self { - self.markup.push(markup); + pub fn with_html(mut self, html: Markup) -> Self { + self.alter_html(html); self } pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Chunck ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_html(&mut self, html: Markup) -> &mut Self { + self.html = html; + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Chunck GETTERS. + pub fn html(&self) -> &Markup { + &self.html + } + pub fn template(&self) -> &str { self.template.as_str() } } - -fn always() -> bool { - true -} diff --git a/pagetop/src/base/component/container.rs b/pagetop/src/base/component/container.rs index 161bea78..f7e59740 100644 --- a/pagetop/src/base/component/container.rs +++ b/pagetop/src/base/component/container.rs @@ -1,103 +1,212 @@ use crate::prelude::*; -enum ContainerType { Column, Row, Wrapper } +pub const CONTAINER_COMPONENT: &str = "pagetop::component::container"; + +pub enum ContainerType { Header, Footer, Main, Section, Wrapper } pub struct Container { - renderable: fn() -> bool, - weight : i8, - id : Option, - container : ContainerType, - components: PageContainer, - template : String, + renderable : fn() -> bool, + weight : isize, + components : ComponentsBundle, + container : ContainerType, + id : OptIden, + classes : Classes, + inner_classes: Classes, + template : String, } -impl PageComponent for Container { - - fn prepare() -> Self { +impl ComponentTrait for Container { + fn new() -> Self { Container { - renderable: always, - weight : 0, - id : None, - container : ContainerType::Wrapper, - components: PageContainer::new(), - template : "default".to_owned(), + renderable : render_always, + weight : 0, + components : ComponentsBundle::new(), + container : ContainerType::Wrapper, + id : OptIden::new(), + classes : Classes::new_with_default("container"), + inner_classes: Classes::new_with_default("container"), + template : "default".to_owned(), } } + fn handler(&self) -> &'static str { + CONTAINER_COMPONENT + } + fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { - let classes = match self.container { - ContainerType::Wrapper => "container", - ContainerType::Row => "row", - ContainerType::Column => "col", - }; - html! { - div id=[&self.id] class=(classes) { - (self.components.render(assets)) + fn default_render(&self, context: &mut InContext) -> Markup { + match self.container_type() { + ContainerType::Header => html! { + header id=[self.id()] class=[self.classes()] { + div class=[self.inner_classes()] { + (self.components().render(context)) + } + } + }, + ContainerType::Footer => html! { + footer id=[self.id()] class=[self.classes()] { + div class=[self.inner_classes()] { + (self.components().render(context)) + } + } + }, + ContainerType::Main => html! { + main id=[self.id()] class=[self.classes()] { + div class=[self.inner_classes()] { + (self.components().render(context)) + } + } + }, + ContainerType::Section => html! { + section id=[self.id()] class=[self.classes()] { + div class=[self.inner_classes()] { + (self.components().render(context)) + } + } + }, + _ => html! { + div id=[self.id()] class=[self.classes()] { + (self.components().render(context)) + } } } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Container { - - pub fn row() -> Self { - let mut grid = Container::prepare(); - grid.container = ContainerType::Row; - grid + pub fn header() -> Self { + let mut c = Container::new().with_classes("header", ClassesOp::SetDefault); + c.container = ContainerType::Header; + c } - pub fn column() -> Self { - let mut grid = Container::prepare(); - grid.container = ContainerType::Column; - grid + pub fn footer() -> Self { + let mut c = Container::new().with_classes("footer", ClassesOp::SetDefault); + c.container = ContainerType::Footer; + c + } + + pub fn main() -> Self { + let mut c = Container::new().with_classes("main", ClassesOp::SetDefault); + c.container = ContainerType::Main; + c + } + + pub fn section() -> Self { + let mut c = Container::new().with_classes("section", ClassesOp::SetDefault); + c.container = ContainerType::Section; + c + } + + // Container CONTAINER. + + pub fn add(mut self, component: impl ComponentTrait) -> Self { + self.components.add(component); + self + } + + pub fn components(&self) -> &ComponentsBundle { + &self.components } // Container BUILDER. pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; + self.alter_renderable(renderable); self } - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); self } pub fn with_id(mut self, id: &str) -> Self { - self.id = util::valid_id(id); + self.alter_id(id); self } - pub fn add(mut self, component: impl PageComponent) -> Self { - self.components.add(component); + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + + pub fn with_inner_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_inner_classes(classes, op); self } pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Container ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_inner_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.inner_classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Container GETTERS. - pub fn id(&self) -> &str { - util::assigned_str(&self.id) + pub fn container_type(&self) -> &ContainerType { + &self.container + } + + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() + } + + pub fn inner_classes(&self) -> &Option { + self.inner_classes.option() } pub fn template(&self) -> &str { self.template.as_str() } } - -fn always() -> bool { - true -} diff --git a/pagetop/src/base/component/form.rs b/pagetop/src/base/component/form.rs new file mode 100644 index 00000000..4e35a9d4 --- /dev/null +++ b/pagetop/src/base/component/form.rs @@ -0,0 +1,21 @@ +mod form; +pub use form::{ + FORM_COMPONENT, Form, FormMethod +}; + +mod input; +pub use input::{ + INPUT_COMPONENT, Input, InputType +}; +mod hidden; +pub use hidden::{ + HIDDEN_COMPONENT, Hidden +}; +mod date; +pub use date::{ + DATE_COMPONENT, Date +}; +mod button; +pub use button::{ + BUTTON_COMPONENT, Button, ButtonType +}; diff --git a/pagetop/src/base/component/form/button.rs b/pagetop/src/base/component/form/button.rs index c76c49dd..fc3e82b3 100644 --- a/pagetop/src/base/component/form/button.rs +++ b/pagetop/src/base/component/form/button.rs @@ -1,84 +1,103 @@ use crate::prelude::*; -enum ButtonType {Button, Reset, Submit} +pub const BUTTON_COMPONENT: &str = "pagetop::component::form::button"; + +pub enum ButtonType {Button, Reset, Submit} pub struct Button { renderable : fn() -> bool, - weight : i8, + weight : isize, button_type: ButtonType, - name : Option, - value : Option, - autofocus : Option, - disabled : Option, + name : OptAttr, + value : OptAttr, + autofocus : OptAttr, + disabled : OptAttr, + classes : Classes, template : String, } -impl PageComponent for Button { - - fn prepare() -> Self { +impl ComponentTrait for Button { + fn new() -> Self { Button { - renderable : always, + renderable : render_always, weight : 0, button_type: ButtonType::Button, - name : None, - value : None, - autofocus : None, - disabled : None, + name : OptAttr::new(), + value : OptAttr::new(), + autofocus : OptAttr::new(), + disabled : OptAttr::new(), + classes : Classes::new_with_default("btn btn-primary"), template : "default".to_owned(), } + .with_classes("form-button", ClassesOp::AddFirst) + } + + fn handler(&self) -> &'static str { + BUTTON_COMPONENT } fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { - let (button_type, button_class) = match &self.button_type { - ButtonType::Button => ("button", "btn btn-primary form-button"), - ButtonType::Reset => ("reset", "btn btn-primary form-reset" ), - ButtonType::Submit => ("submit", "btn btn-primary form-submit") + fn default_render(&self, _: &mut InContext) -> Markup { + let button_type = match self.button_type() { + ButtonType::Button => "button", + ButtonType::Reset => "reset", + ButtonType::Submit => "submit", }; - let id_item = match &self.name { - Some(name) => Some(format!("edit-{}", name)), + let id = match self.name() { + Some(name) => Some(concat_string!("edit-", name)), _ => None }; html! { button type=(button_type) - id=[&id_item] - class=(button_class) - name=[&self.name] - value=[&self.value] - autofocus=[&self.autofocus] - disabled=[&self.disabled] + id=[id] + class=[self.classes()] + name=[self.name()] + value=[self.value()] + autofocus=[self.autofocus()] + disabled=[self.disabled()] { - @match &self.value { - Some(value) => (value), - _ => "" - }; + @match self.value() { + Some(value) => { (value) }, + None => {}, + } } } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Button { - pub fn button(value: &str) -> Self { - Button::prepare().with_value(value) + Button::new().with_value(value) } pub fn reset(value: &str) -> Self { - let mut button = Button::prepare().with_value(value); + let mut button = Button::new() + .with_classes("form-reset", ClassesOp::Replace("form-button")) + .with_value(value); button.button_type = ButtonType::Reset; button } pub fn submit(value: &str) -> Self { - let mut button = Button::prepare().with_value(value); + let mut button = Button::new() + .with_classes("form-submit", ClassesOp::Replace("form-button")) + .with_value(value); button.button_type = ButtonType::Submit; button } @@ -86,75 +105,120 @@ impl Button { // Button BUILDER. pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; + self.alter_renderable(renderable); self } - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); self } pub fn with_name(mut self, name: &str) -> Self { - self.name = util::valid_id(name); + self.alter_name(name); self } pub fn with_value(mut self, value: &str) -> Self { - self.value = util::optional_str(value); + self.alter_value(value); self } - pub fn autofocus(mut self, toggle: bool) -> Self { - self.autofocus = match toggle { - true => Some("autofocus".to_owned()), - false => None - }; + pub fn with_autofocus(mut self, toggle: bool) -> Self { + self.alter_autofocus(toggle); self } - pub fn disabled(mut self, toggle: bool) -> Self { - self.disabled = match toggle { - true => Some("disabled".to_owned()), - false => None - }; + pub fn with_disabled(mut self, toggle: bool) -> Self { + self.alter_disabled(toggle); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); self } pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Button ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_name(&mut self, name: &str) -> &mut Self { + self.name.with_value(name); + self + } + + pub fn alter_value(&mut self, value: &str) -> &mut Self { + self.value.with_value(value); + self + } + + pub fn alter_autofocus(&mut self, toggle: bool) -> &mut Self { + self.autofocus.with_value(match toggle { + true => "autofocus", + false => "", + }); + self + } + + pub fn alter_disabled(&mut self, toggle: bool) -> &mut Self { + self.disabled.with_value(match toggle { + true => "disabled", + false => "", + }); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Button GETTERS. - pub fn name(&self) -> &str { - util::assigned_str(&self.name) + pub fn button_type(&self) -> &ButtonType { + &self.button_type } - pub fn value(&self) -> &str { - util::assigned_str(&self.value) + pub fn name(&self) -> &Option { + self.name.option() } - pub fn has_autofocus(&self) -> bool { - match &self.autofocus { - Some(_) => true, - _ => false - } + pub fn value(&self) -> &Option { + self.value.option() } - pub fn is_disabled(&self) -> bool { - match &self.disabled { - Some(_) => true, - _ => false - } + pub fn autofocus(&self) -> &Option { + self.autofocus.option() + } + + pub fn disabled(&self) -> &Option { + self.disabled.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() } pub fn template(&self) -> &str { self.template.as_str() } } - -fn always() -> bool { - true -} diff --git a/pagetop/src/base/component/form/date.rs b/pagetop/src/base/component/form/date.rs index ccc6ab31..19ba44a9 100644 --- a/pagetop/src/base/component/form/date.rs +++ b/pagetop/src/base/component/form/date.rs @@ -1,95 +1,103 @@ use crate::prelude::*; +pub const DATE_COMPONENT: &str = "pagetop::component::form::date"; + pub struct Date { renderable : fn() -> bool, - weight : i8, - name : Option, - value : Option, - label : Option, - placeholder : Option, - autofocus : Option, - autocomplete: Option, - disabled : Option, - readonly : Option, - required : Option, - help_text : Option, + weight : isize, + name : OptAttr, + value : OptAttr, + label : OptAttr, + placeholder : OptAttr, + autofocus : OptAttr, + autocomplete: OptAttr, + disabled : OptAttr, + readonly : OptAttr, + required : OptAttr, + help_text : OptAttr, + classes : Classes, template : String, } -impl PageComponent for Date { - - fn prepare() -> Self { +impl ComponentTrait for Date { + fn new() -> Self { Date { - renderable : always, + renderable : render_always, weight : 0, - name : None, - value : None, - label : None, - placeholder : None, - autofocus : None, - autocomplete: None, - disabled : None, - readonly : None, - required : None, - help_text : None, + name : OptAttr::new(), + value : OptAttr::new(), + label : OptAttr::new(), + placeholder : OptAttr::new(), + autofocus : OptAttr::new(), + autocomplete: OptAttr::new(), + disabled : OptAttr::new(), + readonly : OptAttr::new(), + required : OptAttr::new(), + help_text : OptAttr::new(), + classes : Classes::new_with_default("form-item"), template : "default".to_owned(), } + .with_classes("form-type-date", ClassesOp::AddFirst) + } + + fn handler(&self) -> &'static str { + DATE_COMPONENT } fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { - let (class_item, id_item) = match &self.name { - Some(name) => ( - format!("form-item form-item-{} form-type-date", name), - Some(format!("edit-{}", name)) - ), - None => ( - "form-item form-type-date".to_owned(), - None - ) + fn default_render(&self, _: &mut InContext) -> Markup { + let id = match self.name() { + Some(name) => Some(concat_string!("edit-", name)), + None => None, }; html! { - div class=(class_item) { - @if self.label != None { - label class="form-label" for=[&id_item] { - (self.label()) " " - @if self.required != None { - span + div class=[self.classes()] { + @match self.label() { + Some(label) => label class="form-label" for=[&id] { + (label) " " + @match self.required() { + Some(_) => span class="form-required" - title="Este campo es obligatorio." - { - "*" - } " " + title="Este campo es obligatorio." { "*" } " ", + None => {} } - } + }, + None => {} } input type="date" - id=[&id_item] + id=[id] class="form-control" - name=[&self.name] - value=[&self.value] - placeholder=[&self.placeholder] - autofocus=[&self.autofocus] - autocomplete=[&self.autocomplete] - readonly=[&self.readonly] - required=[&self.required] - disabled=[&self.disabled]; - @if self.help_text != None { - div class="form-text" { - (self.help_text()) - } + name=[self.name()] + value=[self.value()] + placeholder=[self.placeholder()] + autofocus=[self.autofocus()] + autocomplete=[self.autocomplete()] + readonly=[self.readonly()] + required=[self.required()] + disabled=[self.disabled()]; + @match self.help_text() { + Some(help_text) => div class="form-text" { (help_text) }, + None => {} } } } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Date { @@ -97,147 +105,209 @@ impl Date { // Date BUILDER. pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; + self.alter_renderable(renderable); self } - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); self } pub fn with_name(mut self, name: &str) -> Self { - self.name = util::valid_id(name); + self.alter_name(name); self } pub fn with_value(mut self, value: &str) -> Self { - self.value = util::optional_str(value); + self.alter_value(value); self } pub fn with_label(mut self, label: &str) -> Self { - self.label = util::optional_str(label); + self.alter_label(label); self } pub fn with_placeholder(mut self, placeholder: &str) -> Self { - self.placeholder = util::optional_str(placeholder); + self.alter_placeholder(placeholder); self } - pub fn autofocus(mut self, toggle: bool) -> Self { - self.autofocus = match toggle { - true => Some("autofocus".to_owned()), - false => None - }; + pub fn with_autofocus(mut self, toggle: bool) -> Self { + self.alter_autofocus(toggle); self } - pub fn autocomplete(mut self, toggle: bool) -> Self { - self.autocomplete = match toggle { - true => None, - false => Some("off".to_owned()) - }; + pub fn with_autocomplete(mut self, toggle: bool) -> Self { + self.alter_autocomplete(toggle); self } - pub fn disabled(mut self, toggle: bool) -> Self { - self.disabled = match toggle { - true => Some("disabled".to_owned()), - false => None - }; + pub fn with_disabled(mut self, toggle: bool) -> Self { + self.alter_disabled(toggle); self } - pub fn readonly(mut self, toggle: bool) -> Self { - self.readonly = match toggle { - true => Some("readonly".to_owned()), - false => None - }; + pub fn with_readonly(mut self, toggle: bool) -> Self { + self.alter_readonly(toggle); self } - pub fn required(mut self, toggle: bool) -> Self { - self.required = match toggle { - true => Some("required".to_owned()), - false => None - }; + pub fn with_required(mut self, toggle: bool) -> Self { + self.alter_required(toggle); self } pub fn with_help_text(mut self, help_text: &str) -> Self { - self.help_text = util::optional_str(help_text); + self.alter_help_text(help_text); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); self } pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Date ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_name(&mut self, name: &str) -> &mut Self { + self.name.with_value(name); + self + } + + pub fn alter_value(&mut self, value: &str) -> &mut Self { + self.value.with_value(value); + self + } + + pub fn alter_label(&mut self, label: &str) -> &mut Self { + self.label.with_value(label); + self + } + + pub fn alter_placeholder(&mut self, placeholder: &str) -> &mut Self { + self.placeholder.with_value(placeholder); + self + } + + pub fn alter_autofocus(&mut self, toggle: bool) -> &mut Self { + self.autofocus.with_value(match toggle { + true => "autofocus", + false => "", + }); + self + } + + pub fn alter_autocomplete(&mut self, toggle: bool) -> &mut Self { + self.autocomplete.with_value(match toggle { + true => "", + false => "off", + }); + self + } + + pub fn alter_disabled(&mut self, toggle: bool) -> &mut Self { + self.disabled.with_value(match toggle { + true => "disabled", + false => "", + }); + self + } + + pub fn alter_readonly(&mut self, toggle: bool) -> &mut Self { + self.readonly.with_value(match toggle { + true => "readonly", + false => "", + }); + self + } + + pub fn alter_required(&mut self, toggle: bool) -> &mut Self { + self.required.with_value(match toggle { + true => "required", + false => "", + }); + self + } + + pub fn alter_help_text(&mut self, help_text: &str) -> &mut Self { + self.help_text.with_value(help_text); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Date GETTERS. - pub fn name(&self) -> &str { - util::assigned_str(&self.name) + pub fn name(&self) -> &Option { + self.name.option() } - pub fn value(&self) -> &str { - util::assigned_str(&self.value) + pub fn value(&self) -> &Option { + self.value.option() } - pub fn label(&self) -> &str { - util::assigned_str(&self.label) + pub fn label(&self) -> &Option { + self.label.option() } - pub fn placeholder(&self) -> &str { - util::assigned_str(&self.placeholder) + pub fn placeholder(&self) -> &Option { + self.placeholder.option() } - pub fn has_autofocus(&self) -> bool { - match &self.autofocus { - Some(_) => true, - _ => false - } + pub fn autofocus(&self) -> &Option { + self.autofocus.option() } - pub fn has_autocomplete(&self) -> bool { - match &self.autocomplete { - Some(_) => false, - _ => true - } + pub fn autocomplete(&self) -> &Option { + self.autocomplete.option() } - pub fn is_disabled(&self) -> bool { - match &self.disabled { - Some(_) => true, - _ => false - } + pub fn disabled(&self) -> &Option { + self.disabled.option() } - pub fn is_readonly(&self) -> bool { - match &self.readonly { - Some(_) => true, - _ => false - } + pub fn readonly(&self) -> &Option { + self.readonly.option() } - pub fn is_required(&self) -> bool { - match &self.required { - Some(_) => true, - _ => false - } + pub fn required(&self) -> &Option { + self.required.option() } - pub fn help_text(&self) -> &str { - util::assigned_str(&self.help_text) + pub fn help_text(&self) -> &Option { + self.help_text.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() } pub fn template(&self) -> &str { self.template.as_str() } } - -fn always() -> bool { - true -} diff --git a/pagetop/src/base/component/form/form.rs b/pagetop/src/base/component/form/form.rs index 63eace0c..72c3bbcd 100644 --- a/pagetop/src/base/component/form/form.rs +++ b/pagetop/src/base/component/form/form.rs @@ -1,131 +1,195 @@ use crate::prelude::*; +pub const FORM_COMPONENT: &str = "pagetop::component::form"; + pub enum FormMethod {Get, Post} pub struct Form { renderable: fn() -> bool, - weight : i8, - id : Option, - action : Option, + weight : isize, + elements : ComponentsBundle, + action : OptAttr, + charset : OptAttr, method : FormMethod, - charset : Option, - elements : PageContainer, + id : OptIden, + classes : Classes, template : String, } -impl PageComponent for Form { - - fn prepare() -> Self { +impl ComponentTrait for Form { + fn new() -> Self { Form { - renderable: always, + renderable: render_always, weight : 0, - id : None, - action : None, + elements : ComponentsBundle::new(), + action : OptAttr::new(), + charset : OptAttr::new_with_value("UTF-8"), method : FormMethod::Post, - charset : Some("UTF-8".to_owned()), - elements : PageContainer::new(), + id : OptIden::new(), + classes : Classes::new_with_default("form"), template : "default".to_owned(), } } + fn handler(&self) -> &'static str { + FORM_COMPONENT + } + fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { - let method = match self.method { + fn default_render(&self, context: &mut InContext) -> Markup { + let method = match self.method() { FormMethod::Get => None, FormMethod::Post => Some("post".to_owned()) }; html! { form - id=[&self.id] - action=[&self.action] + id=[self.id()] + class=[self.classes()] + action=[self.action()] method=[method] - accept-charset=[&self.charset] + accept-charset=[self.charset()] { - div { - (self.elements.render(assets)) - } + div { (self.elements().render(context)) } } } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Form { - // Form BUILDER. + // Form CONTAINER. - pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; - self - } - - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; - self - } - - pub fn with_id(mut self, id: &str) -> Self { - self.id = util::valid_id(id); - self - } - - pub fn with_action(mut self, action: &str) -> Self { - self.action = util::optional_str(action); - self - } - - pub fn with_method(mut self, method: FormMethod) -> Self { - self.method = method; - self - } - - pub fn with_charset(mut self, charset: &str) -> Self { - self.charset = util::optional_str(charset); - self - } - - pub fn add(mut self, element: impl PageComponent) -> Self { + pub fn add(mut self, element: impl ComponentTrait) -> Self { self.elements.add(element); self } + pub fn elements(&self) -> &ComponentsBundle { + &self.elements + } + + // Form BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_action(mut self, action: &str) -> Self { + self.alter_action(action); + self + } + + pub fn with_charset(mut self, charset: &str) -> Self { + self.alter_charset(charset); + self + } + + pub fn with_method(mut self, method: FormMethod) -> Self { + self.alter_method(method); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Form ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_action(&mut self, action: &str) -> &mut Self { + self.action.with_value(action); + self + } + + pub fn alter_charset(&mut self, charset: &str) -> &mut Self { + self.charset.with_value(charset); + self + } + + pub fn alter_method(&mut self, method: FormMethod) -> &mut Self { + self.method = method; + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Form GETTERS. - pub fn id(&self) -> &str { - util::assigned_str(&self.id) + pub fn action(&self) -> &Option { + self.action.option() } - pub fn action(&self) -> &str { - util::assigned_str(&self.action) + pub fn charset(&self) -> &Option { + self.charset.option() } - pub fn method(&self) -> &str { - match &self.method { - FormMethod::Get => "get", - FormMethod::Post => "post" - } + pub fn method(&self) -> &FormMethod { + &self.method } - pub fn charset(&self) -> &str { - util::assigned_str(&self.charset) + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() } pub fn template(&self) -> &str { self.template.as_str() } } - -fn always() -> bool { - true -} diff --git a/pagetop/src/base/component/form/hidden.rs b/pagetop/src/base/component/form/hidden.rs index 9ac0a4f9..83bca41b 100644 --- a/pagetop/src/base/component/form/hidden.rs +++ b/pagetop/src/base/component/form/hidden.rs @@ -1,70 +1,95 @@ use crate::prelude::*; +pub const HIDDEN_COMPONENT: &str = "pagetop::component::form::hidden"; + pub struct Hidden { - weight : i8, - name : Option, - value : Option, + weight: isize, + name : OptIden, + value : OptAttr, } -impl PageComponent for Hidden { - - fn prepare() -> Self { +impl ComponentTrait for Hidden { + fn new() -> Self { Hidden { - weight : 0, - name : None, - value : None, + weight: 0, + name : OptIden::new(), + value : OptAttr::new(), } } - fn weight(&self) -> i8 { + fn handler(&self) -> &'static str { + HIDDEN_COMPONENT + } + + fn weight(&self) -> isize { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { - let id_item = match &self.name { - Some(name) => Some(format!("value-{}", name)), + fn default_render(&self, _: &mut InContext) -> Markup { + let id = match self.name() { + Some(name) => Some(concat_string!("value-", name)), _ => None }; html! { - input - type="hidden" - id=[&id_item] - name=[&self.name] - value=[&self.value]; + input type="hidden" id=[id] name=[self.name()] value=[self.value()]; } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Hidden { - pub fn set(name: &str, value: &str) -> Self { - Hidden::prepare().with_name(name).with_value(value) + Hidden::new().with_name(name).with_value(value) } // Hidden BUILDER. - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); self } pub fn with_name(mut self, name: &str) -> Self { - self.name = util::valid_id(name); + self.alter_name(name); self } pub fn with_value(mut self, value: &str) -> Self { - self.value = util::optional_str(value); + self.alter_value(value); + self + } + + // Hidden ALTER. + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_name(&mut self, name: &str) -> &mut Self { + self.name.with_value(name); + self + } + + pub fn alter_value(&mut self, value: &str) -> &mut Self { + self.value.with_value(value); self } // Hidden GETTERS. - pub fn name(&self) -> &str { - util::assigned_str(&self.name) + pub fn name(&self) -> &Option { + self.name.option() } - pub fn value(&self) -> &str { - util::assigned_str(&self.value) + pub fn value(&self) -> &Option { + self.value.option() } } diff --git a/pagetop/src/base/component/form/input.rs b/pagetop/src/base/component/form/input.rs index 884d2232..0c615de2 100644 --- a/pagetop/src/base/component/form/input.rs +++ b/pagetop/src/base/component/form/input.rs @@ -1,150 +1,162 @@ use crate::prelude::*; -enum InputType {Email, Password, Search, Telephone, Textfield, Url} +pub const INPUT_COMPONENT: &str = "pagetop::component::form::input"; + +pub enum InputType {Email, Password, Search, Telephone, Textfield, Url} pub struct Input { renderable : fn() -> bool, - weight : i8, + weight : isize, input_type : InputType, - name : Option, - value : Option, - label : Option, + name : OptIden, + value : OptAttr, + label : OptAttr, size : Option, minlength : Option, maxlength : Option, - placeholder : Option, - autofocus : Option, - autocomplete: Option, - disabled : Option, - readonly : Option, - required : Option, - help_text : Option, + placeholder : OptAttr, + autofocus : OptAttr, + autocomplete: OptAttr, + disabled : OptAttr, + readonly : OptAttr, + required : OptAttr, + help_text : OptAttr, + classes : Classes, template : String, } -impl PageComponent for Input { - - fn prepare() -> Self { +impl ComponentTrait for Input { + fn new() -> Self { Input { - renderable : always, + renderable : render_always, weight : 0, input_type : InputType::Textfield, - name : None, - value : None, - label : None, + name : OptIden::new(), + value : OptAttr::new(), + label : OptAttr::new(), size : Some(60), minlength : None, maxlength : Some(128), - placeholder : None, - autofocus : None, - autocomplete: None, - disabled : None, - readonly : None, - required : None, - help_text : None, + placeholder : OptAttr::new(), + autofocus : OptAttr::new(), + autocomplete: OptAttr::new(), + disabled : OptAttr::new(), + readonly : OptAttr::new(), + required : OptAttr::new(), + help_text : OptAttr::new(), + classes : Classes::new_with_default("form-item"), template : "default".to_owned(), } + .with_classes("form-type-textfield", ClassesOp::AddFirst) + } + + fn handler(&self) -> &'static str { + INPUT_COMPONENT } fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, _: &mut PageAssets) -> Markup { - let (input_type, class_type) = match &self.input_type { - InputType::Email => ("email", "form-type-email"), - InputType::Password => ("password", "form-type-password"), - InputType::Search => ("search", "form-type-search"), - InputType::Telephone => ("tel", "form-type-telephone"), - InputType::Textfield => ("text", "form-type-textfield"), - InputType::Url => ("url", "form-type-url") + fn default_render(&self, _: &mut InContext) -> Markup { + let type_input = match self.input_type() { + InputType::Email => "email", + InputType::Password => "password", + InputType::Search => "search", + InputType::Telephone => "tel", + InputType::Textfield => "text", + InputType::Url => "url", }; - let (class_item, id_item) = match &self.name { - Some(name) => ( - format!("form-item form-item-{} {}", name, class_type), - Some(format!("edit-{}", name)) - ), - None => ( - format!("form-item {}", class_type), - None - ) + let id = match self.name() { + Some(name) => Some(concat_string!("edit-", name)), + None => None, }; html! { - div class=(class_item) { - @if self.label != None { - label class="form-label" for=[&id_item] { - (self.label()) " " - @if self.required != None { - span + div class=[self.classes()] { + @match self.label() { + Some(label) => label class="form-label" for=[&id] { + (label) " " + @match self.required() { + Some(_) => span class="form-required" - title="Este campo es obligatorio." - { - "*" - } " " + title="Este campo es obligatorio." { "*" } " ", + None => {} } - } + }, + None => {} } input - type=(input_type) - id=[&id_item] + type=(type_input) + id=[id] class="form-control" - name=[&self.name] - value=[&self.value] - size=[self.size] - minlength=[self.minlength] - maxlength=[self.maxlength] - placeholder=[&self.placeholder] - autofocus=[&self.autofocus] - autocomplete=[&self.autocomplete] - readonly=[&self.readonly] - required=[&self.required] - disabled=[&self.disabled]; - @if self.help_text != None { - div class="form-text" { - (self.help_text()) - } + name=[self.name()] + value=[self.value()] + size=[self.size()] + minlength=[self.minlength()] + maxlength=[self.maxlength()] + placeholder=[self.placeholder()] + autofocus=[self.autofocus()] + autocomplete=[self.autocomplete()] + readonly=[self.readonly()] + required=[self.required()] + disabled=[self.disabled()]; + @match self.help_text() { + Some(help_text) => div class="form-text" { (help_text) }, + None => {} } } } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Input { - pub fn textfield() -> Self { - Input::prepare() + Input::new() } pub fn password() -> Self { - let mut input = Input::prepare(); + let mut input = Input::new() + .with_classes("form-type-password", ClassesOp::Replace("form-type-textfield")); input.input_type = InputType::Password; input } pub fn search() -> Self { - let mut input = Input::prepare(); + let mut input = Input::new() + .with_classes("form-type-search", ClassesOp::Replace("form-type-textfield")); input.input_type = InputType::Search; input } pub fn email() -> Self { - let mut input = Input::prepare(); + let mut input = Input::new() + .with_classes("form-type-email", ClassesOp::Replace("form-type-textfield")); input.input_type = InputType::Email; input } pub fn telephone() -> Self { - let mut input = Input::prepare(); + let mut input = Input::new() + .with_classes("form-type-telephone", ClassesOp::Replace("form-type-textfield")); input.input_type = InputType::Telephone; input } pub fn url() -> Self { - let mut input = Input::prepare(); + let mut input = Input::new() + .with_classes("form-type-url", ClassesOp::Replace("form-type-textfield")); input.input_type = InputType::Url; input } @@ -152,112 +164,212 @@ impl Input { // Input BUILDER. pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; + self.alter_renderable(renderable); self } - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); self } pub fn with_name(mut self, name: &str) -> Self { - self.name = util::valid_id(name); + self.alter_name(name); self } pub fn with_value(mut self, value: &str) -> Self { - self.value = util::optional_str(value); + self.alter_value(value); self } pub fn with_label(mut self, label: &str) -> Self { - self.label = util::optional_str(label); + self.alter_label(label); self } pub fn with_size(mut self, size: Option) -> Self { - self.size = size; + self.alter_size(size); self } pub fn with_minlength(mut self, minlength: Option) -> Self { - self.minlength = minlength; + self.alter_minlength(minlength); self } pub fn with_maxlength(mut self, maxlength: Option) -> Self { - self.maxlength = maxlength; + self.alter_maxlength(maxlength); self } pub fn with_placeholder(mut self, placeholder: &str) -> Self { - self.placeholder = util::optional_str(placeholder); + self.alter_placeholder(placeholder); self } - pub fn autofocus(mut self, toggle: bool) -> Self { - self.autofocus = match toggle { - true => Some("autofocus".to_owned()), - false => None - }; + pub fn with_autofocus(mut self, toggle: bool) -> Self { + self.alter_autofocus(toggle); self } - pub fn autocomplete(mut self, toggle: bool) -> Self { - self.autocomplete = match toggle { - true => None, - false => Some("off".to_owned()) - }; + pub fn with_autocomplete(mut self, toggle: bool) -> Self { + self.alter_autocomplete(toggle); self } - pub fn disabled(mut self, toggle: bool) -> Self { - self.disabled = match toggle { - true => Some("disabled".to_owned()), - false => None - }; + pub fn with_disabled(mut self, toggle: bool) -> Self { + self.alter_disabled(toggle); self } - pub fn readonly(mut self, toggle: bool) -> Self { - self.readonly = match toggle { - true => Some("readonly".to_owned()), - false => None - }; + pub fn with_readonly(mut self, toggle: bool) -> Self { + self.alter_readonly(toggle); self } - pub fn required(mut self, toggle: bool) -> Self { - self.required = match toggle { - true => Some("required".to_owned()), - false => None - }; + pub fn with_required(mut self, toggle: bool) -> Self { + self.alter_required(toggle); self } pub fn with_help_text(mut self, help_text: &str) -> Self { - self.help_text = util::optional_str(help_text); + self.alter_help_text(help_text); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); self } pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Input ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_name(&mut self, name: &str) -> &mut Self { + self.name.with_value(name); + self.alter_classes( + concat_string!("form-item form-item-", name).as_str(), + ClassesOp::SetDefault + ); + self + } + + pub fn alter_value(&mut self, value: &str) -> &mut Self { + self.value.with_value(value); + self + } + + pub fn alter_label(&mut self, label: &str) -> &mut Self { + self.label.with_value(label); + self + } + + pub fn alter_size(&mut self, size: Option) -> &mut Self { + self.size = size; + self + } + + pub fn alter_minlength(&mut self, minlength: Option) -> &mut Self { + self.minlength = minlength; + self + } + + pub fn alter_maxlength(&mut self, maxlength: Option) -> &mut Self { + self.maxlength = maxlength; + self + } + + pub fn alter_placeholder(&mut self, placeholder: &str) -> &mut Self { + self.placeholder.with_value(placeholder); + self + } + + pub fn alter_autofocus(&mut self, toggle: bool) -> &mut Self { + self.autofocus.with_value(match toggle { + true => "autofocus", + false => "", + }); + self + } + + pub fn alter_autocomplete(&mut self, toggle: bool) -> &mut Self { + self.autocomplete.with_value(match toggle { + true => "", + false => "off", + }); + self + } + + pub fn alter_disabled(&mut self, toggle: bool) -> &mut Self { + self.disabled.with_value(match toggle { + true => "disabled", + false => "", + }); + self + } + + pub fn alter_readonly(&mut self, toggle: bool) -> &mut Self { + self.readonly.with_value(match toggle { + true => "readonly", + false => "", + }); + self + } + + pub fn alter_required(&mut self, toggle: bool) -> &mut Self { + self.required.with_value(match toggle { + true => "required", + false => "", + }); + self + } + + pub fn alter_help_text(&mut self, help_text: &str) -> &mut Self { + self.help_text.with_value(help_text); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Input GETTERS. - pub fn name(&self) -> &str { - util::assigned_str(&self.name) + pub fn input_type(&self) -> &InputType { + &self.input_type } - pub fn value(&self) -> &str { - util::assigned_str(&self.value) + pub fn name(&self) -> &Option { + self.name.option() } - pub fn label(&self) -> &str { - util::assigned_str(&self.label) + pub fn value(&self) -> &Option { + self.value.option() + } + + pub fn label(&self) -> &Option { + self.label.option() } pub fn size(&self) -> Option { @@ -272,54 +384,39 @@ impl Input { self.maxlength } - pub fn placeholder(&self) -> &str { - util::assigned_str(&self.placeholder) + pub fn placeholder(&self) -> &Option { + self.placeholder.option() } - pub fn has_autofocus(&self) -> bool { - match &self.autofocus { - Some(_) => true, - _ => false - } + pub fn autofocus(&self) -> &Option { + self.autofocus.option() } - pub fn has_autocomplete(&self) -> bool { - match &self.autocomplete { - Some(_) => false, - _ => true - } + pub fn autocomplete(&self) -> &Option { + self.autocomplete.option() } - pub fn is_disabled(&self) -> bool { - match &self.disabled { - Some(_) => true, - _ => false - } + pub fn disabled(&self) -> &Option { + self.disabled.option() } - pub fn is_readonly(&self) -> bool { - match &self.readonly { - Some(_) => true, - _ => false - } + pub fn readonly(&self) -> &Option { + self.readonly.option() } - pub fn is_required(&self) -> bool { - match &self.required { - Some(_) => true, - _ => false - } + pub fn required(&self) -> &Option { + self.required.option() } - pub fn help_text(&self) -> &str { - util::assigned_str(&self.help_text) + pub fn help_text(&self) -> &Option { + self.help_text.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() } pub fn template(&self) -> &str { self.template.as_str() } } - -fn always() -> bool { - true -} diff --git a/pagetop/src/base/component/form/mod.rs b/pagetop/src/base/component/form/mod.rs deleted file mode 100644 index 4e10d476..00000000 --- a/pagetop/src/base/component/form/mod.rs +++ /dev/null @@ -1,11 +0,0 @@ -mod form; -pub use form::{Form, FormMethod}; - -mod input; -pub use input::Input; -mod hidden; -pub use hidden::Hidden; -mod date; -pub use date::Date; -mod button; -pub use button::Button; diff --git a/pagetop/src/base/component/grid.rs b/pagetop/src/base/component/grid.rs new file mode 100644 index 00000000..4fd8936b --- /dev/null +++ b/pagetop/src/base/component/grid.rs @@ -0,0 +1,8 @@ +mod row; +pub use row::{ + ROW_COMPONENT, Row +}; +mod column; +pub use column::{ + COLUMN_COMPONENT, Column +}; diff --git a/pagetop/src/base/component/grid/column.rs b/pagetop/src/base/component/grid/column.rs new file mode 100644 index 00000000..4cf0f48e --- /dev/null +++ b/pagetop/src/base/component/grid/column.rs @@ -0,0 +1,135 @@ +use crate::prelude::*; + +pub const COLUMN_COMPONENT: &str = "pagetop::component::grid::column"; + +pub struct Column { + renderable: fn() -> bool, + weight : isize, + components: ComponentsBundle, + id : OptIden, + classes : Classes, + template : String, +} + +impl ComponentTrait for Column { + fn new() -> Self { + Column { + renderable: render_always, + weight : 0, + components: ComponentsBundle::new(), + id : OptIden::new(), + classes : Classes::new_with_default("col"), + template : "default".to_owned(), + } + } + + fn handler(&self) -> &'static str { + COLUMN_COMPONENT + } + + fn is_renderable(&self) -> bool { + (self.renderable)() + } + + fn weight(&self) -> isize { + self.weight + } + + fn default_render(&self, context: &mut InContext) -> Markup { + html! { + div id=[self.id()] class=[self.classes()] { + (self.components().render(context)) + } + } + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } +} + +impl Column { + + // Column CONTAINER. + + pub fn add(mut self, component: impl ComponentTrait) -> Self { + self.components.add(component); + self + } + + pub fn components(&self) -> &ComponentsBundle { + &self.components + } + + // Column BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Column ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { + self.template = template.to_owned(); + self + } + + // Column GETTERS. + + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() + } + + pub fn template(&self) -> &str { + self.template.as_str() + } +} diff --git a/pagetop/src/base/component/grid/row.rs b/pagetop/src/base/component/grid/row.rs new file mode 100644 index 00000000..57f44568 --- /dev/null +++ b/pagetop/src/base/component/grid/row.rs @@ -0,0 +1,135 @@ +use crate::prelude::*; + +pub const ROW_COMPONENT: &str = "pagetop::component::grid::row"; + +pub struct Row { + renderable: fn() -> bool, + weight : isize, + columns : ComponentsBundle, + id : OptIden, + classes : Classes, + template : String, +} + +impl ComponentTrait for Row { + fn new() -> Self { + Row { + renderable: render_always, + weight : 0, + columns : ComponentsBundle::new(), + id : OptIden::new(), + classes : Classes::new_with_default("row"), + template : "default".to_owned(), + } + } + + fn handler(&self) -> &'static str { + ROW_COMPONENT + } + + fn is_renderable(&self) -> bool { + (self.renderable)() + } + + fn weight(&self) -> isize { + self.weight + } + + fn default_render(&self, context: &mut InContext) -> Markup { + html! { + div id=[self.id()] class=[self.classes()] { + (self.columns().render(context)) + } + } + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } +} + +impl Row { + + // Row CONTAINER. + + pub fn add_column(mut self, column: grid::Column) -> Self { + self.columns.add(column); + self + } + + pub fn columns(&self) -> &ComponentsBundle { + &self.columns + } + + // Row BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Row ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { + self.template = template.to_owned(); + self + } + + // Row GETTERS. + + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() + } + + pub fn template(&self) -> &str { + self.template.as_str() + } +} diff --git a/pagetop/src/base/component/heading.rs b/pagetop/src/base/component/heading.rs new file mode 100644 index 00000000..4248fb03 --- /dev/null +++ b/pagetop/src/base/component/heading.rs @@ -0,0 +1,215 @@ +use crate::prelude::*; + +pub const HEADING_COMPONENT: &str = "pagetop::component::heading"; + +pub enum HeadingType { H1, H2, H3, H4, H5, H6 } + +pub enum HeadingDisplay { + XxLarge, + Large, + Medium, + Small, + XxSmall, + Normal, +} + +pub struct Heading { + renderable: fn() -> bool, + weight : isize, + heading : HeadingType, + html : Markup, + display : HeadingDisplay, + id : OptIden, + classes : Classes, + template : String, +} + +impl ComponentTrait for Heading { + fn new() -> Self { + Heading { + renderable: render_always, + weight : 0, + heading : HeadingType::H1, + html : html! {}, + display : HeadingDisplay::Normal, + id : OptIden::new(), + classes : Classes::new(), + template : "default".to_owned(), + } + } + + fn handler(&self) -> &'static str { + HEADING_COMPONENT + } + + fn is_renderable(&self) -> bool { + (self.renderable)() + } + + fn weight(&self) -> isize { + self.weight + } + + fn default_render(&self, _: &mut InContext) -> Markup { + html! { @match &self.heading() { + HeadingType::H1 => h1 id=[self.id()] class=[self.classes()] { (*self.html()) }, + HeadingType::H2 => h2 id=[self.id()] class=[self.classes()] { (*self.html()) }, + HeadingType::H3 => h3 id=[self.id()] class=[self.classes()] { (*self.html()) }, + HeadingType::H4 => h4 id=[self.id()] class=[self.classes()] { (*self.html()) }, + HeadingType::H5 => h5 id=[self.id()] class=[self.classes()] { (*self.html()) }, + HeadingType::H6 => h6 id=[self.id()] class=[self.classes()] { (*self.html()) }, + }} + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } +} + +impl Heading { + pub fn h1(html: Markup) -> Self { + Heading::new().with_heading(HeadingType::H1).with_html(html) + } + + pub fn h2(html: Markup) -> Self { + Heading::new().with_heading(HeadingType::H2).with_html(html) + } + + pub fn h3(html: Markup) -> Self { + Heading::new().with_heading(HeadingType::H3).with_html(html) + } + + pub fn h4(html: Markup) -> Self { + Heading::new().with_heading(HeadingType::H4).with_html(html) + } + + pub fn h5(html: Markup) -> Self { + Heading::new().with_heading(HeadingType::H5).with_html(html) + } + + pub fn h6(html: Markup) -> Self { + Heading::new().with_heading(HeadingType::H6).with_html(html) + } + + // Heading BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_heading(mut self, heading: HeadingType) -> Self { + self.alter_heading(heading); + self + } + + pub fn with_html(mut self, html: Markup) -> Self { + self.alter_html(html); + self + } + + pub fn with_display(mut self, display: HeadingDisplay) -> Self { + self.alter_display(display); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Heading ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_heading(&mut self, heading: HeadingType) -> &mut Self { + self.heading = heading; + self + } + + pub fn alter_html(&mut self, html: Markup) -> &mut Self { + self.html = html; + self + } + + pub fn alter_display(&mut self, display: HeadingDisplay) -> &mut Self { + self.display = display; + self.classes.alter(match &self.display() { + HeadingDisplay::XxLarge => "display-2", + HeadingDisplay::Large => "display-3", + HeadingDisplay::Medium => "display-4", + HeadingDisplay::Small => "display-5", + HeadingDisplay::XxSmall => "display-6", + HeadingDisplay::Normal => "", + }, ClassesOp::SetDefault); + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { + self.template = template.to_owned(); + self + } + + // Paragraph GETTERS. + + pub fn heading(&self) -> &HeadingType { + &self.heading + } + + pub fn html(&self) -> &Markup { + &self.html + } + + pub fn display(&self) -> &HeadingDisplay { + &self.display + } + + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() + } + + pub fn template(&self) -> &str { + self.template.as_str() + } +} diff --git a/pagetop/src/base/component/icon.rs b/pagetop/src/base/component/icon.rs new file mode 100644 index 00000000..1fb24120 --- /dev/null +++ b/pagetop/src/base/component/icon.rs @@ -0,0 +1,95 @@ +use crate::prelude::*; + +pub const ICON_COMPONENT: &str = "pagetop::component::icon"; + +pub struct Icon { + renderable: fn() -> bool, + weight : isize, + icon_name : String, +} + +impl ComponentTrait for Icon { + fn new() -> Self { + Icon { + renderable: render_always, + weight : 0, + icon_name : "question-circle-fill".to_owned(), + } + } + + fn handler(&self) -> &'static str { + ICON_COMPONENT + } + + fn is_renderable(&self) -> bool { + (self.renderable)() + } + + fn weight(&self) -> isize { + self.weight + } + + fn default_render(&self, context: &mut InContext) -> Markup { + context + .add_stylesheet(StyleSheet::with_source( + "/theme/icons/bootstrap-icons.css?ver=1.8.2" + )); + + let name = concat_string!("bi-", self.icon_name); + html! { i class=(name) {}; } + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } +} + +impl Icon { + pub fn with(icon_name: &str) -> Self { + Icon::new().with_icon_name(icon_name) + } + + // Icon BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_icon_name(mut self, name: &str) -> Self { + self.alter_icon_name(name); + self + } + + // Icon ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_icon_name(&mut self, name: &str) -> &mut Self { + self.icon_name = name.to_owned(); + self + } + + // Icon GETTERS. + + pub fn icon_name(&self) -> &str { + &self.icon_name + } +} diff --git a/pagetop/src/base/component/image.rs b/pagetop/src/base/component/image.rs new file mode 100644 index 00000000..3d3a361e --- /dev/null +++ b/pagetop/src/base/component/image.rs @@ -0,0 +1,142 @@ +use crate::prelude::*; + +pub const IMAGE_COMPONENT: &str = "pagetop::component::image"; + +pub struct Image { + renderable: fn() -> bool, + weight : isize, + source : OptAttr, + id : OptIden, + classes : Classes, + template : String, +} + +impl ComponentTrait for Image { + fn new() -> Self { + Image { + renderable: render_always, + weight : 0, + source : OptAttr::new(), + id : OptIden::new(), + classes : Classes::new_with_default("img-fluid"), + template : "default".to_owned(), + } + } + + fn handler(&self) -> &'static str { + IMAGE_COMPONENT + } + + fn is_renderable(&self) -> bool { + (self.renderable)() + } + + fn weight(&self) -> isize { + self.weight + } + + fn default_render(&self, _: &mut InContext) -> Markup { + html! { + img + src=[self.source()] + id=[self.id()] + class=[self.classes()]; + } + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } +} + +impl Image { + pub fn image(source: &str) -> Self { + Image::new().with_source(source) + } + + // Image BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_source(mut self, source: &str) -> Self { + self.alter_source(source); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Image ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_source(&mut self, source: &str) -> &mut Self { + self.source.with_value(source); + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { + self.template = template.to_owned(); + self + } + + // Image GETTERS. + + pub fn source(&self) -> &Option { + self.source.option() + } + + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() + } + + pub fn template(&self) -> &str { + self.template.as_str() + } +} diff --git a/pagetop/src/base/component/menu.rs b/pagetop/src/base/component/menu.rs index d3cdb6b8..22902ed2 100644 --- a/pagetop/src/base/component/menu.rs +++ b/pagetop/src/base/component/menu.rs @@ -1,195 +1,228 @@ use crate::prelude::*; -enum MenuItemType { +pub const MENU_COMPONENT: &str = "pagetop::component::menu"; +pub const MENUITEM_COMPONENT: &str = "pagetop::component::menu_item"; + +pub enum MenuItemType { Label(String), Link(String, String), LinkBlank(String, String), - Markup(Markup), + Html(Markup), Separator, Submenu(String, Menu), + Void, } -// ----------------------------------------------------------------------------- // MenuItem. -// ----------------------------------------------------------------------------- pub struct MenuItem { renderable: fn() -> bool, - weight : i8, - item_type : Option, + weight : isize, + item_type : MenuItemType, } -impl PageComponent for MenuItem { - - fn prepare() -> Self { +impl ComponentTrait for MenuItem { + fn new() -> Self { MenuItem { - renderable: always, + renderable: render_always, weight : 0, - item_type : None, + item_type : MenuItemType::Void, } } + fn handler(&self) -> &'static str { + MENUITEM_COMPONENT + } + fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { - match &self.item_type { - Some(MenuItemType::Label(label)) => html! { + fn default_render(&self, context: &mut InContext) -> Markup { + match self.item_type() { + MenuItemType::Label(label) => html! { li class="label" { a href="#" { (label) } } }, - Some(MenuItemType::Link(label, path)) => html! { + MenuItemType::Link(label, path) => html! { li class="link" { a href=(path) { (label) } } }, - Some(MenuItemType::LinkBlank(label, path)) => html! { + MenuItemType::LinkBlank(label, path) => html! { li class="link_blank" { a href=(path) target="_blank" { (label) } } }, - Some(MenuItemType::Markup(markup)) => html! { - li class="markup" { (*markup) } + MenuItemType::Html(html) => html! { + li class="html" { (*html) } }, - Some(MenuItemType::Submenu(label, menu)) => html! { + MenuItemType::Submenu(label, menu) => html! { li class="submenu" { a href="#" { (label) } ul { - (menu.render_items(assets)) + (menu.items().render(context)) } } }, - Some(MenuItemType::Separator) => html! { + MenuItemType::Separator => html! { li class="separator" { } }, - None => html! {} + MenuItemType::Void => html! {}, } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl MenuItem { - pub fn label(label: &str) -> Self { MenuItem { - renderable: always, + renderable: render_always, weight : 0, - item_type : Some(MenuItemType::Label(label.to_owned())), + item_type : MenuItemType::Label(label.to_owned()), } } pub fn link(label: &str, path: &str) -> Self { MenuItem { - renderable: always, + renderable: render_always, weight : 0, - item_type : Some(MenuItemType::Link( + item_type : MenuItemType::Link( label.to_owned(), path.to_owned(), - )), + ), } } pub fn link_blank(label: &str, path: &str) -> Self { MenuItem { - renderable: always, + renderable: render_always, weight : 0, - item_type : Some(MenuItemType::LinkBlank( + item_type : MenuItemType::LinkBlank( label.to_owned(), path.to_owned(), - )), + ), } } - pub fn markup(markup: Markup) -> Self { + pub fn html(html: Markup) -> Self { MenuItem { - renderable: always, + renderable: render_always, weight : 0, - item_type : Some(MenuItemType::Markup(markup)), + item_type : MenuItemType::Html(html), } } pub fn separator() -> Self { MenuItem { - renderable: always, + renderable: render_always, weight : 0, - item_type : Some(MenuItemType::Separator), + item_type : MenuItemType::Separator, } } pub fn submenu(label: &str, menu: Menu) -> Self { MenuItem { - renderable: always, + renderable: render_always, weight : 0, - item_type : Some(MenuItemType::Submenu( + item_type : MenuItemType::Submenu( label.to_owned(), menu - )), + ), } } // MenuItem BUILDER. pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + // MenuItem ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { self.renderable = renderable; self } - pub fn with_weight(mut self, weight: i8) -> Self { + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { self.weight = weight; self } + + // MenuItem GETTERS. + + pub fn item_type(&self) -> &MenuItemType { + &self.item_type + } } -// ----------------------------------------------------------------------------- // Menu. -// ----------------------------------------------------------------------------- pub struct Menu { renderable: fn() -> bool, - weight : i8, - id : Option, - items : PageContainer, + weight : isize, + items : ComponentsBundle, + id : OptIden, + classes : Classes, template : String, } -impl PageComponent for Menu { - - fn prepare() -> Self { +impl ComponentTrait for Menu { + fn new() -> Self { Menu { - renderable: always, + renderable: render_always, weight : 0, - id : None, - items : PageContainer::new(), + items : ComponentsBundle::new(), + id : OptIden::new(), + classes : Classes::new_with_default("sm sm-clean"), template : "default".to_owned(), } } + fn handler(&self) -> &'static str { + MENU_COMPONENT + } + fn is_renderable(&self) -> bool { (self.renderable)() } - fn weight(&self) -> i8 { + fn weight(&self) -> isize { self.weight } - fn default_render(&self, assets: &mut PageAssets) -> Markup { - assets - .add_stylesheet(StyleSheet::source( + fn default_render(&self, context: &mut InContext) -> Markup { + context + .add_stylesheet(StyleSheet::with_source( "/theme/menu/css/menu.css?ver=1.1.1" )) - .add_stylesheet(StyleSheet::source( + .add_stylesheet(StyleSheet::with_source( "/theme/menu/css/menu-clean.css?ver=1.1.1" )) - .add_javascript(JavaScript::source( + .add_javascript(JavaScript::with_source( "/theme/menu/js/menu.min.js?ver=1.1.1" )) .add_jquery(); - let id = assets.serial_id(self.name(), self.id()); + let id = context.required_id::(self.id()); html! { - ul id=(id) class="sm sm-clean" { - (self.render_items(assets)) + ul id=(id) class=[self.classes()] { + (self.items().render(context)) } script type="text/javascript" defer { "jQuery(function(){jQuery('#" (id) "').smartmenus({" @@ -199,54 +232,94 @@ impl PageComponent for Menu { } } } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } } impl Menu { - // Menu BUILDER. - - pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { - self.renderable = renderable; - self - } - - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; - self - } - - pub fn with_id(mut self, id: &str) -> Self { - self.id = util::valid_id(id); - self - } + // Menu CONTAINER. pub fn add(mut self, item: MenuItem) -> Self { self.items.add(item); self } + pub fn items(&self) -> &ComponentsBundle { + &self.items + } + + // Menu BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Menu ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { self.template = template.to_owned(); self } // Menu GETTERS. - pub fn id(&self) -> &str { - util::assigned_str(&self.id) + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() } pub fn template(&self) -> &str { self.template.as_str() } - - // Menu EXTRAS. - - pub fn render_items(&self, assets: &mut PageAssets) -> Markup { - html! { (self.items.render(assets)) } - } -} - -fn always() -> bool { - true } diff --git a/pagetop/src/base/component/mod.rs b/pagetop/src/base/component/mod.rs deleted file mode 100644 index f9973108..00000000 --- a/pagetop/src/base/component/mod.rs +++ /dev/null @@ -1,11 +0,0 @@ -mod container; -pub use container::Container; -mod chunck; -pub use chunck::Chunck; -mod block; -pub use block::Block; -mod menu; -pub use menu::{Menu, MenuItem}; - -pub mod form; -pub use form::{Form, FormMethod}; diff --git a/pagetop/src/base/component/paragraph.rs b/pagetop/src/base/component/paragraph.rs new file mode 100644 index 00000000..c0d7d93c --- /dev/null +++ b/pagetop/src/base/component/paragraph.rs @@ -0,0 +1,172 @@ +use crate::prelude::*; + +pub const PARAGRAPH_COMPONENT: &str = "pagetop::component::paragraph"; + +pub enum ParagraphDisplay { + XxLarge, + Large, + Medium, + Small, + XxSmall, + Normal, +} + +pub struct Paragraph { + renderable: fn() -> bool, + weight : isize, + html : Markup, + display : ParagraphDisplay, + id : OptIden, + classes : Classes, + template : String, +} + +impl ComponentTrait for Paragraph { + fn new() -> Self { + Paragraph { + renderable: render_always, + weight : 0, + html : html! {}, + display : ParagraphDisplay::Normal, + id : OptIden::new(), + classes : Classes::new(), + template : "default".to_owned(), + } + } + + fn handler(&self) -> &'static str { + PARAGRAPH_COMPONENT + } + + fn is_renderable(&self) -> bool { + (self.renderable)() + } + + fn weight(&self) -> isize { + self.weight + } + + fn default_render(&self, _: &mut InContext) -> Markup { + html! { + p id=[self.id()] class=[self.classes()] { (*self.html()) } + } + } + + fn as_ref_any(&self) -> &dyn AnyComponent { + self + } + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent { + self + } +} + +impl Paragraph { + pub fn with(html: Markup) -> Self { + Paragraph::new().with_html(html) + } + + // Paragraph BUILDER. + + pub fn with_renderable(mut self, renderable: fn() -> bool) -> Self { + self.alter_renderable(renderable); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.alter_weight(weight); + self + } + + pub fn with_html(mut self, html: Markup) -> Self { + self.alter_html(html); + self + } + + pub fn with_display(mut self, display: ParagraphDisplay) -> Self { + self.alter_display(display); + self + } + + pub fn with_id(mut self, id: &str) -> Self { + self.alter_id(id); + self + } + + pub fn with_classes(mut self, classes: &str, op: ClassesOp) -> Self { + self.alter_classes(classes, op); + self + } + + pub fn using_template(mut self, template: &str) -> Self { + self.alter_template(template); + self + } + + // Paragraph ALTER. + + pub fn alter_renderable(&mut self, renderable: fn() -> bool) -> &mut Self { + self.renderable = renderable; + self + } + + pub fn alter_weight(&mut self, weight: isize) -> &mut Self { + self.weight = weight; + self + } + + pub fn alter_html(&mut self, html: Markup) -> &mut Self { + self.html = html; + self + } + + pub fn alter_display(&mut self, display: ParagraphDisplay) -> &mut Self { + self.display = display; + self.classes.alter(match &self.display() { + ParagraphDisplay::XxLarge => "fs-2", + ParagraphDisplay::Large => "fs-3", + ParagraphDisplay::Medium => "fs-4", + ParagraphDisplay::Small => "fs-5", + ParagraphDisplay::XxSmall => "fs-6", + ParagraphDisplay::Normal => "", + }, ClassesOp::SetDefault); + self + } + + pub fn alter_id(&mut self, id: &str) -> &mut Self { + self.id.with_value(id); + self + } + + pub fn alter_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.classes.alter(classes, op); + self + } + + pub fn alter_template(&mut self, template: &str) -> &mut Self { + self.template = template.to_owned(); + self + } + + // Paragraph GETTERS. + + pub fn html(&self) -> &Markup { + &self.html + } + + pub fn display(&self) -> &ParagraphDisplay { + &self.display + } + + pub fn id(&self) -> &Option { + self.id.option() + } + + pub fn classes(&self) -> &Option { + self.classes.option() + } + + pub fn template(&self) -> &str { + self.template.as_str() + } +} diff --git a/pagetop/src/base/module.rs b/pagetop/src/base/module.rs new file mode 100644 index 00000000..7107d180 --- /dev/null +++ b/pagetop/src/base/module.rs @@ -0,0 +1 @@ +pub mod demopage; diff --git a/pagetop/src/base/module/admin/mod.rs b/pagetop/src/base/module/admin/mod.rs deleted file mode 100644 index 0bb1202d..00000000 --- a/pagetop/src/base/module/admin/mod.rs +++ /dev/null @@ -1,28 +0,0 @@ -use crate::prelude::*; - -localize!("en-US", "src/base/module/admin/locales"); - -mod summary; - -pub struct AdminModule; - -impl Module for AdminModule { - fn name(&self) -> &'static str { - "admin" - } - - fn fullname(&self) -> String { - l("module_fullname") - } - - fn description(&self) -> Option { - Some(l("module_description")) - } - - fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { - cfg.service( - server::web::scope("/admin") - .route("", server::web::get().to(summary::summary)) - ); - } -} diff --git a/pagetop/src/base/module/demopage.rs b/pagetop/src/base/module/demopage.rs new file mode 100644 index 00000000..c3276124 --- /dev/null +++ b/pagetop/src/base/module/demopage.rs @@ -0,0 +1,230 @@ +use crate::prelude::*; + +pub const DEMOPAGE_MODULE: &str = "pagetop::module::demopage"; + +localize!("src/base/module/demopage/locales"); + +pub struct Demopage; + +impl ModuleTrait for Demopage { + fn handler(&self) -> &'static str { + DEMOPAGE_MODULE + } + + fn name(&self) -> String { + l("module_name") + } + + fn description(&self) -> Option { + Some(l("module_description")) + } + + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + cfg.route("/", app::web::get().to(demo)); + } +} + +async fn demo() -> app::Result { + Page::new() + .with_title(l("page_title").as_str()) + .add_to("content", hello_world()) + .add_to("content", hello_world_original()) + .add_to("content", just_visiting()) + .add_to("content", about_pagetop()) + .add_to("content", promo_pagetop()) + .add_to("content", reporting_problems()) + .render() +} + +fn hello_world() -> Container { + Container::header() + .add(grid::Row::new() + .add_column(grid::Column::new() + .add(Heading::h1(html! { + (l("page_title")) + }).with_display(HeadingDisplay::Large)) + .add(Paragraph::with(html! { + (t("welcome_to", &args![ + "app" => SETTINGS.app.name.as_str() + ])) + })) + .add(Paragraph::with(html! { + (e("welcome_intro", &args![ + "app" => format!("{}", &SETTINGS.app.name) + ])) + }).with_display(ParagraphDisplay::Small)) + .add(Paragraph::with(html! { + (e("welcome_pagetop", &args![ + "pagetop" => "PageTop" + ])) + })) + .add(Anchor::button("#", + html! { + ("Offered services") + }).with_left_icon( + Icon::with("card-checklist") + ) + ) + .add(Anchor::button("#", + html! { + ("Get quote") + }).with_left_icon( + Icon::with("envelope-open-heart-fill") + ) + ) + ) + .add_column(grid::Column::new() + .add(Image::image("/bootsier/images/demo-header.svg")) + ) + ) +} + +fn hello_world_original() -> Chunck { + Chunck::with(html! { + header id="header" class="header" { + div class="container" { + div class="row" { + div class="col-lg-6 col-xl-5" { + div class="text-container" { + div class="section-title" { + (t("welcome_to", &args![ + "app" => SETTINGS.app.name.as_str() + ])) + } + h1 class="h1-large" { + (l("page_title")) + } + p class="p-large" { + (e("welcome_intro", &args![ + "app" => format!( + "{}", + &SETTINGS.app.name + ) + ])) + } + p { + (e("welcome_pagetop", &args![ + "pagetop" => "PageTop" + ])) + } + a class="btn-solid-lg" href="#services" { + "Offered services" + } + a class="quote" href="#contact" { + i class="fas fa-paper-plane" {} + "Get quote" + } + } + } + div class="col-lg-6 col-xl-7" { + div class="image-container" { + img class="img-fluid" src="/bootsier/images/demo-header.svg" alt="alternative" {} + } + } + } + } + } + }) +} + +fn just_visiting() -> Chunck { + Chunck::with(html! { + div id="details" class="basic-1" { + div class="container" { + div class="row" { + div class="col-lg-6 col-xl-7" { + div class="image-container" { + img class="img-fluid" src="/bootsier/images/demo-visiting.svg" alt="alternative" {} + } + } + div class="col-lg-6 col-xl-5" { + div class="text-container" { + h2 { + span { + (l("visiting_title")) + } + br; + (l("visiting_subtitle")) + } + p { (l("visiting_text1")) } + p { (l("visiting_text2")) } + a class="btn-solid-reg" data-bs-toggle="modal" data-bs-target="#staticBackdrop" { "Modal" } + } + } + } + } + } + }) +} + +fn about_pagetop() -> Chunck { + Chunck::with(html! { + div id="pagetop" class="basic-2" { + div class="container" { + div class="row" { + div class="col-lg-6 col-xl-5" { + div class="text-container" { + h2 { (l("pagetop_title")) } + p { (l("pagetop_text1")) } + p { (l("pagetop_text2")) } + p { (l("pagetop_text3")) } + } + } + div class="col-lg-6 col-xl-7" { + div class="image-container" { + img class="img-fluid" src="/bootsier/images/demo-pagetop.svg" alt="alternative" {} + } + } + } + } + } + }) +} + +fn promo_pagetop() -> Chunck { + Chunck::with(html! { + div id="promo" class="basic-3" { + div class="container" { + div class="row" { + div class="col-lg-6 col-xl-5" { + div class="text-container" { + h2 { (l("pagetop_promo_title")) } + p { (e("pagetop_promo_text1", &args![ + "pagetop" => + "PageTop" + ])) } + } + } + div class="col-lg-6 col-xl-7" { + div class="image-container" { + img class="img-fluid" src="/bootsier/images/demo-pagetop.svg" alt="alternative" {} + } + } + } + } + } + }) +} + +fn reporting_problems() -> Chunck { + Chunck::with(html! { + div id="reporting" class="basic-4" { + div class="container" { + div class="row" { + div class="col-lg-6 col-xl-5" { + div class="text-container" { + h2 { (l("report_problems_title")) } + p { (l("report_problems_text1")) } + p { (l("report_problems_text2")) } + } + } + div class="col-lg-6 col-xl-7" { + div class="image-container" { + img class="img-fluid" src="/bootsier/images/demo-pagetop.svg" alt="alternative" {} + } + } + } + } + } + }) +} diff --git a/pagetop/src/base/module/demopage/locales/en-US/demopage.ftl b/pagetop/src/base/module/demopage/locales/en-US/demopage.ftl new file mode 100644 index 00000000..27749979 --- /dev/null +++ b/pagetop/src/base/module/demopage/locales/en-US/demopage.ftl @@ -0,0 +1,25 @@ +module_name = Default homepage +module_description = Displays a demo homepage when none is configured. + +page_title = Hello world! + +welcome_to = Welcome to { $app } +welcome_intro = This page is used to test the proper operation of { $app } after installation. +welcome_pagetop = This web solution is powered by { $pagetop }. + +visiting_title = Just visiting? +visiting_subtitle = Are you user of this website? +visiting_text1 = If you don't know what this page is about, this probably means that the site is either experiencing problems or is undergoing routine maintenance. +visiting_text2 = If the problem persists, please contact your system administrator. + +pagetop_title = About PageTop +pagetop_text1 = If you can read this page, it means that the PageTop server is working properly, but has not yet been configured. +pagetop_text2 = PageTop defines an interface for the most stable and popular Rust packages to build modular, extensible and configurable web solutions. +pagetop_text3 = For information on PageTop please visit the "PageTop website". + +pagetop_promo_title = Promoting PageTop +pagetop_promo_text1 = You are free to use the image below on applications powered by { $pagetop }. Thanks for using PageTop! + +report_problems_title = Reporting Problems +report_problems_text1 = Please use the GitLab tool to report bugs in PageTop. However, check "existing bug reports" before reporting a new bug. +report_problems_text2 = Please report bugs specific to modules (such as admin, and others) to respective packages, not to PageTop itself. diff --git a/pagetop/src/base/module/demopage/locales/es-ES/demopage.ftl b/pagetop/src/base/module/demopage/locales/es-ES/demopage.ftl new file mode 100644 index 00000000..e9bdd97f --- /dev/null +++ b/pagetop/src/base/module/demopage/locales/es-ES/demopage.ftl @@ -0,0 +1,25 @@ +module_name = Página de inicio predeterminada +module_description = Muestra una página de demostración predeterminada cuando no hay ninguna configurada. + +page_title = ¡Hola mundo! + +welcome_to = Bienvenido a { $app } +welcome_intro = Esta página se utiliza para probar el correcto funcionamiento de { $app } después de la instalación. +welcome_pagetop = Esta solución web funciona con { $pagetop }. + +visiting_title = ¿Sólo de visita? +visiting_subtitle = ¿Eres usuario de este sitio web? +visiting_text1 = Si no sabes de qué trata esta página, probablemente significa que el sitio está experimentando problemas o está pasando por un mantenimiento de rutina. +visiting_text2 = Si el problema persiste, póngase en contacto con el administrador del sistema. + +pagetop_title = Sobre PageTop +pagetop_text1 = Si puedes leer esta página, significa que el servidor PageTop funciona correctamente, pero aún no se ha configurado. +pagetop_text2 = PageTop define una interfaz para los paquetes Rust más estables y populares para crear soluciones web modulares, extensibles y configurables. +pagetop_text3 = Para obtener información sobre PageTop, visita el "sitio web de PageTop". + +pagetop_promo_title = Promociona PageTop +pagetop_promo_text1 = Puedes usar la siguiente imagen en aplicaciones desarrolladas sobre { $pagetop }. ¡Gracias por usar PageTop! + +report_problems_title = Informando Problemas +report_problems_text1 = Utilice la herramienta GitLab para informar errores en PageTop. Sin embargo, verifique los "informes de errores existentes" antes de informar de un nuevo error. +report_problems_text2 = Informe los errores específicos de los módulos (como admin y otros) a los paquetes respectivos, no a PageTop en sí. diff --git a/pagetop/src/base/module/homepage/locales/en-US/homepage.ftl b/pagetop/src/base/module/homepage/locales/en-US/homepage.ftl deleted file mode 100644 index 39a5e426..00000000 --- a/pagetop/src/base/module/homepage/locales/en-US/homepage.ftl +++ /dev/null @@ -1,21 +0,0 @@ -module_fullname = Default homepage -module_description = Displays a default homepage when none is configured. - -page_title = Hello world! - -text_welcome = This page is used to test the proper operation of { $app } after installation. This web solution is powered by { $pagetop }. If you can read this page, it means that the PageTop server is working properly, but has not yet been configured. - -title_normal_user = Just visiting? -text1_normal_user = If you are a normal user of this web site and don't know what this page is about, this probably means that the site is either experiencing problems or is undergoing routine maintenance. -text2_normal_user = If the problem persists, please contact your system administrator. - -title_about_pagetop = About PageTop -text1_about_pagetop = PageTop defines an interface for the most stable and popular Rust packages to build modular, extensible and configurable web solutions. -text2_about_pagetop = For information on PageTop please visit the "PageTop website". - -title_promo_pagetop = Promoting PageTop -text1_promo_pagetop = You are free to use the image below on applications powered by { $pagetop }. Thanks for using PageTop! - -title_report_problems = Reporting Problems -text1_report_problems = Please use the GitLab tool to report bugs in PageTop. However, check "existing bug reports" before reporting a new bug. -text2_report_problems = Please report bugs specific to modules (such as admin, and others) to respective packages, not to PageTop itself. diff --git a/pagetop/src/base/module/homepage/locales/es-ES/homepage.ftl b/pagetop/src/base/module/homepage/locales/es-ES/homepage.ftl deleted file mode 100644 index f1d85b2e..00000000 --- a/pagetop/src/base/module/homepage/locales/es-ES/homepage.ftl +++ /dev/null @@ -1,21 +0,0 @@ -module_fullname = Página de inicio predeterminada -module_description = Muestra una página de inicio predeterminada cuando no hay ninguna configurada. - -page_title = ¡Hola mundo! - -text_welcome = Esta página se utiliza para probar el correcto funcionamiento de { $app } después de la instalación. Esta solución web funciona con { $pagetop }. Si puede leer esta página, significa que el servidor PageTop funciona correctamente, pero aún no se ha configurado. - -title_normal_user = ¿Sólo de visita? -text1_normal_user = Si usted es un usuario normal de este sitio web y no sabe de qué trata esta página, probablemente significa que el sitio está experimentando problemas o está pasando por un mantenimiento de rutina. -text2_normal_user = Si el problema persiste, póngase en contacto con el administrador del sistema. - -title_about_pagetop = Sobre PageTop -text1_about_pagetop = PageTop define una interfaz para los paquetes Rust más estables y populares para crear soluciones web modulares, extensibles y configurables. -text2_about_pagetop = Para obtener información sobre PageTop, visite el "sitio web de PageTop". - -title_promo_pagetop = Promociona PageTop -text1_promo_pagetop = Puede usar la siguiente imagen en aplicaciones desarrolladas sobre { $pagetop }. ¡Gracias por usar PageTop! - -title_report_problems = Informando Problemas -text1_report_problems = Utilice la herramienta GitLab para informar errores en PageTop. Sin embargo, verifique los "informes de errores existentes" antes de informar de un nuevo error. -text2_report_problems = Informe los errores específicos de los módulos (como admin y otros) a los paquetes respectivos, no a PageTop en sí. diff --git a/pagetop/src/base/module/homepage/mod.rs b/pagetop/src/base/module/homepage/mod.rs deleted file mode 100644 index de4b98ce..00000000 --- a/pagetop/src/base/module/homepage/mod.rs +++ /dev/null @@ -1,74 +0,0 @@ -use crate::prelude::*; - -localize!("en-US", "src/base/module/homepage/locales"); - -pub struct HomepageModule; - -impl Module for HomepageModule { - fn name(&self) -> &'static str { - "homepage" - } - - fn fullname(&self) -> String { - l("module_fullname") - } - - fn description(&self) -> Option { - Some(l("module_description")) - } - - fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { - cfg.route("/", server::web::get().to(home)); - } -} - -async fn home() -> server::Result { - Page::prepare() - .with_title( - l("page_title").as_str() - ) - .add_to("content", Container::prepare() - .with_id("welcome") - .add(Chunck::markup(html! { - h1 { (l("page_title")) } - p { (e("text_welcome", &args![ - "app" => format!("{}", &SETTINGS.app.name), - "pagetop" => "PageTop" - ])) } - })) - ) - .add_to("content", Container::prepare() - .add(Container::row() - .add(Container::column() - .with_id("visitors") - .add(Chunck::markup(html! { - h2 { (l("title_normal_user")) } - p { (l("text1_normal_user")) } - p { (l("text2_normal_user")) } - }))) - .add(Container::column() - .with_id("pagetop") - .add(Chunck::markup(html! { - h2 { (l("title_about_pagetop")) } - p { (l("text1_about_pagetop")) } - p { (l("text2_about_pagetop")) } - - h2 { (l("title_promo_pagetop")) } - p { (e("text1_promo_pagetop", &args![ - "pagetop" => - "PageTop" - ])) } - })) - ) - ) - ) - .add_to("content", Container::prepare() - .with_id("reporting") - .add(Chunck::markup(html! { - h2 { (l("title_report_problems")) } - p { (l("text1_report_problems")) } - p { (l("text2_report_problems")) } - })) - ) - .render() -} diff --git a/pagetop/src/base/module/mod.rs b/pagetop/src/base/module/mod.rs deleted file mode 100644 index ab1169b4..00000000 --- a/pagetop/src/base/module/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub mod admin; -pub mod homepage; - -#[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] -pub mod user; diff --git a/pagetop/src/base/module/user/entity/mod.rs b/pagetop/src/base/module/user/entity/mod.rs deleted file mode 100644 index 22d12a38..00000000 --- a/pagetop/src/base/module/user/entity/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod user; diff --git a/pagetop/src/base/module/user/entity/user.rs b/pagetop/src/base/module/user/entity/user.rs deleted file mode 100644 index d0db4a98..00000000 --- a/pagetop/src/base/module/user/entity/user.rs +++ /dev/null @@ -1,18 +0,0 @@ -use crate::db::entity::*; -use serde::{Deserialize, Serialize}; - -#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Deserialize, Serialize)] -#[sea_orm(table_name = "user")] -pub struct Model { - #[sea_orm(primary_key)] - #[serde(skip_deserializing)] - pub id: i32, - pub title: String, - #[sea_orm(column_type = "Text")] - pub text: String, -} - -#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] -pub enum Relation {} - -impl ActiveModelBehavior for ActiveModel {} diff --git a/pagetop/src/base/module/user/migration/m20220312_000001_create_table_user.rs b/pagetop/src/base/module/user/migration/m20220312_000001_create_table_user.rs deleted file mode 100644 index 729b72e0..00000000 --- a/pagetop/src/base/module/user/migration/m20220312_000001_create_table_user.rs +++ /dev/null @@ -1,54 +0,0 @@ -use crate::db::migration::*; - -#[derive(Iden)] -enum User { - Table, - Id, - Title, - Text, -} - -pub struct Migration; - -impl MigrationName for Migration { - fn name(&self) -> &str { - "m20220312_000001_create_table_user" - } -} - -#[async_trait::async_trait] -impl MigrationTrait for Migration { - async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .create_table( - Table::create() - .table(User::Table) - .if_not_exists() - .col(ColumnDef::new(User::Id) - .integer() - .not_null() - .auto_increment() - .primary_key(), - ) - .col(ColumnDef::new(User::Title) - .string() - .not_null() - ) - .col(ColumnDef::new(User::Text) - .string() - .not_null() - ) - .to_owned() - ) - .await - } - - async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> { - manager - .drop_table(Table::drop() - .table(User::Table) - .to_owned() - ) - .await - } -} diff --git a/pagetop/src/base/module/user/migration/mod.rs b/pagetop/src/base/module/user/migration/mod.rs deleted file mode 100644 index 8b9167a6..00000000 --- a/pagetop/src/base/module/user/migration/mod.rs +++ /dev/null @@ -1,12 +0,0 @@ -use crate::db::migration::*; - -pub mod m20220312_000001_create_table_user; - -pub struct Migrator; - -#[async_trait::async_trait] -impl MigratorTrait for Migrator { - fn migrations() -> Vec> { - vec![Box::new(m20220312_000001_create_table_user::Migration)] - } -} diff --git a/pagetop/src/base/module/user/mod.rs b/pagetop/src/base/module/user/mod.rs deleted file mode 100644 index 7dc3c043..00000000 --- a/pagetop/src/base/module/user/mod.rs +++ /dev/null @@ -1,61 +0,0 @@ -use crate::prelude::*; - -localize!("en-US", "src/base/module/user/locales"); - -mod entity; -mod migration; - -pub struct UserModule; - -impl Module for UserModule { - fn name(&self) -> &'static str { - "user" - } - - fn fullname(&self) -> String { - l("module_fullname") - } - - fn description(&self) -> Option { - Some(l("module_description")) - } - - fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { - cfg.route("/user/login", server::web::get().to(login)); - } - - fn migrations(&self, dbconn: &db::DbConn) -> Result<(), db::DbErr> { - db_migrations!(dbconn) - } -} - -fn form_login() -> impl PageComponent { - Form::prepare() - .with_id("user-login") - .add(form::Input::textfield() - .with_name("name") - .with_label(l("username").as_str()) - .with_help_text(t("username_help", &args![ - "app" => SETTINGS.app.name.to_owned() - ]).as_str()) - .autofocus(true) - ) - .add(form::Input::password() - .with_name("pass") - .with_label(l("password").as_str()) - .with_help_text(l("password_help").as_str()) - ) - .add(form::Button::submit(l("login").as_str())) -} - -async fn login() -> server::Result { - Page::prepare() - .with_title( - "Identificación del usuario" - ) - .add_to("content", Container::prepare() - .with_id("welcome") - .add(form_login()) - ) - .render() -} diff --git a/pagetop/src/base/theme/mod.rs b/pagetop/src/base/theme.rs similarity index 76% rename from pagetop/src/base/theme/mod.rs rename to pagetop/src/base/theme.rs index 8794ed17..293e4e88 100644 --- a/pagetop/src/base/theme/mod.rs +++ b/pagetop/src/base/theme.rs @@ -1,3 +1,4 @@ pub mod aliner; pub mod minimal; pub mod bootsier; +pub mod bulmix; diff --git a/pagetop/src/base/theme/aliner.rs b/pagetop/src/base/theme/aliner.rs new file mode 100644 index 00000000..02ed19d3 --- /dev/null +++ b/pagetop/src/base/theme/aliner.rs @@ -0,0 +1,30 @@ +use crate::prelude::*; + +pub const ALINER_THEME: &str = "pagetop::theme::aliner"; + +include!(concat!(env!("OUT_DIR"), "/aliner.rs")); + +pub struct Aliner; + +impl ThemeTrait for Aliner { + fn handler(&self) -> &'static str { + ALINER_THEME + } + + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + theme_static_files!(cfg, "/aliner"); + } + + fn before_render_page(&self, page: &mut Page) { + page.context() + .with_favicon(Some(Favicon::new() + .with_icon("/theme/favicon.png") + )) + .add_stylesheet( + StyleSheet::with_source( + "/aliner/css/styles.css" + ) + .with_weight(-99) + ); + } +} diff --git a/pagetop/src/base/theme/aliner/mod.rs b/pagetop/src/base/theme/aliner/mod.rs deleted file mode 100644 index b678d4b7..00000000 --- a/pagetop/src/base/theme/aliner/mod.rs +++ /dev/null @@ -1,32 +0,0 @@ -use crate::prelude::*; - -include!(concat!(env!("OUT_DIR"), "/aliner.rs")); - -pub struct AlinerTheme; - -impl Theme for AlinerTheme { - fn name(&self) -> &'static str { - "aliner" - } - - fn fullname(&self) -> String { - "Aliner".to_owned() - } - - fn configure_theme(&self, cfg: &mut server::web::ServiceConfig) { - cfg.service(actix_web_static_files::ResourceFiles::new( - "/aliner", - assets() - )); - } - - fn before_render_page(&self, page: &mut Page) { - page.assets() - .add_stylesheet( - StyleSheet::source( - "/aliner/css/styles.css" - ) - .with_weight(-99) - ); - } -} diff --git a/pagetop/src/base/theme/bootsier/mod.rs b/pagetop/src/base/theme/bootsier.rs similarity index 63% rename from pagetop/src/base/theme/bootsier/mod.rs rename to pagetop/src/base/theme/bootsier.rs index 3a340a84..8512234f 100644 --- a/pagetop/src/base/theme/bootsier/mod.rs +++ b/pagetop/src/base/theme/bootsier.rs @@ -1,41 +1,35 @@ use crate::prelude::*; +pub const BOOTSIER_THEME: &str = "pagetop::theme::bootsier"; + include!(concat!(env!("OUT_DIR"), "/bootsier.rs")); -localize!("en-US", "src/base/theme/bootsier/locales"); +localize!("src/base/theme/bootsier/locales"); -pub struct BootsierTheme; +pub struct Bootsier; -impl Theme for BootsierTheme { - fn name(&self) -> &'static str { - "bootsier" +impl ThemeTrait for Bootsier { + fn handler(&self) -> &'static str { + BOOTSIER_THEME } - fn fullname(&self) -> String { - "Bootsier".to_owned() - } - - fn configure_theme(&self, cfg: &mut server::web::ServiceConfig) { - cfg.service(actix_web_static_files::ResourceFiles::new( - "/bootsier", - assets() - )); + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + theme_static_files!(cfg, "/bootsier"); } fn before_render_page(&self, page: &mut Page) { - page.assets() - .with_favicon( - Favicon::new() - .with_icon("/bootsier/favicon.png") - ) + page.context() + .with_favicon(Some(Favicon::new() + .with_icon("/theme/favicon.png") + )) .add_stylesheet( - StyleSheet::source( + StyleSheet::with_source( "/bootsier/css/bootstrap.min.css?ver=5.1.3" ) .with_weight(-99) ) .add_javascript( - JavaScript::source( + JavaScript::with_source( "/bootsier/js/bootstrap.bundle.min.js?ver=5.1.3" ) .with_weight(-99) @@ -43,25 +37,25 @@ impl Theme for BootsierTheme { .add_jquery(); } - fn render_error_page(&self, mut s: server::http::StatusCode) -> server::Result { + fn render_error_page(&self, mut s: app::http::StatusCode) -> app::Result { let mut description = "e500-description"; let mut message = "e500-description"; match s { - server::http::StatusCode::NOT_FOUND => { + app::http::StatusCode::NOT_FOUND => { description = "e404-description"; message = "e404-message"; }, _ => { - s = server::http::StatusCode::INTERNAL_SERVER_ERROR; + s = app::http::StatusCode::INTERNAL_SERVER_ERROR; } } - Page::prepare() + Page::new() .with_title(format!("Error {}", s.as_str()).as_str()) - .add_to("content", Chunck::markup(html! { + .add_to("content", Chunck::with(html! { div class="jumbotron" { div class="media" { img - src="/bootsier/images/caution.png" + src="/static/bootsier/images/caution.png" class="mr-4" style="width: 20%; max-width: 188px" alt="Caution!"; diff --git a/pagetop/src/base/theme/bulmix.rs b/pagetop/src/base/theme/bulmix.rs new file mode 100644 index 00000000..a1b98275 --- /dev/null +++ b/pagetop/src/base/theme/bulmix.rs @@ -0,0 +1,78 @@ +use crate::prelude::*; + +pub const BULMIX_THEME: &str = "pagetop::theme::bulmix"; + +include!(concat!(env!("OUT_DIR"), "/bulmix.rs")); + +pub struct Bulmix; + +impl ThemeTrait for Bulmix { + fn handler(&self) -> &'static str { + BULMIX_THEME + } + + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + theme_static_files!(cfg, "/bulmix"); + } + + fn before_render_page(&self, page: &mut Page) { + page.context() + .with_favicon(Some(Favicon::new() + .with_icon("/theme/favicon.png") + )) + .add_stylesheet( + StyleSheet::with_source( + "/bulmix/css/bulma.min.css?ver=0.9.3" + ) + .with_weight(-99) + ) + .add_jquery(); + } + + fn before_render_component( + &self, + component: &mut dyn ComponentTrait, + _context: &mut InContext + ) { + match component.handler() { + HEADING_COMPONENT => { + let h = component_mut::(component); + h.alter_classes(concat_string!("title ", match h.display() { + HeadingDisplay::XxLarge => "is-1", + HeadingDisplay::Large => "is-2", + HeadingDisplay::Medium => "is-3", + HeadingDisplay::Small => "is-4", + HeadingDisplay::XxSmall => "is-5", + HeadingDisplay::Normal => "", + }).as_str(), ClassesOp::SetDefault); + }, + PARAGRAPH_COMPONENT => { + let p = component_mut::(component); + p.alter_classes(match p.display() { + ParagraphDisplay::XxLarge => "is-size-2", + ParagraphDisplay::Large => "is-size-3", + ParagraphDisplay::Medium => "is-size-4", + ParagraphDisplay::Small => "is-size-5", + ParagraphDisplay::XxSmall => "is-size-6", + ParagraphDisplay::Normal => "", + }, ClassesOp::SetDefault); + }, + ANCHOR_COMPONENT => { + let a = component_mut::(component); + a.alter_classes(match a.anchor_type() { + AnchorType::Button => "button is-primary", + _ => "", + }, ClassesOp::SetDefault); + }, + grid::ROW_COMPONENT => { + let row = component_mut::(component); + row.alter_classes("columns", ClassesOp::SetDefault); + }, + grid::COLUMN_COMPONENT => { + let col = component_mut::(component); + col.alter_classes("column content", ClassesOp::SetDefault); + }, + _ => {}, + } + } +} diff --git a/pagetop/src/base/theme/minimal.rs b/pagetop/src/base/theme/minimal.rs new file mode 100644 index 00000000..e86e1719 --- /dev/null +++ b/pagetop/src/base/theme/minimal.rs @@ -0,0 +1,11 @@ +use crate::prelude::*; + +pub const MINIMAL_THEME: &str = "pagetop::theme::minimal"; + +pub struct Minimal; + +impl ThemeTrait for Minimal { + fn handler(&self) -> &'static str { + MINIMAL_THEME + } +} diff --git a/pagetop/src/base/theme/minimal/mod.rs b/pagetop/src/base/theme/minimal/mod.rs deleted file mode 100644 index c6780005..00000000 --- a/pagetop/src/base/theme/minimal/mod.rs +++ /dev/null @@ -1,13 +0,0 @@ -use crate::prelude::*; - -pub struct MinimalTheme; - -impl Theme for MinimalTheme { - fn name(&self) -> &'static str { - "minimal" - } - - fn fullname(&self) -> String { - "Minimal".to_owned() - } -} diff --git a/pagetop/src/config.rs b/pagetop/src/config.rs index fedffc21..775cc4a6 100644 --- a/pagetop/src/config.rs +++ b/pagetop/src/config.rs @@ -45,15 +45,15 @@ pub static CONFIG: Lazy = Lazy::new(|| { /// seguros. Produce un *panic!* en caso de asignaciones no válidas. macro_rules! config_map { ( - $COMM:expr, - $CONF:ident, - $TYPE:tt + $doc:expr, + $SETTINGS:ident, + $Type:tt $(, $key:expr => $value:expr)* ) => { $crate::doc_comment! { - concat!($COMM), + concat!($doc), - pub static $CONF: $crate::Lazy<$TYPE> = $crate::Lazy::new(|| { + pub static $SETTINGS: $crate::Lazy<$Type> = $crate::Lazy::new(|| { let mut settings = $crate::config::CONFIG.clone(); $( settings.set_default($key, $value).unwrap(); @@ -104,12 +104,18 @@ pub struct Webserver { pub bind_port : u16, } +#[derive(Debug, Deserialize)] +pub struct Dev { + pub static_files : String, +} + #[derive(Debug, Deserialize)] pub struct Settings { pub app : App, pub log : Log, pub database : Database, pub webserver : Webserver, + pub dev : Dev, } config_map!(r#" @@ -124,7 +130,7 @@ Ajustes globales y valores predeterminados para las secciones *\[app\]*, "app.theme" => "Bootsier", "app.language" => "en-US", "app.direction" => "ltr", - "app.startup_banner" => "Small", + "app.startup_banner" => "Slant", // [log] "log.tracing" => "Info", @@ -144,5 +150,8 @@ Ajustes globales y valores predeterminados para las secciones *\[app\]*, // [webserver] "webserver.bind_address" => "localhost", - "webserver.bind_port" => 8088 + "webserver.bind_port" => 8088, + + // [dev] + "dev.static_files" => "" ); diff --git a/pagetop/src/core.rs b/pagetop/src/core.rs new file mode 100644 index 00000000..7b25095b --- /dev/null +++ b/pagetop/src/core.rs @@ -0,0 +1,4 @@ +pub mod component; // API to build new components. +pub mod hook; // API to define functions that alter the behavior of PageTop core. +pub mod module; // API to add new features with modules. +pub mod theme; // API to create themes. diff --git a/pagetop/src/core/component.rs b/pagetop/src/core/component.rs new file mode 100644 index 00000000..ef3e33d5 --- /dev/null +++ b/pagetop/src/core/component.rs @@ -0,0 +1,28 @@ +mod hook; +pub use hook::{ + BEFORE_RENDER_COMPONENT_HOOK, + BeforeRenderComponentHook, +}; + +mod context; +pub use context::InContext; + +mod definition; +pub use definition::{ + AnyComponent, + ComponentTrait, + component_ref, + component_mut, +}; +use definition::render_component; + +mod bundle; +pub use bundle::ComponentsBundle; + +mod all; +pub use all::add_component_to; +pub(crate) use all::common_components; + +pub fn render_always() -> bool { true } + +pub fn render_never() -> bool { false } \ No newline at end of file diff --git a/pagetop/src/core/component/all.rs b/pagetop/src/core/component/all.rs new file mode 100644 index 00000000..a8567794 --- /dev/null +++ b/pagetop/src/core/component/all.rs @@ -0,0 +1,22 @@ +use crate::Lazy; +use super::{ComponentsBundle, ComponentTrait}; + +use std::sync::RwLock; +use std::collections::HashMap; + +static COMPONENTS: Lazy>> = Lazy::new(|| { + RwLock::new(HashMap::new()) +}); + +pub fn add_component_to(region: &'static str, component: impl ComponentTrait) { + let mut hmap = COMPONENTS.write().unwrap(); + if let Some(regions) = hmap.get_mut(region) { + regions.add(component); + } else { + hmap.insert(region, ComponentsBundle::new_with(component)); + } +} + +pub fn common_components() -> HashMap<&'static str, ComponentsBundle> { + COMPONENTS.read().unwrap().clone() +} diff --git a/pagetop/src/core/component/bundle.rs b/pagetop/src/core/component/bundle.rs new file mode 100644 index 00000000..f1042166 --- /dev/null +++ b/pagetop/src/core/component/bundle.rs @@ -0,0 +1,37 @@ +use crate::html::{Markup, html}; +use super::{InContext, ComponentTrait}; + +use std::sync::{Arc, RwLock}; + +#[derive(Clone)] +pub struct ComponentsBundle(Vec>>); + +impl ComponentsBundle { + pub fn new() -> Self { + ComponentsBundle(Vec::new()) + } + + pub fn new_with(component: impl ComponentTrait) -> Self { + let mut container = ComponentsBundle::new(); + container.add(component); + container + } + + pub fn add(&mut self, component: impl ComponentTrait) { + self.0.push(Arc::new(RwLock::new(component))); + } + + pub fn clear(&mut self) { + self.0.clear(); + } + + pub fn render(&self, context: &mut InContext) -> Markup { + let mut components = self.0.clone(); + components.sort_by_key(|c| c.read().unwrap().weight()); + html! { + @for c in components.iter() { + (super::render_component(&mut *c.write().unwrap(), context)) + } + } + } +} diff --git a/pagetop/src/core/component/context.rs b/pagetop/src/core/component/context.rs new file mode 100644 index 00000000..916d0d96 --- /dev/null +++ b/pagetop/src/core/component/context.rs @@ -0,0 +1,118 @@ +use crate::{Lazy, base, concat_string, util}; +use crate::config::SETTINGS; +use crate::html::*; +use crate::core::theme::ThemeTrait; +use crate::core::theme::all::theme_by_single_name; + +static DEFAULT_THEME: Lazy<&dyn ThemeTrait> = Lazy::new(|| { + match theme_by_single_name(&SETTINGS.app.theme) { + Some(theme) => theme, + None => &base::theme::bootsier::Bootsier, + } +}); + +pub struct InContext { + theme : &'static dyn ThemeTrait, + favicon : Option, + metadata : Vec<(String, String)>, + stylesheets: Assets, + javascripts: Assets, + with_jquery: bool, + id_counter : usize, +} + +impl InContext { + pub fn new() -> Self { + InContext { + theme : *DEFAULT_THEME, + favicon : None, + metadata : Vec::new(), + stylesheets: Assets::::new(), + javascripts: Assets::::new(), + with_jquery: false, + id_counter : 0, + } + } + + pub fn using_theme(&mut self, theme_name: &str) -> &mut Self { + self.theme = theme_by_single_name(theme_name).unwrap_or(*DEFAULT_THEME); + self + } + + pub fn with_favicon(&mut self, favicon: Option) -> &mut Self { + self.favicon = favicon; + self + } + + pub fn add_metadata(&mut self, name: String, content: String) -> &mut Self { + self.metadata.push((name, content)); + self + } + + pub fn add_stylesheet(&mut self, css: StyleSheet) -> &mut Self { + self.stylesheets.add(css); + self + } + + pub fn add_javascript(&mut self, js: JavaScript) -> &mut Self { + self.javascripts.add(js); + self + } + + pub fn add_jquery(&mut self) -> &mut Self { + if !self.with_jquery { + self.add_javascript( + JavaScript::with_source( + "/theme/js/jquery.min.js?ver=3.6.0" + ) + .with_weight(isize::MIN) + .with_mode(JSMode::Normal) + ); + self.with_jquery = true; + } + self + } + + /// InContext GETTERS. + + pub(crate) fn theme(&mut self) -> &'static dyn ThemeTrait { + self.theme + } + + /// InContext RENDER. + + pub fn render(&mut self) -> Markup { + html! { + @match &self.favicon { + Some(favicon) => (favicon.render()), + None => "", + } + @for (name, content) in &self.metadata { + meta name=(name) content=(content) {} + } + (self.stylesheets.render()) + (self.javascripts.render()) + } + } + + // InContext EXTRAS. + + pub fn required_id(&mut self, id: &Option) -> String { + match id { + Some(id) => id.to_string(), + None => { + let prefix = util::single_type_name::() + .trim() + .replace(" ", "_") + .to_lowercase(); + let prefix = if prefix.is_empty() { + "prefix".to_owned() + } else { + prefix + }; + self.id_counter += 1; + concat_string!(prefix, "-", self.id_counter.to_string()) + } + } + } +} diff --git a/pagetop/src/core/component/definition.rs b/pagetop/src/core/component/definition.rs new file mode 100644 index 00000000..4b49526f --- /dev/null +++ b/pagetop/src/core/component/definition.rs @@ -0,0 +1,66 @@ +use crate::util; +use crate::html::{Markup, html}; +use crate::core::hook::{hook_ref, run_hooks}; +use super::{BEFORE_RENDER_COMPONENT_HOOK, BeforeRenderComponentHook, InContext}; + +pub use std::any::Any as AnyComponent; + +pub trait ComponentTrait: AnyComponent + Send + Sync { + fn new() -> Self where Self: Sized; + + fn handler(&self) -> &'static str; + + fn name(&self) -> String { + util::single_type_name::().to_owned() + } + + fn description(&self) -> Option { + None + } + + fn is_renderable(&self) -> bool { + true + } + + fn weight(&self) -> isize { + 0 + } + + #[allow(unused_variables)] + fn default_render(&self, context: &mut InContext) -> Markup { + html! {} + } + + fn as_ref_any(&self) -> &dyn AnyComponent; + + fn as_mut_any(&mut self) -> &mut dyn AnyComponent; +} + +pub fn component_ref(component: &dyn ComponentTrait) -> &C { + component.as_ref_any().downcast_ref::().unwrap() +} + +pub fn component_mut(component: &mut dyn ComponentTrait) -> &mut C { + component.as_mut_any().downcast_mut::().unwrap() +} + +pub fn render_component(component: &mut dyn ComponentTrait, context: &mut InContext) -> Markup { + // Acciones de los módulos antes de renderizar el componente. + run_hooks( + BEFORE_RENDER_COMPONENT_HOOK, + |hook| hook_ref::(&**hook).run(component, context) + ); + + // Acciones del tema antes de renderizar el componente. + context.theme().before_render_component(component, context); + + match component.is_renderable() { + true => { + match context.theme().render_component(component, context) { + Some(html) => html, + None => component.default_render(context) + } + }, + false => html! {} + } +} diff --git a/pagetop/src/core/component/hook.rs b/pagetop/src/core/component/hook.rs new file mode 100644 index 00000000..82d1ba01 --- /dev/null +++ b/pagetop/src/core/component/hook.rs @@ -0,0 +1,48 @@ +use crate::core::hook::{HookTrait, AnyHook}; +use super::{ComponentTrait, InContext}; + +pub const BEFORE_RENDER_COMPONENT_HOOK: &str = "pagetop::hook::before_render_component"; + +pub struct BeforeRenderComponentHook { + hook: Option, + weight: isize, +} + +impl HookTrait for BeforeRenderComponentHook { + fn new() -> Self { + BeforeRenderComponentHook { + hook: None, + weight: 0, + } + } + + fn handler(&self) -> &'static str { + BEFORE_RENDER_COMPONENT_HOOK + } + + fn weight(&self) -> isize { + self.weight + } + + fn as_ref_any(&self) -> &dyn AnyHook { + self + } +} + +impl BeforeRenderComponentHook { + pub fn with_hook(mut self, hook: fn(&mut dyn ComponentTrait, &mut InContext)) -> Self { + self.hook = Some(hook); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.weight = weight; + self + } + + pub fn run(&self, component: &mut dyn ComponentTrait, context: &mut InContext) { + if let Some(hook) = self.hook { + hook(component, context) + } + } +} diff --git a/pagetop/src/core/global.rs b/pagetop/src/core/global.rs deleted file mode 100644 index dd9aa909..00000000 --- a/pagetop/src/core/global.rs +++ /dev/null @@ -1,61 +0,0 @@ -use crate::{Lazy, trace}; -use crate::core::theme::Theme; -use crate::core::module::Module; -use crate::core::response::page::PageContainer; -use crate::core::server; - -use std::sync::RwLock; -use std::collections::HashMap; - -include!(concat!(env!("OUT_DIR"), "/theme.rs")); - -// ----------------------------------------------------------------------------- -// Temas registrados y tema por defecto. -// ----------------------------------------------------------------------------- - -pub static THEMES: Lazy>> = Lazy::new(|| { - RwLock::new(Vec::new()) -}); - -pub fn themes(cfg: &mut server::web::ServiceConfig) { - cfg.service(actix_web_static_files::ResourceFiles::new( - "/theme", - assets() - )); - - for t in THEMES.read().unwrap().iter() { - t.configure_theme(cfg); - } -} - -// ----------------------------------------------------------------------------- -// Módulos registrados. -// ----------------------------------------------------------------------------- - -pub static MODULES: Lazy>> = Lazy::new(|| { - RwLock::new(Vec::new()) -}); - -pub fn modules(cfg: &mut server::web::ServiceConfig) { - for m in MODULES.read().unwrap().iter() { - m.configure_module(cfg); - } -} - -#[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] -pub fn run_migrations() { - trace::info!("Checking migrations."); - for m in MODULES.read().unwrap().iter() { - m.migrations( - &*server::db::DBCONN.read().unwrap() - ).expect("Failed to run migrations"); - } -} - -// ----------------------------------------------------------------------------- -// Componentes globales. -// ----------------------------------------------------------------------------- - -pub static COMPONENTS: Lazy>> = Lazy::new( - || { RwLock::new(HashMap::new()) } -); diff --git a/pagetop/src/core/hook.rs b/pagetop/src/core/hook.rs new file mode 100644 index 00000000..8b83a58d --- /dev/null +++ b/pagetop/src/core/hook.rs @@ -0,0 +1,14 @@ +mod definition; +pub use definition::{ + HookTrait, + AnyHook, + hook_ref, +}; + +mod holder; +pub use holder::HookItem; +use holder::HooksHolder; + +mod all; +pub use all::run_hooks; +pub(crate) use all::add_hook; diff --git a/pagetop/src/core/hook/all.rs b/pagetop/src/core/hook/all.rs new file mode 100644 index 00000000..5c6f28d9 --- /dev/null +++ b/pagetop/src/core/hook/all.rs @@ -0,0 +1,26 @@ +use crate::Lazy; +use super::{HookItem, HooksHolder}; + +use std::sync::RwLock; +use std::collections::HashMap; + +// Registered actions. +static ACTIONS: Lazy>> = Lazy::new(|| { + RwLock::new(HashMap::new()) +}); + +pub fn add_hook(hook: HookItem) { + let mut hmap = ACTIONS.write().unwrap(); + let action_handler = hook.handler(); + if let Some(actions) = hmap.get_mut(action_handler) { + actions.add(hook); + } else { + hmap.insert(action_handler, HooksHolder::new_with(hook)); + } +} + +pub fn run_hooks(action_handler: &str, f: F) where F: FnMut(&HookItem) -> B { + if let Some(actions) = ACTIONS.read().unwrap().get(action_handler) { + actions.iter_map(f) + } +} diff --git a/pagetop/src/core/hook/definition.rs b/pagetop/src/core/hook/definition.rs new file mode 100644 index 00000000..e21ea10f --- /dev/null +++ b/pagetop/src/core/hook/definition.rs @@ -0,0 +1,17 @@ +pub use std::any::Any as AnyHook; + +pub trait HookTrait: AnyHook + Send + Sync { + fn new() -> Self where Self: Sized; + + fn handler(&self) -> &'static str; + + fn weight(&self) -> isize { + 0 + } + + fn as_ref_any(&self) -> &dyn AnyHook; +} + +pub fn hook_ref(hook: &dyn HookTrait) -> &A { + hook.as_ref_any().downcast_ref::().unwrap() +} diff --git a/pagetop/src/core/hook/holder.rs b/pagetop/src/core/hook/holder.rs new file mode 100644 index 00000000..cd138c67 --- /dev/null +++ b/pagetop/src/core/hook/holder.rs @@ -0,0 +1,36 @@ +use super::HookTrait; + +use std::sync::{Arc, RwLock}; + +pub type HookItem = Box; + +#[macro_export] +macro_rules! hook_item { + ( $hook:ident => $f:ident $(, $weight:expr)? ) => {{ + Box::new($hook::new().with_hook($f)$(.with_weight($weight))?) + }}; +} + +pub struct HooksHolder(Arc>>); + +impl HooksHolder { + pub fn new() -> Self { + HooksHolder(Arc::new(RwLock::new(Vec::new()))) + } + + pub fn new_with(hook: HookItem) -> Self { + let mut container = HooksHolder::new(); + container.add(hook); + container + } + + pub fn add(&mut self, hook: HookItem) { + let mut actions = self.0.write().unwrap(); + actions.push(hook); + actions.sort_by_key(|a| a.weight()); + } + + pub fn iter_map(&self, f: F) where Self: Sized, F: FnMut(&HookItem) -> B { + let _: Vec<_> = self.0.read().unwrap().iter().map(f).collect(); + } +} diff --git a/pagetop/src/core/mod.rs b/pagetop/src/core/mod.rs deleted file mode 100644 index 26618959..00000000 --- a/pagetop/src/core/mod.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub use actix_web::dev::Server; - -mod global; - -pub mod theme; -pub mod module; -pub mod response; -pub mod server; diff --git a/pagetop/src/core/module.rs b/pagetop/src/core/module.rs new file mode 100644 index 00000000..e50144b5 --- /dev/null +++ b/pagetop/src/core/module.rs @@ -0,0 +1,7 @@ +mod definition; +pub use definition::{ + BaseModule, + ModuleTrait, +}; + +pub(crate) mod all; diff --git a/pagetop/src/core/module/all.rs b/pagetop/src/core/module/all.rs new file mode 100644 index 00000000..aae071a5 --- /dev/null +++ b/pagetop/src/core/module/all.rs @@ -0,0 +1,84 @@ +use crate::{Lazy, app, trace}; +use crate::core::hook::add_hook; +use super::ModuleTrait; + +#[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] +use crate::{ + db::*, + run_now, +}; + +use std::sync::RwLock; + +// Enabled modules. +static ENABLED_MODULES: Lazy>> = Lazy::new(|| { + RwLock::new(Vec::new()) +}); + +/* Disabled modules. +static DISABLED_MODULES: Lazy>> = Lazy::new(|| { + RwLock::new(Vec::new()) +}); */ + +pub fn enable_modules(modules: Vec<&'static dyn ModuleTrait>) { + for m in modules { + enable(m) + } +} + +fn enable(module: &'static dyn ModuleTrait) { + let mut list: Vec<&dyn ModuleTrait> = Vec::new(); + add_to(&mut list, module); + list.reverse(); + ENABLED_MODULES.write().unwrap().append(&mut list); +} + +fn add_to(list: &mut Vec<&dyn ModuleTrait>, module: &'static dyn ModuleTrait) { + if !ENABLED_MODULES.read().unwrap().iter().any(|m| m.handler() == module.handler()) { + if !list.iter().any(|m| m.handler() == module.handler()) { + trace::debug!("Enabling module \"{}\"", module.single_name()); + list.push(module); + + let mut dependencies = module.dependencies(); + dependencies.reverse(); + for d in dependencies.iter() { + add_to(list, *d); + } + } + } +} +/* +#[allow(unused_variables)] +pub fn disable_module(module: &'static dyn ModuleTrait) { +} +*/ +pub fn modules(cfg: &mut app::web::ServiceConfig) { + for m in ENABLED_MODULES.read().unwrap().iter() { + m.configure_service(cfg); + } +} + +pub fn register_hooks() { + for m in ENABLED_MODULES.read().unwrap().iter() { + for a in m.actions().into_iter() { + add_hook(a); + } + } +} + +#[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] +pub fn run_migrations() { + run_now({ + struct Migrator; + impl MigratorTrait for Migrator { + fn migrations() -> Vec { + let mut migrations = vec![]; + for m in ENABLED_MODULES.read().unwrap().iter() { + migrations.append(&mut m.migrations()); + } + migrations + } + } + Migrator::up(&app::db::DBCONN, None) + }).unwrap(); +} diff --git a/pagetop/src/core/module/definition.rs b/pagetop/src/core/module/definition.rs index 7dc6252b..38621d82 100644 --- a/pagetop/src/core/module/definition.rs +++ b/pagetop/src/core/module/definition.rs @@ -1,25 +1,46 @@ -use crate::core::server; +use crate::{app, util}; +use crate::core::hook::HookItem; #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] -use crate::db; +use crate::db::MigrationItem; + +pub trait BaseModule { + fn single_name(&self) -> &'static str; +} /// Los módulos deben implementar este *trait*. -pub trait Module: Send + Sync { - fn name(&self) -> &'static str; +pub trait ModuleTrait: BaseModule + Send + Sync { + fn handler(&self) -> &'static str; - fn fullname(&self) -> String; + fn name(&self) -> String { + self.single_name().to_owned() + } fn description(&self) -> Option { None } + fn dependencies(&self) -> Vec<&'static dyn ModuleTrait> { + vec![] + } + #[allow(unused_variables)] - fn configure_module(&self, cfg: &mut server::web::ServiceConfig) { + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { + } + + fn actions(&self) -> Vec { + vec![] } #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] #[allow(unused_variables)] - fn migrations(&self, dbconn: &db::DbConn) -> Result<(), db::DbErr> { - Ok(()) + fn migrations(&self) -> Vec { + vec![] + } +} + +impl BaseModule for M { + fn single_name(&self) -> &'static str { + util::single_type_name::() } } diff --git a/pagetop/src/core/module/mod.rs b/pagetop/src/core/module/mod.rs deleted file mode 100644 index 439cff79..00000000 --- a/pagetop/src/core/module/mod.rs +++ /dev/null @@ -1,16 +0,0 @@ -use crate::core::global; - -mod definition; -pub use definition::Module; - -pub fn register_module(m: &'static (dyn Module + 'static)) { - global::MODULES.write().unwrap().push(m); -} - -pub fn find_module(name: &str) -> Option<&'static (dyn Module + 'static)> { - let modules = global::MODULES.write().unwrap(); - match modules.iter().find(|t| t.name() == name) { - Some(module) => Some(*module), - _ => None, - } -} diff --git a/pagetop/src/core/response/page/assets.rs b/pagetop/src/core/response/page/assets.rs deleted file mode 100644 index 11cdd35c..00000000 --- a/pagetop/src/core/response/page/assets.rs +++ /dev/null @@ -1,308 +0,0 @@ -use crate::{Lazy, base}; -use crate::config::SETTINGS; -use crate::core::global; -use crate::core::theme::{Markup, PreEscaped, Theme, find_theme, html}; - -static DEFAULT_THEME: Lazy<&dyn Theme> = Lazy::new(|| { - for t in global::THEMES.read().unwrap().iter() { - if t.name().to_lowercase() == SETTINGS.app.theme.to_lowercase() { - return *t; - } - } - &base::theme::bootsier::BootsierTheme -}); - -// ----------------------------------------------------------------------------- -// Favicon. -// ----------------------------------------------------------------------------- - -pub struct Favicon(Vec); - -impl Favicon { - pub fn new() -> Self { - Favicon(Vec::new()) - } - - pub fn with_icon(self, image: &str) -> Self { - self.add_item("icon", image, "", "") - } - - pub fn with_icon_for_sizes(self, image: &str, sizes: &str) -> Self { - self.add_item("icon", image, sizes, "") - } - - pub fn with_apple_touch_icon(self, image: &str, sizes: &str) -> Self { - self.add_item("apple-touch-icon", image, sizes, "") - } - - pub fn with_mask_icon(self, image: &str, color: &str) -> Self { - self.add_item("mask-icon", image, "", color) - } - - pub fn with_manifest(self, file: &str) -> Self { - self.add_item("manifest", file, "", "") - } - - pub fn with_theme_color(mut self, color: &str) -> Self { - self.0.push(format!( - "", color - )); - self - } - - pub fn with_ms_tile_color(mut self, color: &str) -> Self { - self.0.push(format!( - "", color - )); - self - } - - pub fn with_ms_tile_image(mut self, image: &str) -> Self { - self.0.push(format!( - "", image - )); - self - } - - fn add_item( - mut self, - rel : &str, - source: &str, - sizes : &str, - color : &str - ) -> Self { - let mut link: String = format!(" format!("{} type=\"image/gif\"", link), - ".ico" => format!("{} type=\"image/x-icon\"", link), - ".jpg" => format!("{} type=\"image/jpg\"", link), - ".png" => format!("{} type=\"image/png\"", link), - ".svg" => format!("{} type=\"image/svg+xml\"", link), - _ => link - }; - } - if !sizes.is_empty() { - link = format!("{} sizes=\"{}\"", link, sizes); - } - if !color.is_empty() { - link = format!("{} color=\"{}\"", link, color); - } - self.0.push(format!("{} href=\"{}\">", link, source)); - self - } - - fn render(&self) -> Markup { - html! { - @for item in &self.0 { - (PreEscaped(item)) - } - } - } -} - -// ----------------------------------------------------------------------------- -// StyleSheet. -// ----------------------------------------------------------------------------- - -pub struct StyleSheet { - source: &'static str, - weight: i8, -} -impl StyleSheet { - pub fn source(s: &'static str) -> Self { - StyleSheet { - source: s, - weight: 0, - } - } - - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; - self - } - - pub fn weight(self) -> i8 { - self.weight - } - - fn render(&self) -> Markup { - html! { - link rel="stylesheet" href=(self.source); - } - } -} - -// ----------------------------------------------------------------------------- -// JavaScript. -// ----------------------------------------------------------------------------- - -#[derive(PartialEq)] -pub enum JSMode { Async, Defer, Normal } - -pub struct JavaScript { - source: &'static str, - weight: i8, - mode : JSMode, -} -impl JavaScript { - pub fn source(s: &'static str) -> Self { - JavaScript { - source: s, - weight: 0, - mode : JSMode::Defer, - } - } - - pub fn with_weight(mut self, weight: i8) -> Self { - self.weight = weight; - self - } - - pub fn with_mode(mut self, mode: JSMode) -> Self { - self.mode = mode; - self - } - - pub fn weight(self) -> i8 { - self.weight - } - - fn render(&self) -> Markup { - html! { - script type="text/javascript" - src=(self.source) - async[self.mode == JSMode::Async] - defer[self.mode == JSMode::Defer] - {}; - } - } -} - -// ----------------------------------------------------------------------------- -// Page assets. -// ----------------------------------------------------------------------------- - -pub struct PageAssets { - theme : &'static dyn Theme, - favicon : Option, - metadata : Vec<(String, String)>, - stylesheets: Vec, - javascripts: Vec, - with_jquery: bool, - id_counter : u32, -} - -impl PageAssets { - pub fn new() -> Self { - PageAssets { - theme : *DEFAULT_THEME, - favicon : None, - metadata : Vec::new(), - stylesheets: Vec::new(), - javascripts: Vec::new(), - with_jquery: false, - id_counter : 0, - } - } - - pub fn using_theme(&mut self, theme_name: &str) -> &mut Self { - self.theme = find_theme(theme_name).unwrap_or(*DEFAULT_THEME); - self - } - - pub fn with_favicon(&mut self, favicon: Favicon) -> &mut Self { - self.favicon = Some(favicon); - self - } - - pub fn add_metadata(&mut self, name: String, content: String) -> &mut Self { - self.metadata.push((name, content)); - self - } - - pub fn add_stylesheet(&mut self, css: StyleSheet) -> &mut Self { - match self.stylesheets.iter().position(|x| x.source == css.source) { - Some(index) => if self.stylesheets[index].weight > css.weight { - self.stylesheets.remove(index); - self.stylesheets.push(css); - }, - _ => self.stylesheets.push(css) - } - self - } - - pub fn add_javascript(&mut self, js: JavaScript) -> &mut Self { - match self.javascripts.iter().position(|x| x.source == js.source) { - Some(index) => if self.javascripts[index].weight > js.weight { - self.javascripts.remove(index); - self.javascripts.push(js); - }, - _ => self.javascripts.push(js) - } - self - } - - pub fn add_jquery(&mut self) -> &mut Self { - if !self.with_jquery { - self.add_javascript( - JavaScript::source( - "/theme/js/jquery.min.js?ver=3.6.0" - ) - .with_weight(i8::MIN) - .with_mode(JSMode::Normal) - ); - self.with_jquery = true; - } - self - } - - /// Assets GETTERS. - - pub fn theme(&mut self) -> &'static dyn Theme { - self.theme - } - - /// Assets RENDER. - - pub fn render(&mut self) -> Markup { - let ordered_css = &mut self.stylesheets; - ordered_css.sort_by_key(|o| o.weight); - - let ordered_js = &mut self.javascripts; - ordered_js.sort_by_key(|o| o.weight); - - html! { - @match &self.favicon { - Some(favicon) => (favicon.render()), - None => "", - } - @for (name, content) in &self.metadata { - meta name=(name) content=(content) {} - } - @for css in ordered_css { - (css.render()) - } - @for js in ordered_js { - (js.render()) - } - } - } - - // Assets EXTRAS. - - pub fn serial_id(&mut self, prefix: &str, id: &str) -> String { - if id.is_empty() { - let prefix = prefix.trim().replace(" ", "_").to_lowercase(); - let prefix = if prefix.is_empty() { - "prefix".to_owned() - } else { - prefix - }; - self.id_counter += 1; - [prefix, self.id_counter.to_string()].join("-") - } else { - id.to_owned() - } - } -} diff --git a/pagetop/src/core/response/page/component.rs b/pagetop/src/core/response/page/component.rs deleted file mode 100644 index 1472ffe2..00000000 --- a/pagetop/src/core/response/page/component.rs +++ /dev/null @@ -1,42 +0,0 @@ -use crate::core::theme::{Markup, html}; -use crate::core::response::page::PageAssets; - -use downcast_rs::{Downcast, impl_downcast}; - -use std::any::type_name; - -pub trait PageComponent: Downcast + Send + Sync { - - fn prepare() -> Self where Self: Sized; - - fn name(&self) -> &'static str { - let name = type_name::(); - match name.rfind("::") { - Some(position) => &name[(position + 2)..], - None => name - } - } - - fn fullname(&self) -> String { - type_name::().to_owned() - } - - fn description(&self) -> Option { - None - } - - fn is_renderable(&self) -> bool { - true - } - - fn weight(&self) -> i8 { - 0 - } - - #[allow(unused_variables)] - fn default_render(&self, assets: &mut PageAssets) -> Markup { - html! {} - } -} - -impl_downcast!(PageComponent); diff --git a/pagetop/src/core/response/page/container.rs b/pagetop/src/core/response/page/container.rs deleted file mode 100644 index 6bf5e56a..00000000 --- a/pagetop/src/core/response/page/container.rs +++ /dev/null @@ -1,33 +0,0 @@ -use crate::core::theme::{Markup, html}; -use crate::core::response::page::{PageAssets, PageComponent, render_component}; - -use std::sync::Arc; - -#[derive(Clone)] -pub struct PageContainer(Vec>); - -impl PageContainer { - pub fn new() -> Self { - PageContainer(Vec::new()) - } - - pub fn new_with(component: impl PageComponent) -> Self { - let mut container = PageContainer::new(); - container.add(component); - container - } - - pub fn add(&mut self, component: impl PageComponent) { - self.0.push(Arc::new(component)); - } - - pub fn render(&self, assets: &mut PageAssets) -> Markup { - let mut components = self.0.clone(); - components.sort_by_key(|c| c.weight()); - html! { - @for c in components.iter() { - (render_component(&**c, assets)) - } - } - } -} \ No newline at end of file diff --git a/pagetop/src/core/response/page/mod.rs b/pagetop/src/core/response/page/mod.rs deleted file mode 100644 index f34070e2..00000000 --- a/pagetop/src/core/response/page/mod.rs +++ /dev/null @@ -1,19 +0,0 @@ -mod assets; -pub use assets::{ - Favicon, - StyleSheet, - JavaScript, JSMode, - PageAssets, -}; - -mod component; -pub use component::PageComponent; - -mod container; -pub use container::PageContainer; - -mod page; -pub use page::Page; -pub use page::render_component; -pub use page::add_component_to; - diff --git a/pagetop/src/core/response/page/page.rs b/pagetop/src/core/response/page/page.rs deleted file mode 100644 index 8052683d..00000000 --- a/pagetop/src/core/response/page/page.rs +++ /dev/null @@ -1,217 +0,0 @@ -use crate::{Lazy, trace, util}; -use crate::config::SETTINGS; -use crate::core::{global, server}; -use crate::core::theme::{DOCTYPE, Markup, html}; -use crate::core::response::page::{PageAssets, PageComponent, PageContainer}; - -use std::borrow::Cow; -use std::collections::HashMap; - -static DEFAULT_LANGUAGE: Lazy> = Lazy::new(|| { - let language = SETTINGS.app.language[..2].to_lowercase(); - if !language.is_empty() { - Some(language) - } else { - None - } -}); - -static DEFAULT_DIRECTION: Lazy> = Lazy::new(|| { - let direction = SETTINGS.app.direction.to_lowercase(); - match direction.as_str() { - "auto" => Some("auto".to_owned()), - "ltr" => Some("ltr".to_owned()), - "rtl" => Some("rtl".to_owned()), - "" => None, - _ => { - trace::warn!( - "Text direction \"{}\" not valid. {}.", - SETTINGS.app.direction, - "Check the settings file" - ); - None - } - } -}); - -pub enum TextDirection { Auto, LeftToRight, RightToLeft } - -pub struct Page<'a> { - language : Option, - direction : Option, - title : Option, - description : Option, - assets : PageAssets, - body_classes: Cow<'a, str>, - regions : HashMap<&'a str, PageContainer>, - template : String, -} - -impl<'a> Page<'a> { - - pub fn prepare() -> Self { - Page { - language : match &*DEFAULT_LANGUAGE { - Some(language) => Some(language.to_owned()), - _ => None, - }, - direction : match &*DEFAULT_DIRECTION { - Some(direction) => Some(direction.to_owned()), - _ => None, - }, - title : None, - description : None, - body_classes: "body".into(), - assets : PageAssets::new(), - regions : global::COMPONENTS.read().unwrap().clone(), - template : "default".to_owned(), - } - } - - // Page BUILDER. - - pub fn with_language(&mut self, language: &str) -> &mut Self { - self.language = util::optional_str(language); - self - } - - pub fn with_direction(&mut self, dir: TextDirection) -> &mut Self { - self.direction = match dir { - TextDirection::Auto => Some("auto".to_owned()), - TextDirection::LeftToRight => Some("ltr".to_owned()), - TextDirection::RightToLeft => Some("rtl".to_owned()), - }; - self - } - - pub fn with_title(&mut self, title: &str) -> &mut Self { - self.title = util::optional_str(title); - self - } - - pub fn with_description(&mut self, description: &str) -> &mut Self { - self.description = util::optional_str(description); - self - } - - pub fn with_body_classes(&mut self, body_classes: &'a str) -> &mut Self { - self.body_classes = body_classes.into(); - self - } - - pub fn add_body_classes(&mut self, body_classes: &'a str) -> &mut Self { - self.body_classes = String::from( - format!("{} {}", self.body_classes, body_classes).trim() - ).into(); - self - } - - pub fn add_to( - &mut self, - region: &'a str, - component: impl PageComponent - ) -> &mut Self { - if let Some(regions) = self.regions.get_mut(region) { - regions.add(component); - } else { - self.regions.insert(region, PageContainer::new_with(component)); - } - self - } - - pub fn using_template(&mut self, template: &str) -> &mut Self { - self.template = template.to_owned(); - self - } - - // Page GETTERS. - - pub fn language(&self) -> &str { - util::assigned_str(&self.language) - } - - pub fn direction(&self) -> &str { - util::assigned_str(&self.direction) - } - - pub fn title(&self) -> &str { - util::assigned_str(&self.title) - } - - pub fn description(&self) -> &str { - util::assigned_str(&self.description) - } - - pub fn body_classes(&self) -> &str { - if self.body_classes.is_empty() { - return "body"; - } - &self.body_classes - } - - pub fn assets(&mut self) -> &mut PageAssets { - &mut self.assets - } - - pub fn template(&self) -> &str { - self.template.as_str() - } - - // Page RENDER. - - pub fn render(&mut self) -> server::Result { - // Acciones del tema antes de renderizar la página. - self.assets.theme().before_render_page(self); - - // Primero, renderizar el cuerpo. - let body = self.assets.theme().render_page_body(self); - - // Luego, renderizar la cabecera. - let head = self.assets.theme().render_page_head(self); - - // Finalmente, renderizar la página. - return Ok(html! { - (DOCTYPE) - html lang=[&self.language] dir=[&self.direction] { - (head) - (body) - } - }) - } - - pub fn render_region(&mut self, region: &str) -> Markup { - match self.regions.get_mut(region) { - Some(components) => components.render(&mut self.assets), - None => html! {} - } - } - - // Page EXTRAS. - - pub fn using_theme(&mut self, theme_name: &str) -> &mut Self { - self.assets.using_theme(theme_name); - self - } -} - -pub fn render_component( - component: &dyn PageComponent, - assets: &mut PageAssets -) -> Markup { - match component.is_renderable() { - true => match assets.theme().render_component(component, assets) { - Some(markup) => markup, - None => component.default_render(assets) - }, - false => html! {} - } -} - -pub fn add_component_to(region: &'static str, component: impl PageComponent) { - let mut hmap = global::COMPONENTS.write().unwrap(); - if let Some(regions) = hmap.get_mut(region) { - regions.add(component); - } else { - hmap.insert(region, PageContainer::new_with(component)); - } -} diff --git a/pagetop/src/core/server/app.rs b/pagetop/src/core/server/app.rs deleted file mode 100644 index 7d09f1fd..00000000 --- a/pagetop/src/core/server/app.rs +++ /dev/null @@ -1,95 +0,0 @@ -use crate::{Lazy, base, trace}; -use crate::config::SETTINGS; -use crate::core::{Server, global, server}; -use crate::core::theme::register_theme; -use crate::core::module::register_module; - -use std::io::Error; - -pub struct Application { - server: Server, -} - -impl Application { - pub async fn build(bootstrap: Option) -> Result { - // Imprime un rótulo de presentación (opcional). - if SETTINGS.app.startup_banner.to_lowercase() != "off" { - let figfont = figlet_rs::FIGfont::from_content( - match SETTINGS.app.startup_banner.to_lowercase().as_str() { - "slant" => include_str!("figfonts/slant.flf"), - "small" => include_str!("figfonts/small.flf"), - "speed" => include_str!("figfonts/speed.flf"), - "starwars" => include_str!("figfonts/starwars.flf"), - _ => { - println!( - "FIGfont \"{}\" not found for banner. {}. {}.", - SETTINGS.app.startup_banner, - "Using \"Small\"", - "Check the settings file", - ); - include_str!("figfonts/small.flf") - } - } - ).unwrap(); - println!("\n{} {}\n\n Powered by PageTop {}\n", - figfont.convert(&SETTINGS.app.name).unwrap(), - &SETTINGS.app.description, - env!("CARGO_PKG_VERSION") - ); - } - - // Inicia registro de trazas y eventos. - Lazy::force(&server::tracing::TRACING); - - // Valida el identificador de idioma. - Lazy::force(&server::locale::LANGID); - - // Conecta con la base de datos (opcional). - #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] - Lazy::force(&server::db::DBCONN); - - // Registra los temas predefinidos. - register_theme(&base::theme::aliner::AlinerTheme); - register_theme(&base::theme::minimal::MinimalTheme); - register_theme(&base::theme::bootsier::BootsierTheme); - - // Registra los módulos predeterminados. - register_module(&base::module::admin::AdminModule); - // Registra los módulos que requieren base de datos. - #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] - register_module(&base::module::user::UserModule); - - // Ejecuta la función de inicio de la aplicación. - if bootstrap != None { - trace::info!("Calling application bootstrap."); - let _ = &(bootstrap.unwrap())(); - } - - // Registra el módulo para la página de inicio de PageTop. - // Al ser el último, puede sobrecargarse con la función de inicio. - register_module(&base::module::homepage::HomepageModule); - - // Comprueba actualizaciones pendientes de la base de datos (opcional). - #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] - global::run_migrations(); - - // Prepara el servidor web. - let server = server::HttpServer::new(move || { - server::App::new() - .wrap(tracing_actix_web::TracingLogger::default()) - .configure(&global::themes) - .configure(&global::modules) - }) - .bind(format!("{}:{}", - &SETTINGS.webserver.bind_address, - &SETTINGS.webserver.bind_port - ))? - .run(); - - Ok(Self { server }) - } - - pub fn run(self) -> Result { - Ok(self.server) - } -} diff --git a/pagetop/src/core/server/db.rs b/pagetop/src/core/server/db.rs deleted file mode 100644 index 8c5c9f1f..00000000 --- a/pagetop/src/core/server/db.rs +++ /dev/null @@ -1,60 +0,0 @@ -use crate::{Lazy, db, run_now, trace}; -use crate::config::SETTINGS; - -use std::sync::RwLock; -use sea_orm::{ConnectOptions, Database}; -use tracing_unwrap::ResultExt; - -pub static DBCONN: Lazy> = Lazy::new(|| { - trace::info!( - "Connecting to database \"{}\" using a pool of {} connections.", - &SETTINGS.database.db_name, - &SETTINGS.database.max_pool_size - ); - - let db_uri = match SETTINGS.database.db_type.as_str() { - "mysql" | "postgres" => { - let mut tmp_uri = db::DbUri::parse(format!( - "{}://{}/{}", - &SETTINGS.database.db_type, - &SETTINGS.database.db_host, - &SETTINGS.database.db_name - ).as_str()).unwrap(); - tmp_uri.set_username( - &SETTINGS.database.db_user.as_str() - ).unwrap(); - // https://github.com/launchbadge/sqlx/issues/1624 - tmp_uri.set_password( - Some(&SETTINGS.database.db_pass.as_str()) - ).unwrap(); - if SETTINGS.database.db_port != 0 { - tmp_uri.set_port( - Some(SETTINGS.database.db_port) - ).unwrap(); - } - tmp_uri - }, - "sqlite" => db::DbUri::parse( - format!("{}://{}", - &SETTINGS.database.db_type, - &SETTINGS.database.db_name - ).as_str()).unwrap(), - _ => { - trace::error!( - "Unrecognized database type \"{}\".", - &SETTINGS.database.db_type - ); - db::DbUri::parse("").unwrap() - } - }; - - let db_conn = run_now( - Database::connect::({ - let mut db_opt = ConnectOptions::new(db_uri.to_string()); - db_opt.max_connections(SETTINGS.database.max_pool_size); - db_opt.into() - }) - ).expect_or_log("Failed to connect to database"); - - RwLock::new(db_conn) -}); diff --git a/pagetop/src/core/theme.rs b/pagetop/src/core/theme.rs new file mode 100644 index 00000000..391a0064 --- /dev/null +++ b/pagetop/src/core/theme.rs @@ -0,0 +1,7 @@ +mod definition; +pub use definition::{ + BaseTheme, + ThemeTrait, +}; + +pub(crate) mod all; diff --git a/pagetop/src/core/theme/all.rs b/pagetop/src/core/theme/all.rs new file mode 100644 index 00000000..2a02b2ec --- /dev/null +++ b/pagetop/src/core/theme/all.rs @@ -0,0 +1,42 @@ +use crate::{Lazy, app, theme_static_files, trace}; +use super::ThemeTrait; + +use std::sync::RwLock; + +include!(concat!(env!("OUT_DIR"), "/theme.rs")); + +// Temas registrados. +static THEMES: Lazy>> = Lazy::new(|| { + RwLock::new(Vec::new()) +}); + +pub fn register_themes(themes: Vec<&'static dyn ThemeTrait>) { + for t in themes { + register(t) + } +} + +fn register(theme: &'static dyn ThemeTrait) { + let mut themes = THEMES.write().unwrap(); + if !themes.iter().any(|t| t.handler() == theme.handler()) { + trace::debug!("Registering theme \"{}\"", theme.single_name()); + themes.push(theme); + } +} + +pub fn theme_by_single_name(single_name: &str) -> Option<&'static dyn ThemeTrait> { + match THEMES.write().unwrap().iter().find( + |t| t.single_name().to_lowercase() == single_name.to_lowercase() + ) { + Some(theme) => Some(*theme), + _ => None, + } +} + +pub fn themes(cfg: &mut app::web::ServiceConfig) { + theme_static_files!(cfg, "/theme"); + + for t in THEMES.read().unwrap().iter() { + t.configure_service(cfg); + } +} diff --git a/pagetop/src/core/theme/definition.rs b/pagetop/src/core/theme/definition.rs index 12d9e05f..520eadc4 100644 --- a/pagetop/src/core/theme/definition.rs +++ b/pagetop/src/core/theme/definition.rs @@ -1,57 +1,67 @@ +use crate::{app, concat_string, util}; use crate::config::SETTINGS; -use crate::core::server; -use crate::core::theme::{Markup, html}; -use crate::core::response::page::{Page, PageAssets, PageComponent}; +use crate::html::{Favicon, Markup, html}; +use crate::core::component::{ComponentTrait, InContext}; +use crate::response::page::Page; use crate::base::component::Chunck; -/// Los temas deben implementar este "trait". -pub trait Theme: Send + Sync { - fn name(&self) -> &'static str; +pub trait BaseTheme { + fn single_name(&self) -> &'static str; +} - fn fullname(&self) -> String; +/// Los temas deben implementar este "trait". +pub trait ThemeTrait: BaseTheme + Send + Sync { + fn handler(&self) -> &'static str; + + fn name(&self) -> String { + self.single_name().to_owned() + } fn description(&self) -> Option { None } #[allow(unused_variables)] - fn configure_theme(&self, cfg: &mut server::web::ServiceConfig) { + fn configure_service(&self, cfg: &mut app::web::ServiceConfig) { } #[allow(unused_variables)] fn before_render_page(&self, page: &mut Page) { + page.context() + .with_favicon(Some(Favicon::new() + .with_icon("/theme/favicon.png") + )); } fn render_page_head(&self, page: &mut Page) -> Markup { - let title = page.title(); - let title = if title.is_empty() { - SETTINGS.app.name.to_owned() - } else { - [SETTINGS.app.name.to_string(), title.to_string()].join(" | ") - }; - let description = page.description(); let viewport = "width=device-width, initial-scale=1, shrink-to-fit=no"; html! { head { meta charset="utf-8"; - title { (title) } + @match page.title() { + Some(t) => title { + (concat_string!(SETTINGS.app.name, " | ", t)) + }, + None => title { (SETTINGS.app.name) } + } - @if !description.is_empty() { - meta name="description" content=(description); + @match page.description() { + Some(d) => meta name="description" content=(d);, + None => {} } meta http-equiv="X-UA-Compatible" content="IE=edge"; meta name="viewport" content=(viewport); - (page.assets().render()) + (page.context().render()) } } } fn render_page_body(&self, page: &mut Page) -> Markup { html! { - body class=(page.body_classes()) { + body class=[page.body_classes()] { @match page.template() { "admin" => { @for region in &["top-menu", "side-menu", "content"] { @@ -70,33 +80,52 @@ pub trait Theme: Send + Sync { } } + #[allow(unused_variables)] + fn before_render_component( + &self, + component: &mut dyn ComponentTrait, + context: &mut InContext + ) { + /* + Cómo usarlo: + + match component.handler() { + BLOCK_COMPONENT => { + let block = component_mut::(component); + block.alter_title("New title"); + }, + _ => {}, + } + */ + } + #[allow(unused_variables)] fn render_component( &self, - component: &dyn PageComponent, - assets: &mut PageAssets + component: &dyn ComponentTrait, + context: &mut InContext ) -> Option { None /* Cómo usarlo: - match component.name() { - "block" => { - let block = component.downcast_mut::().unwrap(); + match component.handler() { + BLOCK_COMPONENT => { + let block = component_ref::(component); match block.template() { "default" => Some(block_default(block)), - _ => None + _ => None, } }, - _ => None + _ => None, } */ } - fn render_error_page(&self, s: server::http::StatusCode) -> server::Result { - Page::prepare() + fn render_error_page(&self, s: app::http::StatusCode) -> app::Result { + Page::new() .with_title(format!("Error {}", s.as_str()).as_str()) - .add_to("content", Chunck::markup(html! { + .add_to("content", Chunck::with(html! { div { h1 { (s) } } @@ -104,3 +133,9 @@ pub trait Theme: Send + Sync { .render() } } + +impl BaseTheme for T { + fn single_name(&self) -> &'static str { + util::single_type_name::() + } +} diff --git a/pagetop/src/core/theme/mod.rs b/pagetop/src/core/theme/mod.rs deleted file mode 100644 index 8292ade6..00000000 --- a/pagetop/src/core/theme/mod.rs +++ /dev/null @@ -1,18 +0,0 @@ -use crate::core::global; - -pub use maud::{DOCTYPE, Markup, PreEscaped, html}; - -mod definition; -pub use definition::Theme; - -pub fn register_theme(t: &'static (dyn Theme + 'static)) { - global::THEMES.write().unwrap().push(t); -} - -pub fn find_theme(name: &str) -> Option<&'static (dyn Theme + 'static)> { - let themes = global::THEMES.write().unwrap(); - match themes.iter().find(|t| t.name() == name) { - Some(theme) => Some(*theme), - _ => None, - } -} diff --git a/pagetop/src/db.rs b/pagetop/src/db.rs index b487cc19..3c25c0dc 100644 --- a/pagetop/src/db.rs +++ b/pagetop/src/db.rs @@ -1,25 +1,27 @@ pub use url::Url as DbUri; -pub use sea_orm::{ - DbErr, - DatabaseConnection as DbConn, -}; +pub use sea_orm::{DatabaseConnection as DbConn, ExecResult, QueryResult}; -pub mod entity { - pub use sea_orm::entity::prelude::*; -} +pub use sea_orm_migration::prelude::*; -pub mod migration { - pub use sea_schema::migration::prelude::*; +pub type MigrationItem = Box; + +#[macro_export] +macro_rules! pub_migration { + ( $migration:ident ) => { + pub struct $migration; + + impl MigrationName for $migration { + fn name(&self) -> &str { + crate::util::partial_type_name(module_path!(), 1) + } + } + }; } #[macro_export] -macro_rules! db_migrations { - ( $DBCONN:ident ) => {{ - $crate::run_now({ - use $crate::db::migration::MigratorTrait; - - migration::Migrator::up($DBCONN, None) - }) +macro_rules! migration_item { + ( $migration_module:ident ) => {{ + Box::new(migration::$migration_module::Migration) }}; } diff --git a/pagetop/src/html.rs b/pagetop/src/html.rs new file mode 100644 index 00000000..0afcdadd --- /dev/null +++ b/pagetop/src/html.rs @@ -0,0 +1,18 @@ +pub use maud::{DOCTYPE, Markup, PreEscaped, html}; + +mod assets; +pub use assets::Assets; +pub use assets::javascript::{JavaScript, JSMode}; +pub use assets::stylesheet::StyleSheet; + +mod favicon; +pub use favicon::Favicon; + +mod optiden; +pub use optiden::OptIden; + +mod optattr; +pub use optattr::OptAttr; + +mod classes; +pub use classes::{Classes, ClassesOp}; diff --git a/pagetop/src/html/assets.rs b/pagetop/src/html/assets.rs new file mode 100644 index 00000000..921d6816 --- /dev/null +++ b/pagetop/src/html/assets.rs @@ -0,0 +1,41 @@ +pub mod javascript; +pub mod stylesheet; + +use crate::html::{Markup, html}; + +pub trait AssetsTrait { + fn source(&self) -> &'static str; + + fn weight(&self) -> isize; + + fn render(&self) -> Markup; +} + +pub struct Assets(Vec); + +impl Assets { + pub fn new() -> Self { + Assets::(Vec::::new()) + } + + pub fn add(&mut self, assets: T) -> &mut Self { + match self.0.iter().position(|x| x.source() == assets.source()) { + Some(index) => if self.0[index].weight() > assets.weight() { + self.0.remove(index); + self.0.push(assets); + }, + _ => self.0.push(assets) + } + self + } + + pub fn render(&mut self) -> Markup { + let assets = &mut self.0; + assets.sort_by_key(|a| a.weight()); + html! { + @for a in assets { + (a.render()) + } + } + } +} \ No newline at end of file diff --git a/pagetop/src/html/assets/javascript.rs b/pagetop/src/html/assets/javascript.rs new file mode 100644 index 00000000..40cdfb07 --- /dev/null +++ b/pagetop/src/html/assets/javascript.rs @@ -0,0 +1,51 @@ +use crate::html::{Markup, html}; +use super::AssetsTrait; + +#[derive(PartialEq)] +pub enum JSMode { Async, Defer, Normal } + +pub struct JavaScript { + source: &'static str, + weight: isize, + mode : JSMode, +} + +impl AssetsTrait for JavaScript { + fn source(&self) -> &'static str { + self.source + } + + fn weight(&self) -> isize { + self.weight + } + + fn render(&self) -> Markup { + html! { + script type="text/javascript" + src=(self.source) + async[self.mode == JSMode::Async] + defer[self.mode == JSMode::Defer] + {}; + } + } +} + +impl JavaScript { + pub fn with_source(s: &'static str) -> Self { + JavaScript { + source: s, + weight: 0, + mode : JSMode::Defer, + } + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.weight = weight; + self + } + + pub fn with_mode(mut self, mode: JSMode) -> Self { + self.mode = mode; + self + } +} diff --git a/pagetop/src/html/assets/stylesheet.rs b/pagetop/src/html/assets/stylesheet.rs new file mode 100644 index 00000000..ff7da045 --- /dev/null +++ b/pagetop/src/html/assets/stylesheet.rs @@ -0,0 +1,37 @@ +use crate::html::{Markup, html}; +use super::AssetsTrait; + +pub struct StyleSheet { + source: &'static str, + weight: isize, +} + +impl AssetsTrait for StyleSheet { + fn source(&self) -> &'static str { + self.source + } + + fn weight(&self) -> isize { + self.weight + } + + fn render(&self) -> Markup { + html! { + link rel="stylesheet" href=(self.source); + } + } +} + +impl StyleSheet { + pub fn with_source(s: &'static str) -> Self { + StyleSheet { + source: s, + weight: 0, + } + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.weight = weight; + self + } +} diff --git a/pagetop/src/html/classes.rs b/pagetop/src/html/classes.rs new file mode 100644 index 00000000..0623baa2 --- /dev/null +++ b/pagetop/src/html/classes.rs @@ -0,0 +1,91 @@ +use crate::concat_string; + +pub enum ClassesOp { + Add, + AddAfter(&'static str), + AddBefore(&'static str), + AddFirst, + Replace(&'static str), + Reset, + SetDefault, + SetDefaultIfEmpty, +} + +pub struct Classes { + default: String, + added : String, + option : Option, +} + +impl Classes { + pub fn new() -> Self { + Classes { + default: "".to_owned(), + added : "".to_owned(), + option : None, + } + } + + pub fn new_with_default(default: &str) -> Self { + let mut classes = Self::new(); + classes.alter(default, ClassesOp::SetDefault); + classes + } + + pub fn alter(&mut self, classes: &str, op: ClassesOp) -> &Self { + let classes = classes.trim(); + match op { + ClassesOp::Add => { + self.added = concat_string!(self.added, " ", classes).trim().to_owned() + }, + + ClassesOp::AddAfter(class) => { + let mut v_added: Vec<&str> = self.added.split_ascii_whitespace().collect(); + match v_added.iter().position(|c| c.eq(&class)) { + Some(pos) => v_added.insert(pos + 1, classes), + _ => v_added.push(classes), + } + self.added = v_added.join(" "); + }, + + ClassesOp::AddBefore(class) => { + let mut v_added: Vec<&str> = self.added.split_ascii_whitespace().collect(); + match v_added.iter().position(|c| c.eq(&class)) { + Some(pos) => v_added.insert(pos, classes), + _ => v_added.insert(0, classes), + } + self.added = v_added.join(" "); + }, + + ClassesOp::AddFirst => { + self.added = concat_string!(classes, " ", self.added).trim().to_owned() + }, + + ClassesOp::Replace(class) => { + let mut v_added: Vec<&str> = self.added.split_ascii_whitespace().collect(); + match v_added.iter().position(|c| c.eq(&class)) { + Some(pos) => { + v_added.remove(pos); + v_added.insert(pos, classes); + }, + _ => v_added.push(classes), + } + self.added = v_added.join(" "); + }, + + ClassesOp::Reset => self.added = classes.to_owned(), + + ClassesOp::SetDefault => self.default = classes.to_owned(), + + ClassesOp::SetDefaultIfEmpty => if self.default.is_empty() { + self.default = classes.to_owned() + }, + } + self.option = Some(concat_string!(self.default, " ", self.added).trim().to_owned()); + self + } + + pub fn option(&self) -> &Option { + &self.option + } +} diff --git a/pagetop/src/html/favicon.rs b/pagetop/src/html/favicon.rs new file mode 100644 index 00000000..d8d6fc18 --- /dev/null +++ b/pagetop/src/html/favicon.rs @@ -0,0 +1,86 @@ +use crate::html::{Markup, PreEscaped, html}; + +pub struct Favicon(Vec); + +impl Favicon { + pub fn new() -> Self { + Favicon(Vec::new()) + } + + pub fn with_icon(self, image: &str) -> Self { + self.add_item("icon", image, "", "") + } + + pub fn with_icon_for_sizes(self, image: &str, sizes: &str) -> Self { + self.add_item("icon", image, sizes, "") + } + + pub fn with_apple_touch_icon(self, image: &str, sizes: &str) -> Self { + self.add_item("apple-touch-icon", image, sizes, "") + } + + pub fn with_mask_icon(self, image: &str, color: &str) -> Self { + self.add_item("mask-icon", image, "", color) + } + + pub fn with_manifest(self, file: &str) -> Self { + self.add_item("manifest", file, "", "") + } + + pub fn with_theme_color(mut self, color: &str) -> Self { + self.0.push(format!( + "", color + )); + self + } + + pub fn with_ms_tile_color(mut self, color: &str) -> Self { + self.0.push(format!( + "", color + )); + self + } + + pub fn with_ms_tile_image(mut self, image: &str) -> Self { + self.0.push(format!( + "", image + )); + self + } + + fn add_item( + mut self, + rel : &str, + source: &str, + sizes : &str, + color : &str + ) -> Self { + let mut link: String = format!(" format!("{} type=\"image/gif\"", link), + ".ico" => format!("{} type=\"image/x-icon\"", link), + ".jpg" => format!("{} type=\"image/jpg\"", link), + ".png" => format!("{} type=\"image/png\"", link), + ".svg" => format!("{} type=\"image/svg+xml\"", link), + _ => link + }; + } + if !sizes.is_empty() { + link = format!("{} sizes=\"{}\"", link, sizes); + } + if !color.is_empty() { + link = format!("{} color=\"{}\"", link, color); + } + self.0.push(format!("{} href=\"{}\">", link, source)); + self + } + + pub(crate) fn render(&self) -> Markup { + html! { + @for item in &self.0 { + (PreEscaped(item)) + } + } + } +} diff --git a/pagetop/src/html/optattr.rs b/pagetop/src/html/optattr.rs new file mode 100644 index 00000000..86c21e8c --- /dev/null +++ b/pagetop/src/html/optattr.rs @@ -0,0 +1,26 @@ +pub struct OptAttr(Option); + +impl OptAttr { + pub fn new() -> Self { + OptAttr(None) + } + + pub fn new_with_value(value: &str) -> Self { + let mut option = Self::new(); + option.with_value(value); + option + } + + pub fn with_value(&mut self, value: &str) -> &mut Self { + let value = value.trim(); + self.0 = match value.is_empty() { + true => None, + false => Some(value.to_owned()), + }; + self + } + + pub fn option(&self) -> &Option { + &self.0 + } +} diff --git a/pagetop/src/html/optiden.rs b/pagetop/src/html/optiden.rs new file mode 100644 index 00000000..450867d9 --- /dev/null +++ b/pagetop/src/html/optiden.rs @@ -0,0 +1,26 @@ +pub struct OptIden(Option); + +impl OptIden { + pub fn new() -> Self { + OptIden(None) + } + + pub fn new_with_value(id: &str) -> Self { + let mut option = Self::new(); + option.with_value(id); + option + } + + pub fn with_value(&mut self, id: &str) -> &Self { + let id = id.trim(); + self.0 = match id.is_empty() { + true => None, + false => Some(id.replace(" ", "_")), + }; + self + } + + pub fn option(&self) -> &Option { + &self.0 + } +} diff --git a/pagetop/src/lib.rs b/pagetop/src/lib.rs index b8485f96..06dc32bc 100644 --- a/pagetop/src/lib.rs +++ b/pagetop/src/lib.rs @@ -1,24 +1,32 @@ -// Global. +// External re-exports. -pub use doc_comment::doc_comment; pub use once_cell::sync::Lazy; -pub use futures::executor::block_on as run_now; +pub use concat_string::concat_string; +pub use doc_comment::doc_comment; -// ----------------------------------------------------------------------------- -// APIs públicas. -// ----------------------------------------------------------------------------- +// Local. + +#[allow(unused_imports)] +pub(crate) use futures::executor::block_on as run_now; + +// Public APIs. pub mod config; // Gestión de la configuración. pub mod trace; // Registro de trazas y eventos de la aplicación. pub mod locale; // Localización. +pub mod html; // HTML en código. #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] -pub mod db; // Acceso a la base de datos. +pub mod db; // Acceso a base de datos. -pub mod core; // Servidor web y APIs para Temas, Módulos y Respuestas web. -pub mod base; // Temas, Módulos y Componentes base. +pub mod app; // Prepare and run the application. + +pub mod core; // Main APIs for components, hooks, modules and themes. + +pub mod response; // Tipos de respuestas web. +pub mod base; // Base de componentes, módulos y temas. pub mod util; // Macros y funciones útiles. -pub mod prelude; // Re-exporta recursos comunes. +// Internal re-exports. -pub use crate::core::server::app::Application; +pub mod prelude; diff --git a/pagetop/src/locale.rs b/pagetop/src/locale.rs index 22a01ba6..93e9e7e8 100644 --- a/pagetop/src/locale.rs +++ b/pagetop/src/locale.rs @@ -5,15 +5,15 @@ pub use fluent_templates::fluent_bundle::FluentValue; #[macro_export] /// Permite integrar fácilmente localización en temas, módulos y componentes. macro_rules! localize { - ( $DEF_LANGID:literal, $locales:literal $(, $core_locales:literal)? ) => { + ( $dir_locales:literal $(, $core_locales:literal)? ) => { use $crate::locale::*; - use $crate::core::server::locale::LANGID; + use $crate::app::locale::LANGID; static_locale! { static LOCALES = { - locales: $locales, + locales: $dir_locales, $( core_locales: $core_locales, )? - fallback_language: $DEF_LANGID, + fallback_language: "en-US", // Elimina las marcas Unicode que delimitan los argumentos. customise: |bundle| bundle.set_use_isolating(false), @@ -37,8 +37,8 @@ macro_rules! localize { fn e( key: &str, args: &std::collections::HashMap - ) -> crate::core::theme::PreEscaped { - crate::core::theme::PreEscaped( + ) -> $crate::html::PreEscaped { + $crate::html::PreEscaped( LOCALES.lookup_with_args(&LANGID, key, args) ) } diff --git a/pagetop/src/prelude.rs b/pagetop/src/prelude.rs index f0a4b031..c772c91d 100644 --- a/pagetop/src/prelude.rs +++ b/pagetop/src/prelude.rs @@ -1,18 +1,37 @@ //! Re-exporta recursos comunes. -pub use crate::args; +// Macros, globals and helpers. +pub use crate::{ + args, + concat_string, + theme_static_files, + util, +}; + pub use crate::config::SETTINGS; pub use crate::trace; pub use crate::localize; +pub use crate::html::*; #[cfg(any(feature = "mysql", feature = "postgres", feature = "sqlite"))] -pub use crate::{db, db_migrations}; +pub use crate::{ + db, + db::*, + pub_migration, + migration_item, +}; -pub use crate::core::theme::*; -pub use crate::core::module::*; -pub use crate::core::response::page::*; -pub use crate::core::server; +pub use crate::app; +pub use crate::app::AppTrait; +pub use crate::app::application::Application; + +pub use crate::{hook_item, core::{ + component::*, + hook::*, + module::*, + theme::*, +}}; + +pub use crate::response::page::*; pub use crate::base::component::*; - -pub use crate::util; diff --git a/pagetop/src/core/response/mod.rs b/pagetop/src/response.rs similarity index 100% rename from pagetop/src/core/response/mod.rs rename to pagetop/src/response.rs diff --git a/pagetop/src/response/page.rs b/pagetop/src/response/page.rs new file mode 100644 index 00000000..5f517471 --- /dev/null +++ b/pagetop/src/response/page.rs @@ -0,0 +1,8 @@ +mod hook; +pub use hook::{ + BEFORE_RENDER_PAGE_HOOK, + BeforeRenderPageHook, +}; + +mod definition; +pub use definition::Page; diff --git a/pagetop/src/response/page/definition.rs b/pagetop/src/response/page/definition.rs new file mode 100644 index 00000000..ba210d2d --- /dev/null +++ b/pagetop/src/response/page/definition.rs @@ -0,0 +1,191 @@ +use crate::{Lazy, app, trace}; +use crate::config::SETTINGS; +use crate::html::*; +use crate::core::hook::{hook_ref, run_hooks}; +use crate::core::component::*; +use super::{BEFORE_RENDER_PAGE_HOOK, BeforeRenderPageHook}; + +use std::collections::HashMap; + +static DEFAULT_LANGUAGE: Lazy> = Lazy::new(|| { + let language = SETTINGS.app.language[..2].to_lowercase(); + if !language.is_empty() { + Some(language) + } else { + None + } +}); + +static DEFAULT_DIRECTION: Lazy> = Lazy::new(|| { + let direction = SETTINGS.app.direction.to_lowercase(); + match direction.as_str() { + "auto" => Some("auto".to_owned()), + "ltr" => Some("ltr".to_owned()), + "rtl" => Some("rtl".to_owned()), + "" => None, + _ => { + trace::warn!( + "Text direction \"{}\" not valid, {}", + SETTINGS.app.direction, + "check the settings file" + ); + None + } + } +}); + +pub enum TextDirection { Auto, LeftToRight, RightToLeft } + +pub struct Page<'a> { + language : OptAttr, + direction : OptAttr, + title : OptAttr, + description : OptAttr, + context : InContext, + regions : HashMap<&'a str, ComponentsBundle>, + body_classes: Classes, + template : String, +} + +impl<'a> Page<'a> { + + pub fn new() -> Self { + Page { + language : match &*DEFAULT_LANGUAGE { + Some(language) => OptAttr::new_with_value(language), + _ => OptAttr::new(), + }, + direction : match &*DEFAULT_DIRECTION { + Some(direction) => OptAttr::new_with_value(direction), + _ => OptAttr::new(), + }, + title : OptAttr::new(), + description : OptAttr::new(), + context : InContext::new(), + regions : common_components(), + body_classes: Classes::new_with_default("body"), + template : "default".to_owned(), + } + } + + // Page BUILDER. + + pub fn with_language(&mut self, language: &str) -> &mut Self { + self.language.with_value(language); + self + } + + pub fn with_direction(&mut self, dir: TextDirection) -> &mut Self { + self.direction.with_value(match dir { + TextDirection::Auto => "auto", + TextDirection::LeftToRight => "ltr", + TextDirection::RightToLeft => "rtl", + }); + self + } + + pub fn with_title(&mut self, title: &str) -> &mut Self { + self.title.with_value(title); + self + } + + pub fn with_description(&mut self, description: &str) -> &mut Self { + self.description.with_value(description); + self + } + + pub fn add_to( + &mut self, + region: &'a str, + component: impl ComponentTrait + ) -> &mut Self { + if let Some(regions) = self.regions.get_mut(region) { + regions.add(component); + } else { + self.regions.insert(region, ComponentsBundle::new_with(component)); + } + self + } + + pub fn alter_body_classes(&mut self, classes: &str, op: ClassesOp) -> &mut Self { + self.body_classes.alter(classes, op); + self + } + + pub fn using_template(&mut self, template: &str) -> &mut Self { + self.template = template.to_owned(); + self + } + + // Page GETTERS. + + pub fn language(&self) -> &Option { + self.language.option() + } + + pub fn direction(&self) -> &Option { + self.direction.option() + } + + pub fn title(&self) -> &Option { + self.title.option() + } + + pub fn description(&self) -> &Option { + self.description.option() + } + + pub fn context(&mut self) -> &mut InContext { + &mut self.context + } + + pub fn body_classes(&self) -> &Option { + self.body_classes.option() + } + + pub fn template(&self) -> &str { + self.template.as_str() + } + + // Page RENDER. + + pub fn render(&mut self) -> app::Result { + // Acciones de los módulos antes de renderizar la página. + run_hooks( + BEFORE_RENDER_PAGE_HOOK, + |hook| hook_ref::(&**hook).run(self) + ); + + // Acciones del tema antes de renderizar la página. + self.context.theme().before_render_page(self); + + // Primero, renderizar el cuerpo. + let body = self.context.theme().render_page_body(self); + + // Luego, renderizar la cabecera. + let head = self.context.theme().render_page_head(self); + + // Finalmente, renderizar la página. + return Ok(html! { + (DOCTYPE) + html lang=[self.language()] dir=[self.direction()] { + (head) + (body) + } + }) + } + + pub fn render_region(&mut self, region: &str) -> Markup { + match self.regions.get_mut(region) { + Some(components) => components.render(&mut self.context), + None => html! {} + } + } + + // Page EXTRAS. + + pub fn using_theme(&mut self, theme_name: &str) -> &mut Self { + self.context.using_theme(theme_name); + self + } +} diff --git a/pagetop/src/response/page/hook.rs b/pagetop/src/response/page/hook.rs new file mode 100644 index 00000000..d482fb56 --- /dev/null +++ b/pagetop/src/response/page/hook.rs @@ -0,0 +1,48 @@ +use crate::core::hook::{HookTrait, AnyHook}; +use super::Page; + +pub const BEFORE_RENDER_PAGE_HOOK: &str = "pagetop::hook::before_render_page"; + +pub struct BeforeRenderPageHook { + hook: Option, + weight: isize, +} + +impl HookTrait for BeforeRenderPageHook { + fn new() -> Self { + BeforeRenderPageHook { + hook: None, + weight: 0, + } + } + + fn handler(&self) -> &'static str { + BEFORE_RENDER_PAGE_HOOK + } + + fn weight(&self) -> isize { + self.weight + } + + fn as_ref_any(&self) -> &dyn AnyHook { + self + } +} + +impl BeforeRenderPageHook { + pub fn with_hook(mut self, hook: fn(&mut Page)) -> Self { + self.hook = Some(hook); + self + } + + pub fn with_weight(mut self, weight: isize) -> Self { + self.weight = weight; + self + } + + pub fn run(&self, page: &mut Page) { + if let Some(hook) = self.hook { + hook(page) + } + } +} diff --git a/pagetop/src/util.rs b/pagetop/src/util.rs index c56d2146..f4f683bf 100644 --- a/pagetop/src/util.rs +++ b/pagetop/src/util.rs @@ -9,34 +9,44 @@ /// ]; /// ``` macro_rules! args { - ( $($KEY:expr => $VALUE:expr),* ) => {{ + ( $($key:expr => $value:expr),* ) => {{ let mut a = std::collections::HashMap::new(); $( - a.insert(String::from($KEY), $VALUE.into()); + a.insert(String::from($key), $value.into()); )* a }}; } -pub fn valid_id(id: &str) -> Option { - let id = id.trim().replace(" ", "_").to_lowercase(); - match id.is_empty() { - true => None, - false => Some(id), - } +#[macro_export] +macro_rules! theme_static_files { + ( $cfg:ident, $dir:expr ) => {{ + let static_files = &$crate::config::SETTINGS.dev.static_files; + if static_files.is_empty() { + $cfg.service(actix_web_static_files::ResourceFiles::new( + $dir, + generate() + )); + } else { + $cfg.service(actix_files::Files::new( + $dir, + &[static_files, $dir].join("") + ).show_files_listing()); + } + }}; } -pub fn optional_str(s: &str) -> Option { - let s = s.to_owned(); - match s.is_empty() { - true => None, - false => Some(s), +pub fn partial_type_name(type_name: &'static str, last: usize) -> &'static str { + if last == 0 { + return type_name; } + let positions: Vec<_> = type_name.rmatch_indices("::").collect(); + if positions.len() < last { + return type_name; + } + &type_name[(positions[last - 1].0 + 2)..] } -pub fn assigned_str(optional: &Option) -> &str { - match optional { - Some(o) => o.as_str(), - _ => "", - } +pub fn single_type_name() -> &'static str { + partial_type_name(std::any::type_name::(), 1) } diff --git a/pagetop/static/aliner/css/styles.css b/pagetop/static/aliner/css/styles.css index ffeee7db..1cc2f5dc 100644 --- a/pagetop/static/aliner/css/styles.css +++ b/pagetop/static/aliner/css/styles.css @@ -1,5 +1,16 @@ html { background-color: white; + padding: 1px 3px; +} +body { + padding: 1px 3px; +} +div { + padding: 1px 3px; + margin: 5px; +} +h1, h2, h3, h4,h5, h6, p { + background-color: snow; } * * { outline: 5px solid rgba(255,0,0,.1); @@ -21,7 +32,9 @@ html { background: #faa; border-radius: 3px; font: normal normal 400 10px/1.2 monospace; + vertical-align: middle; padding: 1px 3px; + margin: 0 3px; } *::before { content: "("; diff --git a/pagetop/static/bootsier/images/demo-header.svg b/pagetop/static/bootsier/images/demo-header.svg new file mode 100644 index 00000000..060757ee --- /dev/null +++ b/pagetop/static/bootsier/images/demo-header.svg @@ -0,0 +1 @@ +header-illustration \ No newline at end of file diff --git a/pagetop/static/bootsier/images/demo-pagetop.svg b/pagetop/static/bootsier/images/demo-pagetop.svg new file mode 100644 index 00000000..08fbbb09 --- /dev/null +++ b/pagetop/static/bootsier/images/demo-pagetop.svg @@ -0,0 +1 @@ +details-2 \ No newline at end of file diff --git a/pagetop/static/bootsier/images/demo-visiting.svg b/pagetop/static/bootsier/images/demo-visiting.svg new file mode 100644 index 00000000..d06680b3 --- /dev/null +++ b/pagetop/static/bootsier/images/demo-visiting.svg @@ -0,0 +1 @@ +details-1 \ No newline at end of file diff --git a/pagetop/static/bulmix/css/bulma-rtl.min.css b/pagetop/static/bulmix/css/bulma-rtl.min.css new file mode 100644 index 00000000..36fa65bc --- /dev/null +++ b/pagetop/static/bulmix/css/bulma-rtl.min.css @@ -0,0 +1 @@ +/*! bulma.io v0.9.3 | MIT License | github.com/jgthms/bulma */.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .button,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .input,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-previous,fieldset[disabled] .select select,fieldset[disabled] .textarea{cursor:not-allowed}.breadcrumb,.button,.file,.is-unselectable,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#485fc7;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #485fc7}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #485fc7}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-right:calc(-.5em - 1px);margin-left:.25em}.button .icon:last-child:not(:first-child){margin-right:.25em;margin-left:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#485fc7;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:0 0;border-color:transparent;color:#485fc7;text-decoration:none}.button.is-ghost.is-hovered,.button.is-ghost:hover{color:#485fc7;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-hovered,.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined.is-focused,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined.is-loading.is-focused::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined.is-focused,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-hovered,.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined.is-focused,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined.is-loading.is-focused::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined.is-focused,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-hovered,.button.is-light.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined.is-focused,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined.is-loading.is-focused::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-light.is-inverted.is-outlined.is-focused,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-dark{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#fff}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],fieldset[disabled] .button.is-dark{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-hovered,.button.is-dark.is-inverted:hover{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined.is-focused,.button.is-dark.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined.is-loading.is-focused::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined.is-focused,.button.is-dark.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#00d1b2;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-hovered,.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined.is-focused,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined.is-loading.is-focused::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-outlined.is-loading:focus::after,.button.is-primary.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined.is-focused,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light{background-color:#ebfffc;color:#00947e}.button.is-primary.is-light.is-hovered,.button.is-primary.is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.button.is-primary.is-light.is-active,.button.is-primary.is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.button.is-link{background-color:#485fc7;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#3e56c4;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#3a51bb;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#485fc7;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-hovered,.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#485fc7}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;color:#485fc7}.button.is-link.is-outlined.is-focused,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#485fc7;border-color:#485fc7;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-outlined.is-loading.is-focused::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;box-shadow:none;color:#485fc7}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined.is-focused,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff1fa;color:#3850b7}.button.is-link.is-light.is-hovered,.button.is-link.is-light:hover{background-color:#e6e9f7;border-color:transparent;color:#3850b7}.button.is-link.is-light.is-active,.button.is-link.is-light:active{background-color:#dce0f4;border-color:transparent;color:#3850b7}.button.is-info{background-color:#3e8ed0;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#3488ce;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#3082c5;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#3e8ed0;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-hovered,.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3e8ed0}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;color:#3e8ed0}.button.is-info.is-outlined.is-focused,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-outlined.is-loading.is-focused::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;box-shadow:none;color:#3e8ed0}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined.is-focused,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#eff5fb;color:#296fa8}.button.is-info.is-light.is-hovered,.button.is-info.is-light:hover{background-color:#e4eff9;border-color:transparent;color:#296fa8}.button.is-info.is-light.is-active,.button.is-info.is-light:active{background-color:#dae9f6;border-color:transparent;color:#296fa8}.button.is-success{background-color:#48c78e;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#3ec487;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#3abb81;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#48c78e;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-hovered,.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#48c78e}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;color:#48c78e}.button.is-success.is-outlined.is-focused,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#48c78e;border-color:#48c78e;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-outlined.is-loading.is-focused::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;box-shadow:none;color:#48c78e}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined.is-focused,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#effaf5;color:#257953}.button.is-success.is-light.is-hovered,.button.is-success.is-light:hover{background-color:#e6f7ef;border-color:transparent;color:#257953}.button.is-success.is-light.is-active,.button.is-success.is-light:active{background-color:#dcf4e9;border-color:transparent;color:#257953}.button.is-warning{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffe08a;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-hovered,.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffe08a}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;color:#ffe08a}.button.is-warning.is-outlined.is-focused,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-outlined.is-loading.is-focused::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;box-shadow:none;color:#ffe08a}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined.is-focused,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-warning.is-light{background-color:#fffaeb;color:#946c00}.button.is-warning.is-light.is-hovered,.button.is-warning.is-light:hover{background-color:#fff6de;border-color:transparent;color:#946c00}.button.is-warning.is-light.is-active,.button.is-warning.is-light:active{background-color:#fff3d1;border-color:transparent;color:#946c00}.button.is-danger{background-color:#f14668;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#f03a5f;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#f14668;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-hovered,.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f14668}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;color:#f14668}.button.is-danger.is-outlined.is-focused,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#f14668;border-color:#f14668;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-outlined.is-loading.is-focused::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;box-shadow:none;color:#f14668}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined.is-focused,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.button.is-danger.is-light.is-hovered,.button.is-danger.is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.button.is-danger.is-light.is-active,.button.is-danger.is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.button.is-small{font-size:.75rem}.button.is-small:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * .5));top:calc(50% - (1em * .5));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:9999px;padding-left:calc(1em + .25em);padding-right:calc(1em + .25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-left:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-left:-1px}.buttons.has-addons .button:last-child{margin-left:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none!important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (max-width:1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width:1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-right:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-right:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol:not([type]).is-lower-alpha{list-style-type:lower-alpha}.content ol:not([type]).is-lower-roman{list-style-type:lower-roman}.content ol:not([type]).is-upper-alpha{list-style-type:upper-alpha}.content ol:not([type]).is-upper-roman{list-style-type:upper-roman}.content ul{list-style:disc outside;margin-right:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-right:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-left:.25em}.icon-text .icon:not(:first-child){margin-right:.25em}div.icon-text{display:flex}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:9999px}.image.is-fullwidth{width:100%}.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 1.5rem 1.25rem 2.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{left:.5rem;position:absolute;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.notification.is-dark{background-color:#363636;color:#fff}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-primary.is-light{background-color:#ebfffc;color:#00947e}.notification.is-link{background-color:#485fc7;color:#fff}.notification.is-link.is-light{background-color:#eff1fa;color:#3850b7}.notification.is-info{background-color:#3e8ed0;color:#fff}.notification.is-info.is-light{background-color:#eff5fb;color:#296fa8}.notification.is-success{background-color:#48c78e;color:#fff}.notification.is-success.is-light{background-color:#effaf5;color:#257953}.notification.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.notification.is-warning.is-light{background-color:#fffaeb;color:#946c00}.notification.is-danger{background-color:#f14668;color:#fff}.notification.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right,#fff 30%,#ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right,#0a0a0a 30%,#ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right,#f5f5f5 30%,#ededed 30%)}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate{background-image:linear-gradient(to right,#363636 30%,#ededed 30%)}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#00d1b2 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#485fc7}.progress.is-link::-moz-progress-bar{background-color:#485fc7}.progress.is-link::-ms-fill{background-color:#485fc7}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#485fc7 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#3e8ed0}.progress.is-info::-moz-progress-bar{background-color:#3e8ed0}.progress.is-info::-ms-fill{background-color:#3e8ed0}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#3e8ed0 30%,#ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#48c78e}.progress.is-success::-moz-progress-bar{background-color:#48c78e}.progress.is-success::-ms-fill{background-color:#48c78e}.progress.is-success:indeterminate{background-image:linear-gradient(to right,#48c78e 30%,#ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffe08a}.progress.is-warning::-moz-progress-bar{background-color:#ffe08a}.progress.is-warning::-ms-fill{background-color:#ffe08a}.progress.is-warning:indeterminate{background-image:linear-gradient(to right,#ffe08a 30%,#ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#f14668}.progress.is-danger::-moz-progress-bar{background-color:#f14668}.progress.is-danger::-ms-fill{background-color:#f14668}.progress.is-danger:indeterminate{background-image:linear-gradient(to right,#f14668 30%,#ededed 30%)}.progress:indeterminate{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:moveIndeterminate;animation-name:moveIndeterminate;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right,#4a4a4a 30%,#ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@-webkit-keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#485fc7;border-color:#485fc7;color:#fff}.table td.is-info,.table th.is-info{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.table td.is-success,.table th.is-success{background-color:#48c78e;border-color:#48c78e;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#363636}.table th:not([align]){text-align:inherit}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:transparent}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot{background-color:transparent}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody{background-color:transparent}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-left:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tags.has-addons .tag{margin-left:0}.tags.has-addons .tag:not(:first-child){margin-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.tags.has-addons .tag:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-right:.25rem;margin-left:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.tag:not(body).is-dark{background-color:#363636;color:#fff}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ebfffc;color:#00947e}.tag:not(body).is-link{background-color:#485fc7;color:#fff}.tag:not(body).is-link.is-light{background-color:#eff1fa;color:#3850b7}.tag:not(body).is-info{background-color:#3e8ed0;color:#fff}.tag:not(body).is-info.is-light{background-color:#eff5fb;color:#296fa8}.tag:not(body).is-success{background-color:#48c78e;color:#fff}.tag:not(body).is-success.is-light{background-color:#effaf5;color:#257953}.tag:not(body).is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.tag:not(body).is-warning.is-light{background-color:#fffaeb;color:#946c00}.tag:not(body).is-danger{background-color:#f14668;color:#fff}.tag:not(body).is-danger.is-light{background-color:#feecf0;color:#cc0f35}.tag:not(body).is-normal{font-size:.75rem}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-right:-.375em;margin-left:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-right:.1875em;margin-left:-.375em}.tag:not(body) .icon:first-child:last-child{margin-right:-.375em;margin-left:-.375em}.tag:not(body).is-delete{margin-right:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:9999px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.input,.select select,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.is-hovered.input,.is-hovered.textarea,.select select.is-hovered,.select select:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.is-focused.input,.is-focused.textarea,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{border-color:#485fc7;box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.input[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .input,fieldset[disabled] .select select,fieldset[disabled] .textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input,.textarea{box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.input[readonly],.textarea[readonly]{box-shadow:none}.is-white.input,.is-white.textarea{border-color:#fff}.is-white.input:active,.is-white.input:focus,.is-white.is-active.input,.is-white.is-active.textarea,.is-white.is-focused.input,.is-white.is-focused.textarea,.is-white.textarea:active,.is-white.textarea:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.is-black.input,.is-black.textarea{border-color:#0a0a0a}.is-black.input:active,.is-black.input:focus,.is-black.is-active.input,.is-black.is-active.textarea,.is-black.is-focused.input,.is-black.is-focused.textarea,.is-black.textarea:active,.is-black.textarea:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.is-light.input,.is-light.textarea{border-color:#f5f5f5}.is-light.input:active,.is-light.input:focus,.is-light.is-active.input,.is-light.is-active.textarea,.is-light.is-focused.input,.is-light.is-focused.textarea,.is-light.textarea:active,.is-light.textarea:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.is-dark.input,.is-dark.textarea{border-color:#363636}.is-dark.input:active,.is-dark.input:focus,.is-dark.is-active.input,.is-dark.is-active.textarea,.is-dark.is-focused.input,.is-dark.is-focused.textarea,.is-dark.textarea:active,.is-dark.textarea:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.is-primary.input,.is-primary.textarea{border-color:#00d1b2}.is-primary.input:active,.is-primary.input:focus,.is-primary.is-active.input,.is-primary.is-active.textarea,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.textarea:active,.is-primary.textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.is-link.input,.is-link.textarea{border-color:#485fc7}.is-link.input:active,.is-link.input:focus,.is-link.is-active.input,.is-link.is-active.textarea,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.textarea:active,.is-link.textarea:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.is-info.input,.is-info.textarea{border-color:#3e8ed0}.is-info.input:active,.is-info.input:focus,.is-info.is-active.input,.is-info.is-active.textarea,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.textarea:active,.is-info.textarea:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.is-success.input,.is-success.textarea{border-color:#48c78e}.is-success.input:active,.is-success.input:focus,.is-success.is-active.input,.is-success.is-active.textarea,.is-success.is-focused.input,.is-success.is-focused.textarea,.is-success.textarea:active,.is-success.textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.is-warning.input,.is-warning.textarea{border-color:#ffe08a}.is-warning.input:active,.is-warning.input:focus,.is-warning.is-active.input,.is-warning.is-active.textarea,.is-warning.is-focused.input,.is-warning.is-focused.textarea,.is-warning.textarea:active,.is-warning.textarea:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.is-danger.input,.is-danger.textarea{border-color:#f14668}.is-danger.input:active,.is-danger.input:focus,.is-danger.is-active.input,.is-danger.is-active.textarea,.is-danger.is-focused.input,.is-danger.is-focused.textarea,.is-danger.textarea:active,.is-danger.textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.is-small.input,.is-small.textarea{border-radius:2px;font-size:.75rem}.is-medium.input,.is-medium.textarea{font-size:1.25rem}.is-large.input,.is-large.textarea{font-size:1.5rem}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:9999px;padding-left:calc(calc(.75em - 1px) + .375em);padding-right:calc(calc(.75em - 1px) + .375em)}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox input[disabled],.checkbox[disabled],.radio input[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .radio{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-right:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#485fc7;left:1.125em;z-index:4}.select.is-rounded select{border-radius:9999px;padding-right:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-left:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#485fc7}.select.is-link select{border-color:#485fc7}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#3a51bb}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.select.is-info:not(:hover)::after{border-color:#3e8ed0}.select.is-info select{border-color:#3e8ed0}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#3082c5}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.select.is-success:not(:hover)::after{border-color:#48c78e}.select.is-success select{border-color:#48c78e}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#3abb81}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.select.is-warning:not(:hover)::after{border-color:#ffe08a}.select.is-warning select{border-color:#ffe08a}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd970}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.select.is-danger:not(:hover)::after{border-color:#f14668}.select.is-danger select{border-color:#f14668}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ef2e55}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;left:.625em;top:.625em;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:rgba(0,0,0,.7)}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#fff}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#485fc7;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#3e56c4;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,95,199,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#3a51bb;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#3e8ed0;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#3488ce;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(62,142,208,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#3082c5;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#48c78e;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#3ec487;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,199,142,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#3abb81;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,224,138,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#f14668;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#f03a5f;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(241,70,104,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ef2e55;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:0;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-left:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#485fc7}.help.is-info{color:#3e8ed0}.help.is-success{color:#48c78e}.help.is-warning{color:#ffe08a}.help.is-danger{color:#f14668}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-left:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control .button:not([disabled]).is-hovered,.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]).is-hovered,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]).is-hovered,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]).is-focused,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]).is-focused,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]).is-focused,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]).is-focused:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]).is-focused:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]).is-focused:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-left:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-left:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-left:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#4a4a4a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;left:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#485fc7;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-right:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-left:.5em}.breadcrumb .icon:last-child{margin-right:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;max-width:100%;position:relative}.card-content:first-child,.card-footer:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-content:last-child,.card-footer:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:transparent;align-items:stretch;box-shadow:0 .125em .25em rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:transparent;padding:1.5rem}.card-footer{background-color:transparent;border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-left:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;right:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-left:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#485fc7;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-left:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-left:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-left:1rem}.media-right{margin-right:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width:768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#485fc7;color:#fff}.menu-list li ul{border-right:1px solid #dbdbdb;margin:.75em;padding-right:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body{border-color:#363636}.message.is-primary{background-color:#ebfffc}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#00947e}.message.is-link{background-color:#eff1fa}.message.is-link .message-header{background-color:#485fc7;color:#fff}.message.is-link .message-body{border-color:#485fc7;color:#3850b7}.message.is-info{background-color:#eff5fb}.message.is-info .message-header{background-color:#3e8ed0;color:#fff}.message.is-info .message-body{border-color:#3e8ed0;color:#296fa8}.message.is-success{background-color:#effaf5}.message.is-success .message-header{background-color:#48c78e;color:#fff}.message.is-success .message-body{border-color:#48c78e;color:#257953}.message.is-warning{background-color:#fffaeb}.message.is-warning .message-header{background-color:#ffe08a;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffe08a;color:#946c00}.message.is-danger{background-color:#feecf0}.message.is-danger .message-header{background-color:#f14668;color:#fff}.message.is-danger .message-body{border-color:#f14668;color:#cc0f35}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-right:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;left:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-left:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width:1024px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.navbar.is-dark{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#fff}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#fff}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#485fc7;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#485fc7;color:#fff}}.navbar.is-info{background-color:#3e8ed0;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3e8ed0;color:#fff}}.navbar.is-success{background-color:#48c78e;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#48c78e;color:#fff}}.navbar.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffe08a;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#f14668;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f14668;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-right:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#485fc7}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#485fc7}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#485fc7;border-bottom-style:solid;border-bottom-width:3px;color:#485fc7;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-left:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#485fc7;margin-top:-.375em;left:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-left:auto}.navbar-end{justify-content:flex-end;margin-right:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;right:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-left:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-right:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-left:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.5em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#485fc7}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#485fc7;border-color:#485fc7;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading{background-color:#00d1b2;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#00d1b2}.panel.is-primary .panel-block.is-active .panel-icon{color:#00d1b2}.panel.is-link .panel-heading{background-color:#485fc7;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#485fc7}.panel.is-link .panel-block.is-active .panel-icon{color:#485fc7}.panel.is-info .panel-heading{background-color:#3e8ed0;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#3e8ed0}.panel.is-info .panel-block.is-active .panel-icon{color:#3e8ed0}.panel.is-success .panel-heading{background-color:#48c78e;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#48c78e}.panel.is-success .panel-block.is-active .panel-icon{color:#48c78e}.panel.is-warning .panel-heading{background-color:#ffe08a;color:rgba(0,0,0,.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffe08a}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffe08a}.panel.is-danger .panel-heading{background-color:#f14668;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#f14668}.panel.is-danger .panel-block.is-active .panel-icon{color:#f14668}.panel-block:not(:last-child),.panel-tabs:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#363636;font-size:1.25em;font-weight:700;line-height:1.25;padding:.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#485fc7}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-left:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#485fc7;color:#363636}.panel-block.is-active .panel-icon{color:#485fc7}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-left:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#485fc7;color:#485fc7}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-left:.5em}.tabs .icon:last-child{margin-right:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:0 0 4px 4px}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-right:-1px}.tabs.is-toggle li:first-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li:last-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li.is-active a{background-color:#485fc7;border-color:#485fc7;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-right:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-right:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-right:50%}.columns.is-mobile>.column.is-offset-one-third{margin-right:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-right:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-right:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-right:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-right:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-right:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-right:0}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-right:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-right:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-right:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-right:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-right:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-right:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-right:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-right:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-right:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-right:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-right:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-right:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-right:75%}.column.is-offset-two-thirds-mobile{margin-right:66.6666%}.column.is-offset-half-mobile{margin-right:50%}.column.is-offset-one-third-mobile{margin-right:33.3333%}.column.is-offset-one-quarter-mobile{margin-right:25%}.column.is-offset-one-fifth-mobile{margin-right:20%}.column.is-offset-two-fifths-mobile{margin-right:40%}.column.is-offset-three-fifths-mobile{margin-right:60%}.column.is-offset-four-fifths-mobile{margin-right:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-right:0}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-right:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-right:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-right:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-right:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-right:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-right:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-right:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-right:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-right:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-right:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-right:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-right:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-right:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-right:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-right:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-right:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-right:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-right:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-right:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-right:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-right:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-right:0}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-right:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-right:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-right:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-right:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-right:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-right:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-right:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-right:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-right:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-right:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-right:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-right:100%}}@media screen and (max-width:1023px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-right:75%}.column.is-offset-two-thirds-touch{margin-right:66.6666%}.column.is-offset-half-touch{margin-right:50%}.column.is-offset-one-third-touch{margin-right:33.3333%}.column.is-offset-one-quarter-touch{margin-right:25%}.column.is-offset-one-fifth-touch{margin-right:20%}.column.is-offset-two-fifths-touch{margin-right:40%}.column.is-offset-three-fifths-touch{margin-right:60%}.column.is-offset-four-fifths-touch{margin-right:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-right:0}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-right:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-right:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-right:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-right:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-right:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-right:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-right:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-right:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-right:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-right:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-right:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-right:100%}}@media screen and (min-width:1024px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-right:75%}.column.is-offset-two-thirds-desktop{margin-right:66.6666%}.column.is-offset-half-desktop{margin-right:50%}.column.is-offset-one-third-desktop{margin-right:33.3333%}.column.is-offset-one-quarter-desktop{margin-right:25%}.column.is-offset-one-fifth-desktop{margin-right:20%}.column.is-offset-two-fifths-desktop{margin-right:40%}.column.is-offset-three-fifths-desktop{margin-right:60%}.column.is-offset-four-fifths-desktop{margin-right:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-right:0}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-right:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-right:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-right:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-right:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-right:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-right:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-right:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-right:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-right:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-right:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-right:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-right:100%}}@media screen and (min-width:1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-right:75%}.column.is-offset-two-thirds-widescreen{margin-right:66.6666%}.column.is-offset-half-widescreen{margin-right:50%}.column.is-offset-one-third-widescreen{margin-right:33.3333%}.column.is-offset-one-quarter-widescreen{margin-right:25%}.column.is-offset-one-fifth-widescreen{margin-right:20%}.column.is-offset-two-fifths-widescreen{margin-right:40%}.column.is-offset-three-fifths-widescreen{margin-right:60%}.column.is-offset-four-fifths-widescreen{margin-right:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-right:0}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-right:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-right:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-right:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-right:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-right:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-right:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-right:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-right:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-right:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-right:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-right:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-right:100%}}@media screen and (min-width:1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-right:75%}.column.is-offset-two-thirds-fullhd{margin-right:66.6666%}.column.is-offset-half-fullhd{margin-right:50%}.column.is-offset-one-third-fullhd{margin-right:33.3333%}.column.is-offset-one-quarter-fullhd{margin-right:25%}.column.is-offset-one-fifth-fullhd{margin-right:20%}.column.is-offset-two-fifths-fullhd{margin-right:40%}.column.is-offset-three-fifths-fullhd{margin-right:60%}.column.is-offset-four-fifths-fullhd{margin-right:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-right:0}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-right:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-right:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-right:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-right:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-right:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-right:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-right:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-right:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-right:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-right:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-right:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-right:100%}}.columns{margin-right:-.75rem;margin-left:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-right:0;margin-left:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1024px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-right:calc(-1 * var(--columnGap));margin-left:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}@media screen and (max-width:768px){.columns.is-variable.is-0-mobile{--columnGap:0rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-0-tablet{--columnGap:0rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-0-tablet-only{--columnGap:0rem}}@media screen and (max-width:1023px){.columns.is-variable.is-0-touch{--columnGap:0rem}}@media screen and (min-width:1024px){.columns.is-variable.is-0-desktop{--columnGap:0rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-0-desktop-only{--columnGap:0rem}}@media screen and (min-width:1216px){.columns.is-variable.is-0-widescreen{--columnGap:0rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-0-widescreen-only{--columnGap:0rem}}@media screen and (min-width:1408px){.columns.is-variable.is-0-fullhd{--columnGap:0rem}}.columns.is-variable.is-1{--columnGap:0.25rem}@media screen and (max-width:768px){.columns.is-variable.is-1-mobile{--columnGap:0.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-1-tablet{--columnGap:0.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-1-tablet-only{--columnGap:0.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-1-touch{--columnGap:0.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-1-desktop{--columnGap:0.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-1-desktop-only{--columnGap:0.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-1-widescreen{--columnGap:0.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-1-widescreen-only{--columnGap:0.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-1-fullhd{--columnGap:0.25rem}}.columns.is-variable.is-2{--columnGap:0.5rem}@media screen and (max-width:768px){.columns.is-variable.is-2-mobile{--columnGap:0.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-2-tablet{--columnGap:0.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-2-tablet-only{--columnGap:0.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-2-touch{--columnGap:0.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-2-desktop{--columnGap:0.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-2-desktop-only{--columnGap:0.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-2-widescreen{--columnGap:0.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-2-widescreen-only{--columnGap:0.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-2-fullhd{--columnGap:0.5rem}}.columns.is-variable.is-3{--columnGap:0.75rem}@media screen and (max-width:768px){.columns.is-variable.is-3-mobile{--columnGap:0.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-3-tablet{--columnGap:0.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-3-tablet-only{--columnGap:0.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-3-touch{--columnGap:0.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-3-desktop{--columnGap:0.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-3-desktop-only{--columnGap:0.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-3-widescreen{--columnGap:0.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-3-widescreen-only{--columnGap:0.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-3-fullhd{--columnGap:0.75rem}}.columns.is-variable.is-4{--columnGap:1rem}@media screen and (max-width:768px){.columns.is-variable.is-4-mobile{--columnGap:1rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-4-tablet{--columnGap:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-4-tablet-only{--columnGap:1rem}}@media screen and (max-width:1023px){.columns.is-variable.is-4-touch{--columnGap:1rem}}@media screen and (min-width:1024px){.columns.is-variable.is-4-desktop{--columnGap:1rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-4-desktop-only{--columnGap:1rem}}@media screen and (min-width:1216px){.columns.is-variable.is-4-widescreen{--columnGap:1rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-4-widescreen-only{--columnGap:1rem}}@media screen and (min-width:1408px){.columns.is-variable.is-4-fullhd{--columnGap:1rem}}.columns.is-variable.is-5{--columnGap:1.25rem}@media screen and (max-width:768px){.columns.is-variable.is-5-mobile{--columnGap:1.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-5-tablet{--columnGap:1.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-5-tablet-only{--columnGap:1.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-5-touch{--columnGap:1.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-5-desktop{--columnGap:1.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-5-desktop-only{--columnGap:1.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-5-widescreen{--columnGap:1.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-5-widescreen-only{--columnGap:1.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-5-fullhd{--columnGap:1.25rem}}.columns.is-variable.is-6{--columnGap:1.5rem}@media screen and (max-width:768px){.columns.is-variable.is-6-mobile{--columnGap:1.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-6-tablet{--columnGap:1.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-6-tablet-only{--columnGap:1.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-6-touch{--columnGap:1.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-6-desktop{--columnGap:1.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-6-desktop-only{--columnGap:1.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-6-widescreen{--columnGap:1.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-6-widescreen-only{--columnGap:1.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-6-fullhd{--columnGap:1.5rem}}.columns.is-variable.is-7{--columnGap:1.75rem}@media screen and (max-width:768px){.columns.is-variable.is-7-mobile{--columnGap:1.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-7-tablet{--columnGap:1.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-7-tablet-only{--columnGap:1.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-7-touch{--columnGap:1.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-7-desktop{--columnGap:1.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-7-desktop-only{--columnGap:1.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-7-widescreen{--columnGap:1.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-7-widescreen-only{--columnGap:1.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-7-fullhd{--columnGap:1.75rem}}.columns.is-variable.is-8{--columnGap:2rem}@media screen and (max-width:768px){.columns.is-variable.is-8-mobile{--columnGap:2rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-8-tablet{--columnGap:2rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-8-tablet-only{--columnGap:2rem}}@media screen and (max-width:1023px){.columns.is-variable.is-8-touch{--columnGap:2rem}}@media screen and (min-width:1024px){.columns.is-variable.is-8-desktop{--columnGap:2rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-8-desktop-only{--columnGap:2rem}}@media screen and (min-width:1216px){.columns.is-variable.is-8-widescreen{--columnGap:2rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-8-widescreen-only{--columnGap:2rem}}@media screen and (min-width:1408px){.columns.is-variable.is-8-fullhd{--columnGap:2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-primary-light{color:#ebfffc!important}a.has-text-primary-light:focus,a.has-text-primary-light:hover{color:#b8fff4!important}.has-background-primary-light{background-color:#ebfffc!important}.has-text-primary-dark{color:#00947e!important}a.has-text-primary-dark:focus,a.has-text-primary-dark:hover{color:#00c7a9!important}.has-background-primary-dark{background-color:#00947e!important}.has-text-link{color:#485fc7!important}a.has-text-link:focus,a.has-text-link:hover{color:#3449a8!important}.has-background-link{background-color:#485fc7!important}.has-text-link-light{color:#eff1fa!important}a.has-text-link-light:focus,a.has-text-link-light:hover{color:#c8cfee!important}.has-background-link-light{background-color:#eff1fa!important}.has-text-link-dark{color:#3850b7!important}a.has-text-link-dark:focus,a.has-text-link-dark:hover{color:#576dcb!important}.has-background-link-dark{background-color:#3850b7!important}.has-text-info{color:#3e8ed0!important}a.has-text-info:focus,a.has-text-info:hover{color:#2b74b1!important}.has-background-info{background-color:#3e8ed0!important}.has-text-info-light{color:#eff5fb!important}a.has-text-info-light:focus,a.has-text-info-light:hover{color:#c6ddf1!important}.has-background-info-light{background-color:#eff5fb!important}.has-text-info-dark{color:#296fa8!important}a.has-text-info-dark:focus,a.has-text-info-dark:hover{color:#368ace!important}.has-background-info-dark{background-color:#296fa8!important}.has-text-success{color:#48c78e!important}a.has-text-success:focus,a.has-text-success:hover{color:#34a873!important}.has-background-success{background-color:#48c78e!important}.has-text-success-light{color:#effaf5!important}a.has-text-success-light:focus,a.has-text-success-light:hover{color:#c8eedd!important}.has-background-success-light{background-color:#effaf5!important}.has-text-success-dark{color:#257953!important}a.has-text-success-dark:focus,a.has-text-success-dark:hover{color:#31a06e!important}.has-background-success-dark{background-color:#257953!important}.has-text-warning{color:#ffe08a!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd257!important}.has-background-warning{background-color:#ffe08a!important}.has-text-warning-light{color:#fffaeb!important}a.has-text-warning-light:focus,a.has-text-warning-light:hover{color:#ffecb8!important}.has-background-warning-light{background-color:#fffaeb!important}.has-text-warning-dark{color:#946c00!important}a.has-text-warning-dark:focus,a.has-text-warning-dark:hover{color:#c79200!important}.has-background-warning-dark{background-color:#946c00!important}.has-text-danger{color:#f14668!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ee1742!important}.has-background-danger{background-color:#f14668!important}.has-text-danger-light{color:#feecf0!important}a.has-text-danger-light:focus,a.has-text-danger-light:hover{color:#fabdc9!important}.has-background-danger-light{background-color:#feecf0!important}.has-text-danger-dark{color:#cc0f35!important}a.has-text-danger-dark:focus,a.has-text-danger-dark:hover{color:#ee2049!important}.has-background-danger-dark{background-color:#cc0f35!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.is-flex-direction-row{flex-direction:row!important}.is-flex-direction-row-reverse{flex-direction:row-reverse!important}.is-flex-direction-column{flex-direction:column!important}.is-flex-direction-column-reverse{flex-direction:column-reverse!important}.is-flex-wrap-nowrap{flex-wrap:nowrap!important}.is-flex-wrap-wrap{flex-wrap:wrap!important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse!important}.is-justify-content-flex-start{justify-content:flex-start!important}.is-justify-content-flex-end{justify-content:flex-end!important}.is-justify-content-center{justify-content:center!important}.is-justify-content-space-between{justify-content:space-between!important}.is-justify-content-space-around{justify-content:space-around!important}.is-justify-content-space-evenly{justify-content:space-evenly!important}.is-justify-content-start{justify-content:start!important}.is-justify-content-end{justify-content:end!important}.is-justify-content-left{justify-content:left!important}.is-justify-content-right{justify-content:right!important}.is-align-content-flex-start{align-content:flex-start!important}.is-align-content-flex-end{align-content:flex-end!important}.is-align-content-center{align-content:center!important}.is-align-content-space-between{align-content:space-between!important}.is-align-content-space-around{align-content:space-around!important}.is-align-content-space-evenly{align-content:space-evenly!important}.is-align-content-stretch{align-content:stretch!important}.is-align-content-start{align-content:start!important}.is-align-content-end{align-content:end!important}.is-align-content-baseline{align-content:baseline!important}.is-align-items-stretch{align-items:stretch!important}.is-align-items-flex-start{align-items:flex-start!important}.is-align-items-flex-end{align-items:flex-end!important}.is-align-items-center{align-items:center!important}.is-align-items-baseline{align-items:baseline!important}.is-align-items-start{align-items:start!important}.is-align-items-end{align-items:end!important}.is-align-items-self-start{align-items:self-start!important}.is-align-items-self-end{align-items:self-end!important}.is-align-self-auto{align-self:auto!important}.is-align-self-flex-start{align-self:flex-start!important}.is-align-self-flex-end{align-self:flex-end!important}.is-align-self-center{align-self:center!important}.is-align-self-baseline{align-self:baseline!important}.is-align-self-stretch{align-self:stretch!important}.is-flex-grow-0{flex-grow:0!important}.is-flex-grow-1{flex-grow:1!important}.is-flex-grow-2{flex-grow:2!important}.is-flex-grow-3{flex-grow:3!important}.is-flex-grow-4{flex-grow:4!important}.is-flex-grow-5{flex-grow:5!important}.is-flex-shrink-0{flex-shrink:0!important}.is-flex-shrink-1{flex-shrink:1!important}.is-flex-shrink-2{flex-shrink:2!important}.is-flex-shrink-3{flex-shrink:3!important}.is-flex-shrink-4{flex-shrink:4!important}.is-flex-shrink-5{flex-shrink:5!important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.is-clickable{cursor:pointer!important;pointer-events:all!important}.is-clipped{overflow:hidden!important}.is-relative{position:relative!important}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.m-1{margin:.25rem!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.ml-1{margin-left:.25rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-2{margin:.5rem!important}.mt-2{margin-top:.5rem!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3{margin-left:.75rem!important}.mx-3{margin-left:.75rem!important;margin-right:.75rem!important}.my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.m-4{margin:1rem!important}.mt-4{margin-top:1rem!important}.mr-4{margin-right:1rem!important}.mb-4{margin-bottom:1rem!important}.ml-4{margin-left:1rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.my-4{margin-top:1rem!important;margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5{margin-left:1.5rem!important}.mx-5{margin-left:1.5rem!important;margin-right:1.5rem!important}.my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-6{margin:3rem!important}.mt-6{margin-top:3rem!important}.mr-6{margin-right:3rem!important}.mb-6{margin-bottom:3rem!important}.ml-6{margin-left:3rem!important}.mx-6{margin-left:3rem!important;margin-right:3rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.m-auto{margin:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.p-1{padding:.25rem!important}.pt-1{padding-top:.25rem!important}.pr-1{padding-right:.25rem!important}.pb-1{padding-bottom:.25rem!important}.pl-1{padding-left:.25rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-2{padding:.5rem!important}.pt-2{padding-top:.5rem!important}.pr-2{padding-right:.5rem!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-3{padding:.75rem!important}.pt-3{padding-top:.75rem!important}.pr-3{padding-right:.75rem!important}.pb-3{padding-bottom:.75rem!important}.pl-3{padding-left:.75rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.p-4{padding:1rem!important}.pt-4{padding-top:1rem!important}.pr-4{padding-right:1rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.p-5{padding:1.5rem!important}.pt-5{padding-top:1.5rem!important}.pr-5{padding-right:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.pl-5{padding-left:1.5rem!important}.px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-5{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-6{padding:3rem!important}.pt-6{padding-top:3rem!important}.pr-6{padding-right:3rem!important}.pb-6{padding-bottom:3rem!important}.pl-6{padding-left:3rem!important}.px-6{padding-left:3rem!important;padding-right:3rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.p-auto{padding:auto!important}.pt-auto{padding-top:auto!important}.pr-auto{padding-right:auto!important}.pb-auto{padding-bottom:auto!important}.pl-auto{padding-left:auto!important}.px-auto{padding-left:auto!important;padding-right:auto!important}.py-auto{padding-top:auto!important;padding-bottom:auto!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1023px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1024px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1216px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1408px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1023px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1024px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1216px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1408px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1023px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1024px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1216px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1408px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1023px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1024px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1216px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1408px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1023px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1024px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1216px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1408px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.is-underlined{text-decoration:underline!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-medium{font-weight:500!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-family-primary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-secondary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-sans-serif{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-monospace{font-family:monospace!important}.is-family-code{font-family:monospace!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1023px){.is-block-touch{display:block!important}}@media screen and (min-width:1024px){.is-block-desktop{display:block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1216px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1408px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1023px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1024px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1216px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1408px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1023px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1024px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1216px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1408px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1023px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1024px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1216px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1408px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1023px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1024px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1216px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1408px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}.is-sr-only{border:none!important;clip:rect(0,0,0,0)!important;height:.01em!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:.01em!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1023px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1024px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1216px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1408px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1023px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1024px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1216px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1408px){.is-invisible-fullhd{visibility:hidden!important}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1023px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff!important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a!important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,.7)}.hero.is-light .subtitle{color:rgba(0,0,0,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.hero.is-light .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5!important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#fff}.hero.is-dark .subtitle{color:rgba(255,255,255,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(255,255,255,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#fff}.hero.is-dark .tabs a{color:#fff;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{color:#363636!important;opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{color:#00d1b2!important;opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#485fc7;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#485fc7}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#3a51bb;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#485fc7!important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#485fc7}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}}.hero.is-info{background-color:#3e8ed0;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#3e8ed0}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#3082c5;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#3e8ed0!important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3e8ed0}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}}.hero.is-success{background-color:#48c78e;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-success .navbar-menu{background-color:#48c78e}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#3abb81;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#48c78e!important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#48c78e}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}}.hero.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-warning .navbar-menu{background-color:#ffe08a}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffe08a!important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffe08a}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}}.hero.is-danger{background-color:#f14668;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-danger .navbar-menu{background-color:#f14668}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ef2e55;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#f14668!important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#f14668}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}}.hero.is-small .hero-body{padding:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-left:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width:769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem} \ No newline at end of file diff --git a/pagetop/static/bulmix/css/bulma-rtl.min.css.map b/pagetop/static/bulmix/css/bulma-rtl.min.css.map new file mode 100644 index 00000000..731168fb --- /dev/null +++ b/pagetop/static/bulmix/css/bulma-rtl.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../bulma.sass","../sass/utilities/_all.sass","../sass/utilities/extends.sass","../sass/utilities/controls.sass","../sass/utilities/initial-variables.sass","bulma-rtl.css","../sass/utilities/mixins.sass","../sass/base/_all.sass","../sass/base/minireset.sass","../sass/base/generic.sass","../sass/utilities/derived-variables.sass","../sass/base/animations.sass","../sass/elements/_all.sass","../sass/elements/box.sass","../sass/elements/button.sass","../sass/utilities/functions.sass","../sass/elements/container.sass","../sass/elements/content.sass","../sass/elements/icon.sass","../sass/elements/image.sass","../sass/elements/notification.sass","../sass/elements/progress.sass","../sass/elements/table.sass","../sass/elements/tag.sass","../sass/elements/title.sass","../sass/elements/other.sass","../sass/form/_all.sass","../sass/form/shared.sass","../sass/form/input-textarea.sass","../sass/form/checkbox-radio.sass","../sass/form/select.sass","../sass/form/file.sass","../sass/form/tools.sass","../sass/components/_all.sass","../sass/components/breadcrumb.sass","../sass/components/card.sass","../sass/components/dropdown.sass","../sass/components/level.sass","../sass/components/media.sass","../sass/components/menu.sass","../sass/components/message.sass","../sass/components/modal.sass","../sass/components/navbar.sass","../sass/components/pagination.sass","../sass/components/panel.sass","../sass/components/tabs.sass","../sass/grid/_all.sass","../sass/grid/columns.sass","../sass/grid/tiles.sass","../sass/helpers/_all.sass","../sass/helpers/color.sass","../sass/helpers/flexbox.sass","../sass/helpers/float.sass","../sass/helpers/other.sass","../sass/helpers/overflow.sass","../sass/helpers/position.sass","../sass/helpers/spacing.sass","../sass/helpers/typography.sass","../sass/helpers/visibility.sass","../sass/layout/_all.sass","../sass/layout/hero.sass","../sass/layout/section.sass","../sass/layout/footer.sass"],"names":[],"mappings":"AACA,6DAAA;ACDA,oBAAA;ACEA;;;;;ECYE,qBAAqB;EACrB,wBAAwB;EACxB,mBAAmB;EACnB,6BAA+C;EAC/C,kBCmDU;EDlDV,gBAAgB;EAChB,oBAAoB;EACpB,eCgBW;EDfX,aAfoB;EAgBpB,2BAA2B;EAC3B,gBAhBuB;EAiBvB,iCAf+D;EAgB/D,gCAfkE;EAgBlE,iCAhBkE;EAiBlE,8BAlB+D;EAmB/D,kBAAkB;EAClB,mBAAmB;AENrB;;AFQE;;;;;;;;;;;;;;;;;EAIE,aAAa;AEQjB;;AFPE;;;;;;;;;;;;;;;;EAEE,mBAAmB;AEwBvB;;AH1DA;;;;EIoKE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;ADnGnB;;AHlEA;EIwKE,6BAD8B;EAE9B,kBAAkB;EAClB,eAAe;EACf,aAAa;EACb,YAAY;EACZ,cAAc;EACd,eAAe;EACf,qBAAqB;EACrB,oBAAoB;EACpB,kBAAkB;EAClB,QAAQ;EACR,yBAAyB;EACzB,wBAAwB;EACxB,cAAc;ADlGhB;;ACqGE;;EACE,qBFjJkB;ACgDtB;;AHlFA;EI2JE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EAwBjB,qBAAqB;EACrB,wBAAwB;EACxB,uCFrM2B;EEsM3B,YAAY;EACZ,qBFlIqB;EEmIrB,eAAe;EACf,oBAAoB;EACpB,qBAAqB;EACrB,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,WAAW;AD5Fb;;AC6FE;EAEE,uBF5M2B;EE6M3B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;AD3FnC;;AC4FE;EACE,WAAW;EACX,UAAU;ADzFd;;AC0FE;EACE,WAAW;EACX,UAAU;ADvFd;;ACwFE;EAEE,uCFzOyB;ACmJ7B;;ACuFE;EACE,uCF3OyB;ACuJ7B;;ACsFE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADnFf;;ACoFE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADjFf;;ACkFE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;AD/Ef;;AHnKA;EIqPE,mDAA2C;UAA3C,2CAA2C;EAC3C,yBF7P4B;EE8P5B,qBFjMqB;EEkMrB,+BAA+B;EAC/B,6BAA6B;EAC7B,WAAW;EACX,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,UAAU;AD9EZ;;AH7KA;;;;;;;;;;;;;;;;;EI8PE,SADuB;EAEvB,OAFuB;EAGvB,kBAAkB;EAClB,QAJuB;EAKvB,MALuB;ADxDzB;;AHlMA;EIgDE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;ADsJZ;;AEtOA,eAAA;ACAA,0EAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;EAuBE,SAAS;EACT,UAAU;AHyOZ;;AGtOA;;;;;;EAME,eAAe;EACf,mBAAmB;AHyOrB;;AGtOA;EACE,gBAAgB;AHyOlB;;AGtOA;;;;EAIE,SAAS;AHyOX;;AGtOA;EACE,sBAAsB;AHyOxB;;AGvOA;EAII,mBAAmB;AHuOvB;;AGpOA;;EAEE,YAAY;EACZ,eAAe;AHuOjB;;AGpOA;EACE,SAAS;AHuOX;;AGpOA;EACE,yBAAyB;EACzB,iBAAiB;AHuOnB;;AGrOA;;EAEE,UAAU;AHwOZ;;AG1OA;;EAII,mBAAmB;AH2OvB;;AGvQA;EChBE,uBLnB6B;EKoB7B,eAhCc;EAiCd,kCAAkC;EAClC,mCAAmC;EACnC,gBAlCoB;EAmCpB,kBAhCsB;EAiCtB,kBAhCsB;EAiCtB,kCApCiC;EAqCjC,8BAAsB;KAAtB,2BAAsB;UAAtB,sBAAsB;AJ2RxB;;AIzRA;;;;;;;EAOE,cAAc;AJ4RhB;;AI1RA;;;;;;EAME,oLL/ByL;AC4T3L;;AI3RA;;EAEE,6BAA6B;EAC7B,4BAA4B;EAC5B,sBLpC0B;ACkU5B;;AI5RA;EACE,cL7D4B;EK8D5B,cA1DkB;EA2DlB,gBL7BiB;EK8BjB,gBA1DoB;AJyVtB;;AI3RA;EACE,cLtDgC;EKuDhC,eAAe;EACf,qBAAqB;AJ8RvB;;AIjSA;EAKI,mBAAmB;AJgSvB;;AIrSA;EAOI,cL5E0B;AC8W9B;;AIhSA;EACE,4BLxE4B;EKyE5B,cCnBsB;EDoBtB,kBArEiB;EAsEjB,mBAvEkB;EAwElB,4BAzEgC;AJ4WlC;;AIjSA;EACE,4BL/E4B;EKgF5B,YAAY;EACZ,cAAc;EACd,WAxEa;EAyEb,gBAxEkB;AJ4WpB;;AIlSA;EACE,YAAY;EACZ,eAAe;AJqSjB;;AInSA;;EAEE,wBAAwB;AJsS1B;;AIpSA;EACE,kBAvFuB;AJ8XzB;;AIrSA;EACE,mBAAmB;EACnB,oBAAoB;AJwStB;;AItSA;EACE,cL5G4B;EK6G5B,gBLvEe;ACgXjB;;AIrSA;EACE,YAAY;AJwSd;;AItSA;EH5DE,iCAAiC;EG8DjC,4BL/G4B;EKgH5B,cLtH4B;EKuH5B,kBAjGqB;EAkGrB,gBAAgB;EAChB,uBAlG0B;EAmG1B,gBAAgB;EAChB,iBAAiB;AJySnB;;AIjTA;EAUI,6BAA6B;EAC7B,mBAAmB;EACnB,cAvGoB;EAwGpB,UAAU;AJ2Sd;;AIzSA;;EAGI,mBAAmB;AJ2SvB;;AI9SA;;EAKM,mBAAmB;AJ8SzB;;AInTA;EAOI,cL1I0B;AC0b9B;;AMhcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AMzcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AOzcA,mBAAA;ACWA;EAEE,uBTE6B;ESD7B,kBTwDgB;ESvDhB,0FTb2B;ESc3B,cTT4B;ESU5B,cAAc;EACd,gBAZmB;AR6crB;;AQ/bA;EAGI,yETD8B;ACiclC;;AQncA;EAKI,oETH8B;ACqclC;;AShaA;EAGE,uBV/C6B;EUgD7B,qBVrD4B;EUsD5B,iBX3DwB;EW4DxB,cV3D4B;EU4D5B,eAAe;EAGf,uBAAuB;EACvB,iCA5D6D;EA6D7D,iBA5D6B;EA6D7B,kBA7D6B;EA8D7B,8BA/D6D;EAgE7D,kBAAkB;EAClB,mBAAmB;AT+ZrB;;AS/aA;EAkBI,cAAc;ATialB;;ASnbA;EAwBM,aAAa;EACb,YAAY;AT+ZlB;;ASxbA;ER+FI,gCQpEsG;ERoEtG,mBQnEmE;ATiavE;;AS7bA;ER+FI,oBQjEmE;ERiEnE,+BQhEsG;ATma1G;;ASlcA;EAiCM,+BAAiF;EACjF,gCAAkF;ATqaxF;;ASvcA;EAsCI,qBVxF0B;EUyF1B,cV5F0B;ACigB9B;;AS5cA;EA0CI,qBV/E8B;EUgF9B,cVhG0B;ACsgB9B;;ASjdA;EA6CM,iDVlF4B;AC0flC;;ASrdA;EAgDI,qBVpG0B;EUqG1B,cVtG0B;AC+gB9B;;AS1dA;EAoDI,6BAA6B;EAC7B,yBAAyB;EACzB,cV1G0B;EU2G1B,0BAzF8B;ATmgBlC;;ASjeA;EA4DM,4BV1GwB;EU2GxB,cVlHwB;AC2hB9B;;ASteA;EAgEM,yBCd2B;EDe3B,cVtHwB;ACgiB9B;;AS3eA;;EAoEM,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;AT4atB;;ASlfA;EAwEI,gBAtG0B;EAuG1B,yBAtGmC;EAuGnC,cV/G8B;EUgH9B,qBAtG0B;ATohB9B;;ASzfA;EA8EM,cVnH4B;EUoH5B,0BAxGmC;ATuhBzC;;AS9fA;EAoFM,uBVhIyB;EUiIzB,yBAAyB;EACzB,cV/IuB;AC6jB7B;;ASpgBA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,cVpJqB;ACmkB7B;;AS1gBA;EA8FQ,yBAAyB;EACzB,cVxJqB;ACwkB7B;;AS/gBA;EAiGU,mDV7IqB;AC+jB/B;;ASnhBA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,cV/JqB;ACklB7B;;ASzhBA;;EAyGQ,uBVrJuB;EUsJvB,yBAAyB;EACzB,gBAAgB;ATqbxB;;AShiBA;EA6GQ,yBVtKqB;EUuKrB,YV1JuB;ACilB/B;;ASriBA;EAiHU,uBC/DuB;AVufjC;;ASziBA;;EAoHU,yBV7KmB;EU8KnB,yBAAyB;EACzB,gBAAgB;EAChB,YVnKqB;AC6lB/B;;ASjjBA;EA0HU,gEAA4E;AT2btF;;ASrjBA;EA4HQ,6BAA6B;EAC7B,mBVzKuB;EU0KvB,YV1KuB;ACumB/B;;AS3jBA;EAmIU,uBV/KqB;EUgLrB,mBVhLqB;EUiLrB,cV9LmB;AC0nB7B;;ASjkBA;EAwIY,4DAA8D;AT6b1E;;ASrkBA;EA8Ic,gEAA4E;AT2b1F;;ASzkBA;;EAiJU,6BAA6B;EAC7B,mBV9LqB;EU+LrB,gBAAgB;EAChB,YVhMqB;AC6nB/B;;ASjlBA;EAsJQ,6BAA6B;EAC7B,qBVhNqB;EUiNrB,cVjNqB;ACgpB7B;;ASvlBA;EA6JU,yBVtNmB;EUuNnB,YV1MqB;ACwoB/B;;AS5lBA;EAqKc,4DAA8D;AT2b5E;;AShmBA;;EAwKU,6BAA6B;EAC7B,qBVlOmB;EUmOnB,gBAAgB;EAChB,cVpOmB;ACiqB7B;;ASxmBA;EAoFM,yBV7IuB;EU8IvB,yBAAyB;EACzB,YVlIyB;AC0pB/B;;AS9mBA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,YVvIuB;ACgqB/B;;ASpnBA;EA8FQ,yBAAyB;EACzB,YV3IuB;ACqqB/B;;ASznBA;EAiGU,gDV1JmB;ACsrB7B;;AS7nBA;EAoGQ,uBClDyB;EDmDzB,yBAAyB;EACzB,YVlJuB;AC+qB/B;;ASnoBA;;EAyGQ,yBVlKqB;EUmKrB,yBAAyB;EACzB,gBAAgB;AT+hBxB;;AS1oBA;EA6GQ,uBVzJuB;EU0JvB,cVvKqB;ACwsB7B;;AS/oBA;EAiHU,yBC/DuB;AVimBjC;;ASnpBA;;EAoHU,uBVhKqB;EUiKrB,yBAAyB;EACzB,gBAAgB;EAChB,cVhLmB;ACotB7B;;AS3pBA;EA0HU,4DAA4E;ATqiBtF;;AS/pBA;EA4HQ,6BAA6B;EAC7B,qBVtLqB;EUuLrB,cVvLqB;AC8tB7B;;ASrqBA;EAmIU,yBV5LmB;EU6LnB,qBV7LmB;EU8LnB,YVjLqB;ACutB/B;;AS3qBA;EAwIY,gEAA8D;ATuiB1E;;AS/qBA;EA8Ic,4DAA4E;ATqiB1F;;ASnrBA;;EAiJU,6BAA6B;EAC7B,qBV3MmB;EU4MnB,gBAAgB;EAChB,cV7MmB;ACovB7B;;AS3rBA;EAsJQ,6BAA6B;EAC7B,mBVnMuB;EUoMvB,YVpMuB;AC6uB/B;;ASjsBA;EA6JU,uBVzMqB;EU0MrB,cVvNmB;AC+vB7B;;AStsBA;EAqKc,gEAA8D;ATqiB5E;;AS1sBA;;EAwKU,6BAA6B;EAC7B,mBVrNqB;EUsNrB,gBAAgB;EAChB,YVvNqB;AC8vB/B;;ASltBA;EAoFM,4BVlIwB;EUmIxB,yBAAyB;EACzB,yBCjEe;AVmsBrB;;ASxtBA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,yBCtEa;AVysBrB;;AS9tBA;EA8FQ,yBAAyB;EACzB,yBC1Ea;AV8sBrB;;ASnuBA;EAiGU,mDV/IoB;ACqxB9B;;ASvuBA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,yBCjFa;AVwtBrB;;AS7uBA;;EAyGQ,4BVvJsB;EUwJtB,yBAAyB;EACzB,gBAAgB;ATyoBxB;;ASpvBA;EA6GQ,oCCxFa;EDyFb,iBV5JsB;ACuyB9B;;ASzvBA;EAiHU,oCC/DuB;AV2sBjC;;AS7vBA;;EAoHU,oCC/FW;EDgGX,yBAAyB;EACzB,gBAAgB;EAChB,iBVrKoB;ACmzB9B;;ASrwBA;EA0HU,sFAA4E;AT+oBtF;;ASzwBA;EA4HQ,6BAA6B;EAC7B,wBV3KsB;EU4KtB,iBV5KsB;AC6zB9B;;AS/wBA;EAmIU,4BVjLoB;EUkLpB,wBVlLoB;EUmLpB,yBChHW;AVgwBrB;;ASrxBA;EAwIY,sEAA8D;ATipB1E;;ASzxBA;EA8Ic,sFAA4E;AT+oB1F;;AS7xBA;;EAiJU,6BAA6B;EAC7B,wBVhMoB;EUiMpB,gBAAgB;EAChB,iBVlMoB;ACm1B9B;;ASryBA;EAsJQ,6BAA6B;EAC7B,gCClIa;EDmIb,yBCnIa;AVsxBrB;;AS3yBA;EA6JU,oCCxIW;EDyIX,iBV5MoB;AC81B9B;;AShzBA;EAqKc,sEAA8D;AT+oB5E;;ASpzBA;;EAwKU,6BAA6B;EAC7B,gCCpJW;EDqJX,gBAAgB;EAChB,yBCtJW;AVuyBrB;;AS5zBA;EAoFM,yBVzIwB;EU0IxB,yBAAyB;EACzB,WC/DU;AV2yBhB;;ASl0BA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVizBhB;;ASx0BA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVszBhB;;AS70BA;EAiGU,gDVtJoB;ACs4B9B;;ASj1BA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVg0BhB;;ASv1BA;;EAyGQ,yBV9JsB;EU+JtB,yBAAyB;EACzB,gBAAgB;ATmvBxB;;AS91BA;EA6GQ,sBCtFQ;EDuFR,cVnKsB;ACw5B9B;;ASn2BA;EAiHU,yBC/DuB;AVqzBjC;;ASv2BA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV5KoB;ACo6B9B;;AS/2BA;EA0HU,0DAA4E;ATyvBtF;;ASn3BA;EA4HQ,6BAA6B;EAC7B,qBVlLsB;EUmLtB,cVnLsB;AC86B9B;;ASz3BA;EAmIU,yBVxLoB;EUyLpB,qBVzLoB;EU0LpB,WC9GM;AVw2BhB;;AS/3BA;EAwIY,gEAA8D;AT2vB1E;;ASn4BA;EA8Ic,0DAA4E;ATyvB1F;;ASv4BA;;EAiJU,6BAA6B;EAC7B,qBVvMoB;EUwMpB,gBAAgB;EAChB,cVzMoB;ACo8B9B;;AS/4BA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AV83BhB;;ASr5BA;EA6JU,sBCtIM;EDuIN,cVnNoB;AC+8B9B;;AS15BA;EAqKc,gEAA8D;ATyvB5E;;AS95BA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AV+4BhB;;ASt6BA;EAoFM,yBV3H4B;EU4H5B,yBAAyB;EACzB,WC/DU;AVq5BhB;;AS56BA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AV25BhB;;ASl7BA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVg6BhB;;ASv7BA;EAiGU,iDVxIwB;ACk+BlC;;AS37BA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AV06BhB;;ASj8BA;;EAyGQ,yBVhJ0B;EUiJ1B,yBAAyB;EACzB,gBAAgB;AT61BxB;;ASx8BA;EA6GQ,sBCtFQ;EDuFR,cVrJ0B;ACo/BlC;;AS78BA;EAiHU,yBC/DuB;AV+5BjC;;ASj9BA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV9JwB;ACggClC;;ASz9BA;EA0HU,0DAA4E;ATm2BtF;;AS79BA;EA4HQ,6BAA6B;EAC7B,qBVpK0B;EUqK1B,cVrK0B;AC0gClC;;ASn+BA;EAmIU,yBV1KwB;EU2KxB,qBV3KwB;EU4KxB,WC9GM;AVk9BhB;;ASz+BA;EAwIY,gEAA8D;ATq2B1E;;AS7+BA;EA8Ic,0DAA4E;ATm2B1F;;ASj/BA;;EAiJU,6BAA6B;EAC7B,qBVzLwB;EU0LxB,gBAAgB;EAChB,cV3LwB;ACgiClC;;ASz/BA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AVw+BhB;;AS//BA;EA6JU,sBCtIM;EDuIN,cVrMwB;AC2iClC;;ASpgCA;EAqKc,gEAA8D;ATm2B5E;;ASxgCA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AVy/BhB;;AShhCA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AV8+BrE;;ASrhCA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AVo/BrE;;AS3hCA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AV0/BrE;;ASjiCA;EAoFM,yBVzH4B;EU0H5B,yBAAyB;EACzB,WC/DU;AVghChB;;ASviCA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVshChB;;AS7iCA;EA8FQ,yBAAyB;EACzB,WCxEQ;AV2hChB;;ASljCA;EAiGU,iDVtIwB;AC2lClC;;AStjCA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVqiChB;;AS5jCA;;EAyGQ,yBV9I0B;EU+I1B,yBAAyB;EACzB,gBAAgB;ATw9BxB;;ASnkCA;EA6GQ,sBCtFQ;EDuFR,cVnJ0B;AC6mClC;;ASxkCA;EAiHU,yBC/DuB;AV0hCjC;;AS5kCA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV5JwB;ACynClC;;ASplCA;EA0HU,0DAA4E;AT89BtF;;ASxlCA;EA4HQ,6BAA6B;EAC7B,qBVlK0B;EUmK1B,cVnK0B;ACmoClC;;AS9lCA;EAmIU,yBVxKwB;EUyKxB,qBVzKwB;EU0KxB,WC9GM;AV6kChB;;ASpmCA;EAwIY,gEAA8D;ATg+B1E;;ASxmCA;EA8Ic,0DAA4E;AT89B1F;;AS5mCA;;EAiJU,6BAA6B;EAC7B,qBVvLwB;EUwLxB,gBAAgB;EAChB,cVzLwB;ACypClC;;ASpnCA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AVmmChB;;AS1nCA;EA6JU,sBCtIM;EDuIN,cVnMwB;ACoqClC;;AS/nCA;EAqKc,gEAA8D;AT89B5E;;ASnoCA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AVonChB;;AS3oCA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AVymCrE;;AShpCA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AV+mCrE;;AStpCA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVqnCrE;;AS5pCA;EAoFM,yBV1H4B;EU2H5B,yBAAyB;EACzB,WC/DU;AV2oChB;;ASlqCA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVipChB;;ASxqCA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVspChB;;AS7qCA;EAiGU,kDVvIwB;ACutClC;;ASjrCA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVgqChB;;ASvrCA;;EAyGQ,yBV/I0B;EUgJ1B,yBAAyB;EACzB,gBAAgB;ATmlCxB;;AS9rCA;EA6GQ,sBCtFQ;EDuFR,cVpJ0B;ACyuClC;;ASnsCA;EAiHU,yBC/DuB;AVqpCjC;;ASvsCA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV7JwB;ACqvClC;;AS/sCA;EA0HU,0DAA4E;ATylCtF;;ASntCA;EA4HQ,6BAA6B;EAC7B,qBVnK0B;EUoK1B,cVpK0B;AC+vClC;;ASztCA;EAmIU,yBVzKwB;EU0KxB,qBV1KwB;EU2KxB,WC9GM;AVwsChB;;AS/tCA;EAwIY,gEAA8D;AT2lC1E;;ASnuCA;EA8Ic,0DAA4E;ATylC1F;;ASvuCA;;EAiJU,6BAA6B;EAC7B,qBVxLwB;EUyLxB,gBAAgB;EAChB,cV1LwB;ACqxClC;;AS/uCA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AV8tChB;;ASrvCA;EA6JU,sBCtIM;EDuIN,cVpMwB;ACgyClC;;AS1vCA;EAqKc,gEAA8D;ATylC5E;;AS9vCA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AV+uChB;;AStwCA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AVouCrE;;AS3wCA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AV0uCrE;;ASjxCA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVgvCrE;;ASvxCA;EAoFM,yBV5H4B;EU6H5B,yBAAyB;EACzB,WC/DU;AVswChB;;AS7xCA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AV4wChB;;ASnyCA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVixChB;;ASxyCA;EAiGU,kDVzIwB;ACo1ClC;;AS5yCA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AV2xChB;;ASlzCA;;EAyGQ,yBVjJ0B;EUkJ1B,yBAAyB;EACzB,gBAAgB;AT8sCxB;;ASzzCA;EA6GQ,sBCtFQ;EDuFR,cVtJ0B;ACs2ClC;;AS9zCA;EAiHU,yBC/DuB;AVgxCjC;;ASl0CA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV/JwB;ACk3ClC;;AS10CA;EA0HU,0DAA4E;ATotCtF;;AS90CA;EA4HQ,6BAA6B;EAC7B,qBVrK0B;EUsK1B,cVtK0B;AC43ClC;;ASp1CA;EAmIU,yBV3KwB;EU4KxB,qBV5KwB;EU6KxB,WC9GM;AVm0ChB;;AS11CA;EAwIY,gEAA8D;ATstC1E;;AS91CA;EA8Ic,0DAA4E;ATotC1F;;ASl2CA;;EAiJU,6BAA6B;EAC7B,qBV1LwB;EU2LxB,gBAAgB;EAChB,cV5LwB;ACk5ClC;;AS12CA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AVy1ChB;;ASh3CA;EA6JU,sBCtIM;EDuIN,cVtMwB;AC65ClC;;ASr3CA;EAqKc,gEAA8D;ATotC5E;;ASz3CA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AV02ChB;;ASj4CA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AV+1CrE;;ASt4CA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AVq2CrE;;AS54CA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AV22CrE;;ASl5CA;EAoFM,yBV7H4B;EU8H5B,yBAAyB;EACzB,yBCjEe;AVm4CrB;;ASx5CA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,yBCtEa;AVy4CrB;;AS95CA;EA8FQ,yBAAyB;EACzB,yBC1Ea;AV84CrB;;ASn6CA;EAiGU,mDV1IwB;ACg9ClC;;ASv6CA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,yBCjFa;AVw5CrB;;AS76CA;;EAyGQ,yBVlJ0B;EUmJ1B,yBAAyB;EACzB,gBAAgB;ATy0CxB;;ASp7CA;EA6GQ,oCCxFa;EDyFb,cVvJ0B;ACk+ClC;;ASz7CA;EAiHU,oCC/DuB;AV24CjC;;AS77CA;;EAoHU,oCC/FW;EDgGX,yBAAyB;EACzB,gBAAgB;EAChB,cVhKwB;AC8+ClC;;ASr8CA;EA0HU,sFAA4E;AT+0CtF;;ASz8CA;EA4HQ,6BAA6B;EAC7B,qBVtK0B;EUuK1B,cVvK0B;ACw/ClC;;AS/8CA;EAmIU,yBV5KwB;EU6KxB,qBV7KwB;EU8KxB,yBChHW;AVg8CrB;;ASr9CA;EAwIY,gEAA8D;ATi1C1E;;ASz9CA;EA8Ic,sFAA4E;AT+0C1F;;AS79CA;;EAiJU,6BAA6B;EAC7B,qBV3LwB;EU4LxB,gBAAgB;EAChB,cV7LwB;AC8gDlC;;ASr+CA;EAsJQ,6BAA6B;EAC7B,gCClIa;EDmIb,yBCnIa;AVs9CrB;;AS3+CA;EA6JU,oCCxIW;EDyIX,cVvMwB;ACyhDlC;;ASh/CA;EAqKc,gEAA8D;AT+0C5E;;ASp/CA;;EAwKU,6BAA6B;EAC7B,gCCpJW;EDqJX,gBAAgB;EAChB,yBCtJW;AVu+CrB;;AS5/CA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AV09CrE;;ASjgDA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AVg+CrE;;ASvgDA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVs+CrE;;AS7gDA;EAoFM,yBVvH2B;EUwH3B,yBAAyB;EACzB,WC/DU;AV4/ChB;;ASnhDA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVkgDhB;;ASzhDA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVugDhB;;AS9hDA;EAiGU,kDVpIuB;ACqkDjC;;ASliDA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVihDhB;;ASxiDA;;EAyGQ,yBV5IyB;EU6IzB,yBAAyB;EACzB,gBAAgB;ATo8CxB;;AS/iDA;EA6GQ,sBCtFQ;EDuFR,cVjJyB;ACulDjC;;ASpjDA;EAiHU,yBC/DuB;AVsgDjC;;ASxjDA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV1JuB;ACmmDjC;;AShkDA;EA0HU,0DAA4E;AT08CtF;;ASpkDA;EA4HQ,6BAA6B;EAC7B,qBVhKyB;EUiKzB,cVjKyB;AC6mDjC;;AS1kDA;EAmIU,yBVtKuB;EUuKvB,qBVvKuB;EUwKvB,WC9GM;AVyjDhB;;AShlDA;EAwIY,gEAA8D;AT48C1E;;ASplDA;EA8Ic,0DAA4E;AT08C1F;;ASxlDA;;EAiJU,6BAA6B;EAC7B,qBVrLuB;EUsLvB,gBAAgB;EAChB,cVvLuB;ACmoDjC;;AShmDA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AV+kDhB;;AStmDA;EA6JU,sBCtIM;EDuIN,cVjMuB;AC8oDjC;;AS3mDA;EAqKc,gEAA8D;AT08C5E;;AS/mDA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AVgmDhB;;ASvnDA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AVqlDrE;;AS5nDA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AV2lDrE;;ASloDA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVimDrE;;ASxoDA;EARE,kBVbc;ACiqDhB;;AStpDE;EACE,kBVkBc;ACuoDlB;;AShpDA;EANE,eVhBW;AC0qDb;;ASppDA;EAJE,kBVnBc;AC+qDhB;;ASxpDA;EAFE,iBVtBa;ACorDf;;AS5pDA;;EAyMI,uBVrP2B;EUsP3B,qBV3P0B;EU4P1B,gBAhOyB;EAiOzB,YAhOyB;ATwrD7B;;ASpqDA;EA8MI,aAAa;EACb,WAAW;AT09Cf;;ASzqDA;EAiNI,6BAA6B;EAC7B,oBAAoB;AT49CxB;;AS9qDA;ERlDE,kBAAkB;EAKhB,6BAAmC;EACnC,4BAAkC;EQkQhC,6BAA6B;AT+9CnC;;ASrrDA;EAwNI,4BVtQ0B;EUuQ1B,qBV1Q0B;EU2Q1B,cV7Q0B;EU8Q1B,gBAAgB;EAChB,oBAAoB;ATi+CxB;;AS7rDA;EA8NI,qBVlNmB;EUmNnB,gCAA0D;EAC1D,iCAA2D;ATm+C/D;;ASj+CA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;ATo+C7B;;ASx+CA;EAMI,qBAAqB;ATs+CzB;;AS5+CA;ERnII,mBQ2IwC;ATw+C5C;;ASh/CA;EAUI,sBAAsB;AT0+C1B;;ASp/CA;EAYI,mBAAmB;AT4+CvB;;ASx/CA;EA1OE,kBVbc;ACmvDhB;;ASxuDE;EACE,kBVkBc;ACytDlB;;AShgDA;EAtOE,kBVnBc;AC6vDhB;;ASpgDA;EApOE,iBVtBa;ACkwDf;;ASxgDA;EA0BQ,4BAA4B;EAC5B,yBAAyB;ATk/CjC;;AS7gDA;EA6BQ,6BAA6B;EAC7B,0BAA0B;ERjK9B,iBQkKwC;ATo/C5C;;ASnhDA;ERnII,cQoKqC;ATs/CzC;;ASvhDA;EAoCQ,UAAU;ATu/ClB;;AS3hDA;EA0CQ,UAAU;ATq/ClB;;AS/hDA;EA4CU,UAAU;ATu/CpB;;ASniDA;EA8CQ,YAAY;EACZ,cAAc;ATy/CtB;;ASxiDA;EAiDI,uBAAuB;AT2/C3B;;AS5iDA;EAoDQ,oBAAoB;EACpB,qBAAqB;AT4/C7B;;ASjjDA;EAuDI,yBAAyB;AT8/C7B;;ASrjDA;EA0DQ,oBAAoB;EACpB,qBAAqB;AT+/C7B;;AWl1DA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,WAAW;AXq1Db;;AWz1DA;EAMI,0BAA0B;EAC1B,kBZyCM;EYxCN,mBZwCM;EYvCN,WAAW;AXu1Df;;ACxvDE;EUxGF;IAWI,gBAAuC;EX01DzC;AACF;;ACpvDI;EUlHJ;IAcM,iBAAqE;EX61DzE;AACF;;AC3uDI;EUjIJ;IAiBM,iBAAiE;EXg2DrE;AACF;;AC3vDI;EUvHJ;IAoBM,iBAAqE;EXm2DzE;AACF;;AClvDI;EUtIJ;IAuBM,iBAAiE;EXs2DrE;AACF;;AY92DA;EAII,kBAAkB;AZ82DtB;;AYl3DA;;;;;;;EAcM,kBAAkB;AZ82DxB;;AY53DA;;;;;;EAqBI,cbpC0B;EaqC1B,gBbAiB;EaCjB,kBAxC+B;AZw5DnC;;AYv4DA;EAyBI,cAAc;EACd,oBAAoB;AZk3DxB;;AY54DA;EA4BM,eAAe;AZo3DrB;;AYh5DA;EA8BI,iBAAiB;EACjB,uBAAuB;AZs3D3B;;AYr5DA;EAiCM,oBAAoB;AZw3D1B;;AYz5DA;EAmCI,gBAAgB;EAChB,uBAAuB;AZ03D3B;;AY95DA;EAsCM,oBAAoB;AZ43D1B;;AYl6DA;EAwCI,iBAAiB;EACjB,oBAAoB;AZ83DxB;;AYv6DA;EA2CI,kBAAkB;EAClB,uBAAuB;AZg4D3B;;AY56DA;EA8CI,cAAc;EACd,kBAAkB;AZk4DtB;;AYj7DA;EAiDI,4BbzD0B;EE6I1B,+BFhJ0B;Ea8D1B,qBAhEqC;AZo8DzC;;AYv7DA;EAqDI,4BAA4B;EXgF5B,iBW/EmC;EACnC,eAAe;AZs4DnB;;AY77DA;EAyDM,wBAAwB;AZw4D9B;;AYj8DA;EA2DQ,4BAA4B;AZ04DpC;;AYr8DA;EA6DQ,4BAA4B;AZ44DpC;;AYz8DA;EA+DQ,4BAA4B;AZ84DpC;;AY78DA;EAiEQ,4BAA4B;AZg5DpC;;AYj9DA;EAmEI,wBAAwB;EXkExB,iBWjEmC;EACnC,eAAe;AZk5DnB;;AYv9DA;EAuEM,uBAAuB;EACvB,iBAAiB;AZo5DvB;;AY59DA;EA0EQ,uBAAuB;AZs5D/B;;AYh+DA;EXqII,iBWzDmC;AZw5DvC;;AYp+DA;EA8EI,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;AZ05DtB;;AY1+DA;EAkFM,eAAe;AZ45DrB;;AY9+DA;EAoFM,kBAAkB;AZ85DxB;;AYl/DA;EAsFM,qBAAqB;AZg6D3B;;AYt/DA;EAwFM,kBAAkB;AZk6DxB;;AY1/DA;EXyCE,iCAAiC;EWkD/B,gBAAgB;EAChB,qBAvG8B;EAwG9B,gBAAgB;EAChB,iBAAiB;AZo6DrB;;AYlgEA;;EAiGI,cAAc;AZs6DlB;;AYvgEA;EAmGI,WAAW;AZw6Df;;AY3gEA;;EAsGM,yBbjHwB;EakHxB,qBA/GmC;EAgHnC,qBA/GmC;EAgHnC,mBAAmB;AZ06DzB;;AYnhEA;EA2GM,cb1HwB;ACsiE9B;;AYvhEA;EA6GQ,mBAAmB;AZ86D3B;;AY3hEA;;EAiHQ,qBAtHsC;EAuHtC,cbjIsB;ACgjE9B;;AYjiEA;;EAsHQ,qBAzHsC;EA0HtC,cbtIsB;ACsjE9B;;AYviEA;;EA6HY,sBAAsB;AZ+6DlC;;AY5iEA;EAgIM,aAAa;AZg7DnB;;AYhjEA;EAmII,kBblHY;ACmiEhB;;AYpjEA;EAqII,ebrHS;ACwiEb;;AYxjEA;EAuII,kBbxHY;AC6iEhB;;AY5jEA;EAyII,iBb3HW;ACkjEf;;Aa/kEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,cAVsB;EAWtB,aAXsB;Ab6lExB;;AavlEA;EAQI,YAbwB;EAcxB,WAdwB;AbimE5B;;Aa5lEA;EAWI,YAfyB;EAgBzB,WAhByB;AbqmE7B;;AajmEA;EAcI,YAjBwB;EAkBxB,WAlBwB;AbymE5B;;AarlEA;EACE,uBAAuB;EACvB,cAAc;EACd,oBAAoB;EACpB,eAAe;EACf,mBA5BsB;EA6BtB,mBAAmB;AbwlErB;;Aa9lEA;EAQI,YAAY;EACZ,cAAc;Ab0lElB;;AanmEA;EAcQ,mBAjCkB;Ab0nE1B;;AavmEA;EAmBQ,oBAtCkB;Ab8nE1B;;AatlEA;EACE,aAAa;AbylEf;;AcloEA;EACE,cAAc;EACd,kBAAkB;AdqoEpB;;AcvoEA;EAII,cAAc;EACd,YAAY;EACZ,WAAW;AduoEf;;Ac7oEA;EAQM,qBf2DiB;AC8kEvB;;AcjpEA;EAUI,WAAW;Ad2oEf;;AcrpEA;;;;;;;;;;;;;;;;;EA+BM,YAAY;EACZ,WAAW;Ad0oEjB;;Ac1qEA;EAmCI,iBAAiB;Ad2oErB;;Ac9qEA;EAqCI,gBAAgB;Ad6oEpB;;AclrEA;EAuCI,gBAAgB;Ad+oEpB;;ActrEA;EAyCI,qBAAqB;AdipEzB;;Ac1rEA;EA2CI,gBAAgB;AdmpEpB;;Ac9rEA;EA6CI,mBAAmB;AdqpEvB;;AclsEA;EA+CI,gBAAgB;AdupEpB;;ActsEA;EAiDI,qBAAqB;AdypEzB;;Ac1sEA;EAmDI,iBAAiB;Ad2pErB;;Ac9sEA;EAqDI,sBAAsB;Ad6pE1B;;AcltEA;EAuDI,iBAAiB;Ad+pErB;;ActtEA;EAyDI,sBAAsB;AdiqE1B;;Ac1tEA;EA2DI,sBAAsB;AdmqE1B;;Ac9tEA;EA6DI,iBAAiB;AdqqErB;;AcluEA;EA+DI,iBAAiB;AduqErB;;ActuEA;EAmEM,YAAwB;EACxB,WAAuB;AduqE7B;;Ac3uEA;EAmEM,YAAwB;EACxB,WAAuB;Ad4qE7B;;AchvEA;EAmEM,YAAwB;EACxB,WAAuB;AdirE7B;;AcrvEA;EAmEM,YAAwB;EACxB,WAAuB;AdsrE7B;;Ac1vEA;EAmEM,YAAwB;EACxB,WAAuB;Ad2rE7B;;Ac/vEA;EAmEM,YAAwB;EACxB,WAAuB;AdgsE7B;;AcpwEA;EAmEM,aAAwB;EACxB,YAAuB;AdqsE7B;;AelwEA;EAEE,4BhBA4B;EgBC5B,kBhBuDU;EgBtDV,kBAAkB;EAIhB,sCAZoD;Af6wExD;;AezwEA;EAUI,mBAAmB;EACnB,0BAA0B;AfmwE9B;;Ae9wEA;EAaI,mBAAmB;AfqwEvB;;AelxEA;;EAgBI,iBhBZ2B;ACmxE/B;;AevxEA;EAkBI,uBAAuB;AfywE3B;;Ae3xEA;EduJI,YcnI4B;EAC5B,kBAAkB;EAClB,WAAW;Af2wEf;;AejyEA;;;EA0BI,mBAAmB;Af6wEvB;;AevyEA;EAgCM,uBhB5ByB;EgB6BzB,chB1CuB;ACqzE7B;;Ae5yEA;EAgCM,yBhBzCuB;EgB0CvB,YhB7ByB;AC6yE/B;;AejzEA;EAgCM,4BhB9BwB;EgB+BxB,yBLoCe;AVivErB;;AetzEA;EAgCM,yBhBrCwB;EgBsCxB,WLsCU;AVovEhB;;Ae3zEA;EAgCM,yBhBvB4B;EgBwB5B,WLsCU;AVyvEhB;;Aeh0EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AV8uErE;;Aer0EA;EAgCM,yBhBrB4B;EgBsB5B,WLsCU;AVmwEhB;;Ae10EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVwvErE;;Ae/0EA;EAgCM,yBhBtB4B;EgBuB5B,WLsCU;AV6wEhB;;Aep1EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVkwErE;;Aez1EA;EAgCM,yBhBxB4B;EgByB5B,WLsCU;AVuxEhB;;Ae91EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AV4wErE;;Aen2EA;EAgCM,yBhBzB4B;EgB0B5B,yBLoCe;AVmyErB;;Aex2EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVsxErE;;Ae72EA;EAgCM,yBhBnB2B;EgBoB3B,WLsCU;AV2yEhB;;Ael3EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVgyErE;;AgBx3EA;EAEE,qBAAqB;EACrB,wBAAwB;EACxB,YAAY;EACZ,qBjBwDqB;EiBvDrB,cAAc;EACd,YjBoBW;EiBnBX,gBAAgB;EAChB,UAAU;EACV,WAAW;AhB03Eb;;AgBp4EA;EAYI,yBjBX2B;ACu4E/B;;AgBx4EA;EAcI,yBjBjB0B;AC+4E9B;;AgB54EA;EAgBI,yBjBnB0B;ACm5E9B;;AgBh5EA;EAkBI,yBjBrB0B;EiBsB1B,YAAY;AhBk4EhB;;AgBr5EA;EAyBQ,uBjBpBuB;ACo5E/B;;AgBz5EA;EA2BQ,uBjBtBuB;ACw5E/B;;AgB75EA;EA6BQ,uBjBxBuB;AC45E/B;;AgBj6EA;EA+BQ,mEAA2F;AhBs4EnG;;AgBr6EA;EAyBQ,yBjBjCqB;ACi7E7B;;AgBz6EA;EA2BQ,yBjBnCqB;ACq7E7B;;AgB76EA;EA6BQ,yBjBrCqB;ACy7E7B;;AgBj7EA;EA+BQ,qEAA2F;AhBs5EnG;;AgBr7EA;EAyBQ,4BjBtBsB;ACs7E9B;;AgBz7EA;EA2BQ,4BjBxBsB;AC07E9B;;AgB77EA;EA6BQ,4BjB1BsB;AC87E9B;;AgBj8EA;EA+BQ,wEAA2F;AhBs6EnG;;AgBr8EA;EAyBQ,yBjB7BsB;AC68E9B;;AgBz8EA;EA2BQ,yBjB/BsB;ACi9E9B;;AgB78EA;EA6BQ,yBjBjCsB;ACq9E9B;;AgBj9EA;EA+BQ,qEAA2F;AhBs7EnG;;AgBr9EA;EAyBQ,yBjBf0B;AC+8ElC;;AgBz9EA;EA2BQ,yBjBjB0B;ACm9ElC;;AgB79EA;EA6BQ,yBjBnB0B;ACu9ElC;;AgBj+EA;EA+BQ,qEAA2F;AhBs8EnG;;AgBr+EA;EAyBQ,yBjBb0B;AC69ElC;;AgBz+EA;EA2BQ,yBjBf0B;ACi+ElC;;AgB7+EA;EA6BQ,yBjBjB0B;ACq+ElC;;AgBj/EA;EA+BQ,qEAA2F;AhBs9EnG;;AgBr/EA;EAyBQ,yBjBd0B;AC8+ElC;;AgBz/EA;EA2BQ,yBjBhB0B;ACk/ElC;;AgB7/EA;EA6BQ,yBjBlB0B;ACs/ElC;;AgBjgFA;EA+BQ,qEAA2F;AhBs+EnG;;AgBrgFA;EAyBQ,yBjBhB0B;ACggFlC;;AgBzgFA;EA2BQ,yBjBlB0B;ACogFlC;;AgB7gFA;EA6BQ,yBjBpB0B;ACwgFlC;;AgBjhFA;EA+BQ,qEAA2F;AhBs/EnG;;AgBrhFA;EAyBQ,yBjBjB0B;ACihFlC;;AgBzhFA;EA2BQ,yBjBnB0B;ACqhFlC;;AgB7hFA;EA6BQ,yBjBrB0B;ACyhFlC;;AgBjiFA;EA+BQ,qEAA2F;AhBsgFnG;;AgBriFA;EAyBQ,yBjBXyB;AC2hFjC;;AgBziFA;EA2BQ,yBjBbyB;AC+hFjC;;AgB7iFA;EA6BQ,yBjBfyB;ACmiFjC;;AgBjjFA;EA+BQ,qEAA2F;AhBshFnG;;AgBrjFA;EAkCI,gCAtCkC;UAsClC,wBAtCkC;EAuClC,2CAAmC;UAAnC,mCAAmC;EACnC,yCAAiC;UAAjC,iCAAiC;EACjC,yCAAiC;UAAjC,iCAAiC;EACjC,yBjBrC2B;EiBsC3B,qEAA0F;EAC1F,6BAA6B;EAC7B,4BAA4B;EAC5B,0BAA0B;AhBuhF9B;;AgBjkFA;EA4CM,6BAA6B;AhByhFnC;;AgBrkFA;EA8CM,6BAA6B;AhB2hFnC;;AgBzkFA;EAgDM,oBAAoB;AhB6hF1B;;AgB7kFA;EAoDI,ejBxBY;ACqjFhB;;AgBjlFA;EAsDI,ejB5BY;AC2jFhB;;AgBrlFA;EAwDI,cjB/BW;ACgkFf;;AgB/hFA;EACE;IACE,2BAA2B;EhBkiF7B;EgBjiFA;IACE,4BAA4B;EhBmiF9B;AACF;;AgBxiFA;EACE;IACE,2BAA2B;EhBkiF7B;EgBjiFA;IACE,4BAA4B;EhBmiF9B;AACF;;AiB/kFA;EAEE,uBlBhB6B;EkBiB7B,clB1B4B;AC2mF9B;;AiBplFA;;EAMI,yBlBzB0B;EkB0B1B,qBA9B6B;EA+B7B,qBA9B6B;EA+B7B,mBAAmB;AjBmlFvB;;AiB5lFA;;EAeQ,uBlB7BuB;EkB8BvB,mBlB9BuB;EkB+BvB,clB5CqB;AC8nF7B;;AiBnmFA;;EAeQ,yBlB1CqB;EkB2CrB,qBlB3CqB;EkB4CrB,YlB/BuB;ACwnF/B;;AiB1mFA;;EAeQ,4BlB/BsB;EkBgCtB,wBlBhCsB;EkBiCtB,yBPkCa;AV8jFrB;;AiBjnFA;;EAeQ,yBlBtCsB;EkBuCtB,qBlBvCsB;EkBwCtB,WPoCQ;AVmkFhB;;AiBxnFA;;EAeQ,yBlBxB0B;EkByB1B,qBlBzB0B;EkB0B1B,WPoCQ;AV0kFhB;;AiB/nFA;;EAeQ,yBlBtB0B;EkBuB1B,qBlBvB0B;EkBwB1B,WPoCQ;AVilFhB;;AiBtoFA;;EAeQ,yBlBvB0B;EkBwB1B,qBlBxB0B;EkByB1B,WPoCQ;AVwlFhB;;AiB7oFA;;EAeQ,yBlBzB0B;EkB0B1B,qBlB1B0B;EkB2B1B,WPoCQ;AV+lFhB;;AiBppFA;;EAeQ,yBlB1B0B;EkB2B1B,qBlB3B0B;EkB4B1B,yBPkCa;AVwmFrB;;AiB3pFA;;EAeQ,yBlBpByB;EkBqBzB,qBlBrByB;EkBsBzB,WPoCQ;AV6mFhB;;AiBlqFA;;EAoBM,mBAAmB;EACnB,SAAS;AjBmpFf;;AiBxqFA;;EAuBM,yBlBhC4B;EkBiC5B,WP6BU;AVynFhB;;AiB9qFA;;;;EA2BQ,mBAAmB;AjB0pF3B;;AiBrrFA;;EA6BM,sBAAsB;AjB6pF5B;;AiB1rFA;EA+BI,clBtD0B;ACqtF9B;;AiB9rFA;EAiCM,mBAAmB;AjBiqFzB;;AiBlsFA;EAoCM,yBlB7C4B;EkB8C5B,WPgBU;AVkpFhB;;AiBvsFA;;EAwCQ,mBAAmB;AjBoqF3B;;AiB5sFA;;EA2CQ,kBPUQ;EOTR,mBAAmB;AjBsqF3B;;AiBltFA;EA8CI,6BA5DqC;AjBouFzC;;AiBttFA;;EAiDM,qBApEgC;EAqEhC,clBzEwB;ACmvF9B;;AiB5tFA;EAoDI,6BAhEqC;AjB4uFzC;;AiBhuFA;;EAuDM,qBAxEgC;EAyEhC,clB/EwB;AC6vF9B;;AiBtuFA;EA0DI,6BAvEqC;AjBuvFzC;;AiB1uFA;;EA+DU,sBAAsB;AjBgrFhC;;AiB/uFA;;EAoEM,iBAAiB;AjBgrFvB;;AiBpvFA;;EAyEU,wBAAwB;AjBgrFlC;;AiBzvFA;EA2EI,WAAW;AjBkrFf;;AiB7vFA;EAgFU,yBlB/FoB;ACgxF9B;;AiBjwFA;EAqFY,yBlBpGkB;ACoxF9B;;AiBrwFA;EAuFc,4BlBvGgB;ACyxF9B;;AiBzwFA;;EA2FM,qBAAqB;AjBmrF3B;;AiB9wFA;EAgGU,yBlB/GoB;ACiyF9B;;AiBhrFA;EhBjEE,iCAAiC;EgBoEjC,cAAc;EACd,kBAAkB;EAClB,eAAe;AjBkrFjB;;AkB7yFA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AlBgzF7B;;AkBpzFA;EAMI,qBAAqB;AlBkzFzB;;AkBxzFA;EjBiJI,mBiBzIwC;AlBozF5C;;AkB5zFA;EAUI,sBAAsB;AlBszF1B;;AkBh0FA;EAYI,mBAAmB;AlBwzFvB;;AkBp0FA;EAgBM,enBYO;AC4yFb;;AkBx0FA;EAmBM,kBnBQU;ACizFhB;;AkB50FA;EAqBI,uBAAuB;AlB2zF3B;;AkBh1FA;EAuBM,qBAAqB;EACrB,oBAAoB;AlB6zF1B;;AkBr1FA;EA0BI,yBAAyB;AlB+zF7B;;AkBz1FA;EA6BQ,mBAAmB;AlBg0F3B;;AkB71FA;EA+BQ,eAAe;AlBk0FvB;;AkBj2FA;EjBiJI,ciB/GmC;AlBm0FvC;;AkBr2FA;EjBiJI,eiB7GqC;EAK/B,0BAA0B;EAC1B,6BAA6B;AlBi0FvC;;AkB32FA;EAgDU,yBAAyB;EACzB,4BAA4B;AlB+zFtC;;AkB7zFA;EACE,mBAAmB;EACnB,4BnBjD4B;EmBkD5B,kBnBMU;EmBLV,cnBzD4B;EmB0D5B,oBAAoB;EACpB,kBnB5Bc;EmB6Bd,WAAW;EACX,uBAAuB;EACvB,gBAAgB;EAChB,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;AlBg0FrB;;AkB50FA;EjB8FI,qBiBhFuC;EjBgFvC,sBiB/EyC;AlBk0F7C;;AkBj1FA;EAqBM,uBnBlEyB;EmBmEzB,cnBhFuB;ACg5F7B;;AkBt1FA;EAqBM,yBnB/EuB;EmBgFvB,YnBnEyB;ACw4F/B;;AkB31FA;EAqBM,4BnBpEwB;EmBqExB,yBRFe;AV40FrB;;AkBh2FA;EAqBM,yBnB3EwB;EmB4ExB,WRAU;AV+0FhB;;AkBr2FA;EAqBM,yBnB7D4B;EmB8D5B,WRAU;AVo1FhB;;AkB12FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVy0FrE;;AkB/2FA;EAqBM,yBnB3D4B;EmB4D5B,WRAU;AV81FhB;;AkBp3FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVm1FrE;;AkBz3FA;EAqBM,yBnB5D4B;EmB6D5B,WRAU;AVw2FhB;;AkB93FA;EA4BU,yBRCsC;EQAtC,cRS2D;AV61FrE;;AkBn4FA;EAqBM,yBnB9D4B;EmB+D5B,WRAU;AVk3FhB;;AkBx4FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVu2FrE;;AkB74FA;EAqBM,yBnB/D4B;EmBgE5B,yBRFe;AV83FrB;;AkBl5FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVi3FrE;;AkBv5FA;EAqBM,yBnBzD2B;EmB0D3B,WRAU;AVs4FhB;;AkB55FA;EA4BU,yBRCsC;EQAtC,cRS2D;AV23FrE;;AkBj6FA;EAgCI,kBnBtDY;AC27FhB;;AkBr6FA;EAkCI,enBzDS;ACg8Fb;;AkBz6FA;EAoCI,kBnB5DY;ACq8FhB;;AkB76FA;EjB8FI,sBiBvD0C;EjBuD1C,qBiBtD0C;AlB04F9C;;AkBl7FA;EjB8FI,sBiBpD0C;EjBoD1C,qBiBnD0C;AlB44F9C;;AkBv7FA;EjB8FI,sBiBjD0C;EjBiD1C,qBiBhD0C;AlB84F9C;;AkB57FA;EjB8FI,iBiBrJmB;EAyGnB,UAAU;EACV,kBAAkB;EAClB,UAAU;AlB+4Fd;;AkBn8FA;EAuDM,8BAA8B;EAC9B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;AlBg5FrC;;AkB98FA;EAgEM,WAAW;EACX,UAAU;AlBk5FhB;;AkBn9FA;EAmEM,WAAW;EACX,UAAU;AlBo5FhB;;AkBx9FA;EAuEM,yBAAmD;AlBq5FzD;;AkB59FA;EAyEM,yBAAoD;AlBu5F1D;;AkBh+FA;EA2EI,qBnBhEmB;ACy9FvB;;AkBv5FA;EAEI,0BAA0B;AlBy5F9B;;AmB/gGA;;EAGE,sBAAsB;AnBihGxB;;AmBphGA;;;;EAMI,oBAAoB;AnBqhGxB;;AmB3hGA;;EAQI,iBApBmB;AnB4iGvB;;AmBhiGA;;EAUI,iBArBmB;AnBgjGvB;;AmBriGA;;EAYI,sBAAsB;AnB8hG1B;;AmB5hGA;EACE,cpB9B4B;EoBiC5B,epBLW;EoBMX,gBpBGmB;EoBFnB,kBAnCuB;AnBgkGzB;;AmBniGA;EAQI,cApCwB;EAqCxB,oBApCyB;AnBmkG7B;;AmBxiGA;EAWI,oBA3B+B;AnB4jGnC;;AmB5iGA;EAgBM,epBnBO;ACmjGb;;AmBhjGA;EAgBM,iBpBlBS;ACsjGf;;AmBpjGA;EAgBM,epBjBO;ACyjGb;;AmBxjGA;EAgBM,iBpBhBS;AC4jGf;;AmB5jGA;EAgBM,kBpBfU;AC+jGhB;;AmBhkGA;EAgBM,epBdO;ACkkGb;;AmBpkGA;EAgBM,kBpBbU;ACqkGhB;;AmBtjGA;EACE,cpB/C4B;EoBkD5B,kBpBrBc;EoBsBd,gBpBjBiB;EoBkBjB,iBA3CyB;AnBkmG3B;;AmB7jGA;EAQI,cpBvD0B;EoBwD1B,gBpBnBiB;AC4kGrB;;AmBlkGA;EAWI,oBA7C+B;AnBwmGnC;;AmBtkGA;EAgBM,epBrCO;AC+lGb;;AmB1kGA;EAgBM,iBpBpCS;ACkmGf;;AmB9kGA;EAgBM,epBnCO;ACqmGb;;AmBllGA;EAgBM,iBpBlCS;ACwmGf;;AmBtlGA;EAgBM,kBpBjCU;AC2mGhB;;AmB1lGA;EAgBM,epBhCO;AC8mGb;;AmB9lGA;EAgBM,kBpB/BU;ACinGhB;;AoB/oGA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,kBAAkB;EAClB,yBAAyB;ApBkpG3B;;AoB7oGA;EACE,mBAAmB;EACnB,4BrBP4B;EqBQ5B,qBrBkDqB;EqBjDrB,oBAAoB;EACpB,kBrBac;EqBZd,WAAW;EACX,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;ApBgpGrB;;AqB9qGA,eAAA;AC0DA;EAxBE,uBvBnB6B;EuBoB7B,qBvBzB4B;EuB0B5B,kBvBiCU;EuBhCV,cvB/B4B;ACgrG9B;;ACnnGI;EqB5BA,4BvBjC0B;ACorG9B;;ACvnGI;EqB5BA,4BvBjC0B;ACwrG9B;;AC3nGI;EqB5BA,4BvBjC0B;AC4rG9B;;AC/nGI;EqB5BA,4BvBjC0B;ACgsG9B;;AsB9pGE;EAEE,qBvBjC0B;ACisG9B;;AsB/pGE;EAIE,qBvBzB8B;EuB0B9B,iDvB1B8B;ACyrGlC;;AsB9pGE;;;;;EAEE,4BvBtC0B;EuBuC1B,wBvBvC0B;EuBwC1B,gBAAgB;EAChB,cvB9C0B;ACktG9B;;ACvpGI;;;;;EqBXE,+BvBhDwB;AC0tG9B;;AC/pGI;;;;;EqBXE,+BvBhDwB;ACkuG9B;;ACvqGI;;;;;EqBXE,+BvBhDwB;AC0uG9B;;AC/qGI;;;;;EqBXE,+BvBhDwB;ACkvG9B;;AuBpvGA;EAEE,2DxBN2B;EwBO3B,eAAe;EACf,WAAW;AvBsvGb;;AuBrvGE;EACE,gBAAgB;AvBwvGpB;;AuBpvGI;EACE,mBxBFyB;ACyvG/B;;AuBxvGK;EAMG,mDxBPuB;AC6vG/B;;AuB5vGI;EACE,qBxBfuB;AC8wG7B;;AuBhwGK;EAMG,gDxBpBqB;ACkxG7B;;AuBpwGI;EACE,wBxBJwB;AC2wG9B;;AuBxwGK;EAMG,mDxBTsB;AC+wG9B;;AuB5wGI;EACE,qBxBXwB;AC0xG9B;;AuBhxGK;EAMG,gDxBhBsB;AC8xG9B;;AuBpxGI;EACE,qBxBG4B;ACoxGlC;;AuBxxGK;EAMG,iDxBF0B;ACwxGlC;;AuB5xGI;EACE,qBxBK4B;AC0xGlC;;AuBhyGK;EAMG,iDxBA0B;AC8xGlC;;AuBpyGI;EACE,qBxBI4B;ACmyGlC;;AuBxyGK;EAMG,kDxBD0B;ACuyGlC;;AuB5yGI;EACE,qBxBE4B;AC6yGlC;;AuBhzGK;EAMG,kDxBH0B;ACizGlC;;AuBpzGI;EACE,qBxBC4B;ACszGlC;;AuBxzGK;EAMG,mDxBJ0B;AC0zGlC;;AuB5zGI;EACE,qBxBO2B;ACwzGjC;;AuBh0GK;EAMG,kDxBEyB;AC4zGjC;;AuB5zGE;EzBmBA,kBCyBgB;EDxBhB,kBCNc;ACmzGhB;;AuB/zGE;EzBoBA,kBCVc;ACyzGhB;;AuBj0GE;EzBoBA,iBCba;AC8zGf;;AuBl0GE;EACE,cAAc;EACd,WAAW;AvBq0Gf;;AuBp0GE;EACE,eAAe;EACf,WAAW;AvBu0Gf;;AuBr0GA;EAGI,qBxB8BmB;EwB7BnB,gDAA4D;EAC5D,iDAA6D;AvBs0GjE;;AuB30GA;EAOI,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AvBw0GpB;;AuBt0GA;EAEE,cAAc;EACd,eAAe;EACf,eAAe;EACf,2BzB7CkE;EyB8ClE,gBAAgB;AvBw0GlB;;AuB90GA;EAQI,gBA1DsB;EA2DtB,eA1DqB;AvBo4GzB;;AuBn1GA;EAWI,eAAe;AvB40GnB;;AuBv1GA;EAcI,YAAY;AvB60GhB;;AwB94GA;EACE,eAAe;EACf,qBAAqB;EACrB,iBAAiB;EACjB,kBAAkB;AxBi5GpB;;AwBh5GE;EACE,eAAe;AxBm5GnB;;AwBl5GE;EACE,czBF0B;ACu5G9B;;AwBp5GE;;;;;EAGE,czBJ0B;EyBK1B,mBAAmB;AxBy5GvB;;AwBp5GA;EvBwII,mBuBrIqC;AxBq5GzC;;AyBx6GA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,mBAAmB;AzB26GrB;;AyB/6GA;EAMI,a3BDkB;AE86GtB;;AyBn7GA;EAUM,qB1BU4B;EE4I9B,awBrJ+B;EAC7B,UAAU;AzB66GhB;;AyBz7GA;EAeM,qB1BsDiB;EEmFnB,kBwBxIsC;AzB86G1C;;AyB97GA;EAmBI,eAAe;EACf,cAAc;EACd,cAAc;EACd,eAAe;EACf,aAAa;AzB+6GjB;;AyBt8GA;EAyBM,aAAa;AzBi7GnB;;AyB18GA;;EA4BM,wB1BjBwB;ACo8G9B;;AyB/8GA;ExBwJI,mBwB1HwC;AzBq7G5C;;AyBn9GA;EAgCM,YAAY;EACZ,UAAU;AzBu7GhB;;AyBx9GA;EAmCQ,kBAAkB;AzBy7G1B;;AyB59GA;EAuCM,qB1BnCwB;AC49G9B;;AyBh+GA;EA6CQ,mB1BhCuB;ACu9G/B;;AyBp+GA;EA+CQ,mB1BlCuB;AC29G/B;;AyBx+GA;EAkDU,qBfyDuB;AVi4GjC;;AyB5+GA;EAuDU,mD1B1CqB;ACm+G/B;;AyBh/GA;EA6CQ,qB1B7CqB;ACo/G7B;;AyBp/GA;EA+CQ,qB1B/CqB;ACw/G7B;;AyBx/GA;EAkDU,mBfyDuB;AVi5GjC;;AyB5/GA;EAuDU,gD1BvDmB;ACggH7B;;AyBhgHA;EA6CQ,wB1BlCsB;ACy/G9B;;AyBpgHA;EA+CQ,wB1BpCsB;AC6/G9B;;AyBxgHA;EAkDU,qBfyDuB;AVi6GjC;;AyB5gHA;EAuDU,mD1B5CoB;ACqgH9B;;AyBhhHA;EA6CQ,qB1BzCsB;ACghH9B;;AyBphHA;EA+CQ,qB1B3CsB;ACohH9B;;AyBxhHA;EAkDU,qBfyDuB;AVi7GjC;;AyB5hHA;EAuDU,gD1BnDoB;AC4hH9B;;AyBhiHA;EA6CQ,qB1B3B0B;ACkhHlC;;AyBpiHA;EA+CQ,qB1B7B0B;ACshHlC;;AyBxiHA;EAkDU,qBfyDuB;AVi8GjC;;AyB5iHA;EAuDU,iD1BrCwB;AC8hHlC;;AyBhjHA;EA6CQ,qB1BzB0B;ACgiHlC;;AyBpjHA;EA+CQ,qB1B3B0B;ACoiHlC;;AyBxjHA;EAkDU,qBfyDuB;AVi9GjC;;AyB5jHA;EAuDU,iD1BnCwB;AC4iHlC;;AyBhkHA;EA6CQ,qB1B1B0B;ACijHlC;;AyBpkHA;EA+CQ,qB1B5B0B;ACqjHlC;;AyBxkHA;EAkDU,qBfyDuB;AVi+GjC;;AyB5kHA;EAuDU,kD1BpCwB;AC6jHlC;;AyBhlHA;EA6CQ,qB1B5B0B;ACmkHlC;;AyBplHA;EA+CQ,qB1B9B0B;ACukHlC;;AyBxlHA;EAkDU,qBfyDuB;AVi/GjC;;AyB5lHA;EAuDU,kD1BtCwB;AC+kHlC;;AyBhmHA;EA6CQ,qB1B7B0B;AColHlC;;AyBpmHA;EA+CQ,qB1B/B0B;ACwlHlC;;AyBxmHA;EAkDU,qBfyDuB;AVigHjC;;AyB5mHA;EAuDU,mD1BvCwB;ACgmHlC;;AyBhnHA;EA6CQ,qB1BvByB;AC8lHjC;;AyBpnHA;EA+CQ,qB1BzByB;ACkmHjC;;AyBxnHA;EAkDU,qBfyDuB;AVihHjC;;AyB5nHA;EAuDU,kD1BjCuB;AC0mHjC;;AyBhoHA;E3ByCE,kBCyBgB;EDxBhB,kBCNc;ACimHhB;;AyBroHA;E3B4CE,kBCVc;ACumHhB;;AyBzoHA;E3B8CE,iBCba;AC4mHf;;AyB7oHA;EAkEM,qB1B5DwB;AC2oH9B;;AyBjpHA;EAoEI,WAAW;AzBilHf;;AyBrpHA;EAsEM,WAAW;AzBmlHjB;;AyBzpHA;EA0EM,aAAa;EACb,kBAAkB;ExBqFpB,awBpF+B;EAC7B,YAAY;EACZ,eAAe;AzBmlHrB;;AyBjqHA;EAgFM,kB1B5CU;ACioHhB;;AyBrqHA;EAkFM,kB1BhDU;ACuoHhB;;AyBzqHA;EAoFM,iB1BnDS;AC4oHf;;A0BhqHA;EAEE,oBAAoB;EACpB,aAAa;EACb,2BAA2B;EAC3B,kBAAkB;A1BkqHpB;;A0BvqHA;EAYQ,uB3BZuB;E2BavB,yBAAyB;EACzB,c3B3BqB;AC0rH7B;;A0B7qHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,c3BjCmB;ACgsH7B;;A0BnrHA;EAwBU,yBAAyB;EACzB,+C3BzBqB;E2B0BrB,c3BvCmB;ACssH7B;;A0BzrHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,c3B7CmB;AC4sH7B;;A0B/rHA;EAYQ,yB3BzBqB;E2B0BrB,yBAAyB;EACzB,Y3BduB;ACqsH/B;;A0BrsHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,Y3BpBqB;AC2sH/B;;A0B3sHA;EAwBU,yBAAyB;EACzB,4C3BtCmB;E2BuCnB,Y3B1BqB;ACitH/B;;A0BjtHA;EA8BU,uBhBgEuB;EgB/DvB,yBAAyB;EACzB,Y3BhCqB;ACutH/B;;A0BvtHA;EAYQ,4B3BdsB;E2BetB,yBAAyB;EACzB,yBhBmDa;AV4pHrB;;A0B7tHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,yBhB6CW;AVkqHrB;;A0BnuHA;EAwBU,yBAAyB;EACzB,+C3B3BoB;E2B4BpB,yBhBuCW;AVwqHrB;;A0BzuHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,yBhBiCW;AV8qHrB;;A0B/uHA;EAYQ,yB3BrBsB;E2BsBtB,yBAAyB;EACzB,WhBqDQ;AVkrHhB;;A0BrvHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVwrHhB;;A0B3vHA;EAwBU,yBAAyB;EACzB,4C3BlCoB;E2BmCpB,WhByCM;AV8rHhB;;A0BjwHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVosHhB;;A0BvwHA;EAYQ,yB3BP0B;E2BQ1B,yBAAyB;EACzB,WhBqDQ;AV0sHhB;;A0B7wHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVgtHhB;;A0BnxHA;EAwBU,yBAAyB;EACzB,6C3BpBwB;E2BqBxB,WhByCM;AVstHhB;;A0BzxHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AV4tHhB;;A0B/xHA;EAYQ,yB3BL0B;E2BM1B,yBAAyB;EACzB,WhBqDQ;AVkuHhB;;A0BryHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVwuHhB;;A0B3yHA;EAwBU,yBAAyB;EACzB,6C3BlBwB;E2BmBxB,WhByCM;AV8uHhB;;A0BjzHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVovHhB;;A0BvzHA;EAYQ,yB3BN0B;E2BO1B,yBAAyB;EACzB,WhBqDQ;AV0vHhB;;A0B7zHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVgwHhB;;A0Bn0HA;EAwBU,yBAAyB;EACzB,8C3BnBwB;E2BoBxB,WhByCM;AVswHhB;;A0Bz0HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AV4wHhB;;A0B/0HA;EAYQ,yB3BR0B;E2BS1B,yBAAyB;EACzB,WhBqDQ;AVkxHhB;;A0Br1HA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVwxHhB;;A0B31HA;EAwBU,yBAAyB;EACzB,8C3BrBwB;E2BsBxB,WhByCM;AV8xHhB;;A0Bj2HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVoyHhB;;A0Bv2HA;EAYQ,yB3BT0B;E2BU1B,yBAAyB;EACzB,yBhBmDa;AV4yHrB;;A0B72HA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,yBhB6CW;AVkzHrB;;A0Bn3HA;EAwBU,yBAAyB;EACzB,+C3BtBwB;E2BuBxB,yBhBuCW;AVwzHrB;;A0Bz3HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,yBhBiCW;AV8zHrB;;A0B/3HA;EAYQ,yB3BHyB;E2BIzB,yBAAyB;EACzB,WhBqDQ;AVk0HhB;;A0Br4HA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVw0HhB;;A0B34HA;EAwBU,yBAAyB;EACzB,8C3BhBuB;E2BiBvB,WhByCM;AV80HhB;;A0Bj5HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVo1HhB;;A0Bv5HA;EAmCI,kB3BZY;ACo4HhB;;A0B35HA;EAqCI,e3BfS;ACy4Hb;;A0B/5HA;EAuCI,kB3BlBY;AC84HhB;;A0Bn6HA;EA0CQ,eAAe;A1B63HvB;;A0Bv6HA;EA4CI,iB3BxBW;ACu5Hf;;A0B36HA;EA+CQ,eAAe;A1Bg4HvB;;A0B/6HA;EAmDM,6BAA6B;EAC7B,0BAA0B;A1Bg4HhC;;A0Bp7HA;EAsDM,4BAA4B;EAC5B,yBAAyB;A1Bk4H/B;;A0Bz7HA;EA0DQ,kB3BJI;ACu4HZ;;A0B77HA;EA4DQ,aAAa;A1Bq4HrB;;A0Bj8HA;EA+DM,sBAAsB;A1Bs4H5B;;A0Br8HA;EAiEM,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;A1Bw4HtB;;A0B38HA;EAqEM,uBAAuB;A1B04H7B;;A0B/8HA;EAuEM,aAAa;EACb,YAAY;A1B44HlB;;A0Bp9HA;EA0EQ,eAAe;A1B84HvB;;A0Bx9HA;EA6EQ,eAAe;A1B+4HvB;;A0B59HA;EAgFQ,eAAe;A1Bg5HvB;;A0Bh+HA;EAmFQ,eAAe;A1Bi5HvB;;A0Bp+HA;EAsFQ,0BAA4C;A1Bk5HpD;;A0Bx+HA;EAwFQ,0B3BlCI;E2BmCJ,uBAAuB;A1Bo5H/B;;A0B7+HA;EA2FI,uBAAuB;A1Bs5H3B;;A0Bj/HA;EA8FM,WAAW;A1Bu5HjB;;A0Br/HA;EAgGM,YAAY;EACZ,eAAe;A1By5HrB;;A0B1/HA;EAmGI,yBAAyB;A1B25H7B;;A0B9/HA;EAqGM,0BAA4C;A1B65HlD;;A0BlgIA;EAuGM,0B3BjDM;E2BkDN,2BAA2B;EAC3B,SAAS;A1B+5Hf;;A0B75HA;EACE,oBAAoB;EACpB,aAAa;EACb,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,kBAAkB;A1Bg6HpB;;A0Bt6HA;EASM,yBhBtB2B;EgBuB3B,c3B9HwB;AC+hI9B;;A0B36HA;EAYM,qBhBzB2B;AV47HjC;;A0B/6HA;EAeM,yBhB5B2B;EgB6B3B,c3BpIwB;ACwiI9B;;A0Bp7HA;EAkBM,qBhB/B2B;AVq8HjC;;A0Bp6HA;EACE,YAAY;EACZ,OAAO;EACP,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,MAAM;EACN,WAAW;A1Bu6Hb;;A0Br6HA;;EAGE,qB3BhJ4B;E2BiJ5B,kB3BtFU;E2BuFV,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;A1Bu6HrB;;A0Br6HA;EACE,4B3BrJ4B;E2BsJ5B,c3B5J4B;ACokI9B;;A0Bt6HA;EACE,qB3B5J4B;E2B6J5B,mBA9J4B;EA+J5B,2BA9JoC;EA+JpC,cAAc;EACd,eA/JwB;EAgKxB,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;A1By6HzB;;A0Bv6HA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,uBAAuB;EzBzBrB,kByB0BmC;EACrC,UAAU;A1B06HZ;;A0Bh7HA;EAQI,eAAe;A1B46HnB;;A2B5lIA;EACE,c5BF4B;E4BG5B,cAAc;EACd,e5B2BW;E4B1BX,gB5BiCe;AC8jIjB;;A2BnmIA;EAMI,oBAAoB;A3BimIxB;;A2BvmIA;EASI,kB5BsBY;AC4kIhB;;A2B3mIA;EAWI,kB5BkBY;ACklIhB;;A2B/mIA;EAaI,iB5BeW;ACulIf;;A2BpmIA;EACE,cAAc;EACd,kB5Bcc;E4Bbd,mBAAmB;A3BumIrB;;A2B1mIA;EAOM,Y5BdyB;ACqnI/B;;A2B9mIA;EAOM,c5B3BuB;ACsoI7B;;A2BlnIA;EAOM,iB5BhBwB;AC+nI9B;;A2BtnIA;EAOM,c5BvBwB;AC0oI9B;;A2B1nIA;EAOM,c5BT4B;ACgoIlC;;A2B9nIA;EAOM,c5BP4B;ACkoIlC;;A2BloIA;EAOM,c5BR4B;ACuoIlC;;A2BtoIA;EAOM,c5BV4B;AC6oIlC;;A2B1oIA;EAOM,c5BX4B;ACkpIlC;;A2B9oIA;EAOM,c5BL2B;ACgpIjC;;A2BvoIA;EAEI,sBAAsB;A3ByoI1B;;A2B3oIA;EAKI,aAAa;EACb,2BAA2B;A3B0oI/B;;A2BhpIA;E1ByHI,iB0BhHwC;A3B2oI5C;;A2BppIA;;;EAcU,gBAAgB;A3B4oI1B;;A2B1pIA;;;EAuBY,4BAA4B;EAC5B,yBAAyB;A3ByoIrC;;A2BjqIA;;;EAiCY,6BAA6B;EAC7B,0BAA0B;A3BsoItC;;A2BxqIA;;;;;EAyCY,UAAU;A3BuoItB;;A2BhrIA;;;;;;;;;EA8CY,UAAU;A3B8oItB;;A2B5rIA;;;;;;;;;EAgDc,UAAU;A3BwpIxB;;A2BxsIA;EAkDQ,YAAY;EACZ,cAAc;A3B0pItB;;A2B7sIA;EAqDM,uBAAuB;A3B4pI7B;;A2BjtIA;EAuDM,yBAAyB;A3B8pI/B;;A2BrtIA;EA0DQ,YAAY;EACZ,cAAc;A3B+pItB;;A2B1tIA;EA6DI,aAAa;EACb,2BAA2B;A3BiqI/B;;A2B/tIA;EAgEM,cAAc;A3BmqIpB;;A2BnuIA;EAkEQ,gBAAgB;E1BuDpB,oB0BtD2C;A3BqqI/C;;A2BxuIA;EAqEQ,YAAY;EACZ,cAAc;A3BuqItB;;A2B7uIA;EAwEM,uBAAuB;A3ByqI7B;;A2BjvIA;EA0EM,yBAAyB;A3B2qI/B;;A2BrvIA;EA4EM,eAAe;A3B6qIrB;;A2BzvIA;EAgFU,sBAAsB;A3B6qIhC;;A2B7vIA;EAkFQ,uBAAuB;A3B+qI/B;;A2BjwIA;EAoFQ,gBAAgB;A3BirIxB;;ACrsIE;E0BhEF;IAuFM,aAAa;E3BmrIjB;AACF;;A2BlrIA;EAEI,kBAAkB;A3BorItB;;ACntIE;E0B6BF;IAII,qBAAqB;E3BurIvB;AACF;;ACrtIE;E0ByBF;IAMI,aAAa;IACb,YAAY;IACZ,cAAc;I1BwBd,mB0BvBsC;IACtC,iBAAiB;E3B2rInB;E2BrsIF;IAYM,kB5BhGU;I4BiGV,oBAAoB;E3B4rIxB;E2BzsIF;IAeM,oBAAoB;E3B6rIxB;E2B5sIF;IAiBM,kB5BvGU;I4BwGV,oBAAoB;E3B8rIxB;E2BhtIF;IAoBM,iB5B3GS;I4B4GT,oBAAoB;E3B+rIxB;AACF;;A2B9rIA;EAEI,gBAAgB;A3BgsIpB;;AClvIE;E0BgDF;IAII,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;E3BmsIhB;E2B1sIF;IASM,gBAAgB;E3BosIpB;E2B7sIF;IAWM,cAAc;E3BqsIlB;E2BhtIF;IAaQ,YAAY;E3BssIlB;E2BntIF;I1BSI,oB0BM2C;E3BusI7C;AACF;;A2BtsIA;EACE,sBAAsB;EACtB,WAAW;EACX,e5BhIW;E4BiIX,kBAAkB;EAClB,mBAAmB;A3BysIrB;;A2B9sIA;;;EAaU,c5BxKoB;AC+2I9B;;A2BptIA;;;EAeQ,kB5B3IQ;ACs1IhB;;A2B1tIA;;;EAiBQ,kB5B/IQ;AC81IhB;;A2BhuIA;;;EAmBQ,iB5BlJO;ACq2If;;A2BtuIA;EAqBM,c5B7KwB;E4B8KxB,a7BjLgB;E6BkLhB,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,Y7BrLgB;E6BsLhB,UAAU;A3BqtIhB;;A2BhvIA;;EA+BM,mB7B1LgB;AEg5ItB;;A2BrvIA;EAiCM,OAAO;A3BwtIb;;A2BzvIA;;EAqCM,oB7BhMgB;AEy5ItB;;A2B9vIA;EAuCM,QAAQ;A3B2tId;;A2BlwIA;EA2CM,6BAA6B;E1B3C/B,a0B4C+B;EAC7B,YAAY;EACZ,UAAU;A3B2tIhB;;A2BzwIA;EAgDM,kB5B5KU;ACy4IhB;;A2B7wIA;EAkDM,kB5BhLU;AC+4IhB;;A2BjxIA;EAoDM,iB5BnLS;ACo5If;;A4Bv7IA,qBAAA;ACWA;EAGE,e9BuBW;E8BtBX,mBAAmB;A7B86IrB;;A6Bl7IA;EAMI,mBAAmB;EACnB,c9BI8B;E8BH9B,aAAa;EACb,uBAAuB;EACvB,iBAduC;A7B87I3C;;A6B17IA;EAYM,c9BjBwB;ACm8I9B;;A6B97IA;EAcI,mBAAmB;EACnB,aAAa;A7Bo7IjB;;A6Bn8IA;E5B+II,gB4B9HoC;A7Bs7IxC;;A6Bv8IA;EAoBQ,c9BzBsB;E8B0BtB,eAAe;EACf,oBAAoB;A7Bu7I5B;;A6B78IA;EAwBM,c9B1BwB;E8B2BxB,iBAAiB;A7By7IvB;;A6Bl9IA;;EA4BI,uBAAuB;EACvB,aAAa;EACb,eAAe;EACf,2BAA2B;A7B27I/B;;A6B19IA;E5B+II,kB4B7GuC;A7B47I3C;;A6B99IA;E5B+II,mB4B3GuC;A7B87I3C;;A6Bl+IA;;EAyCM,uBAAuB;A7B87I7B;;A6Bv+IA;;EA6CM,yBAAyB;A7B+7I/B;;A6B5+IA;EAgDI,kB9BrBY;ACq9IhB;;A6Bh/IA;EAkDI,kB9BzBY;AC29IhB;;A6Bp/IA;EAoDI,iB9B5BW;ACg+If;;A6Bx/IA;EAwDM,iBAAiB;A7Bo8IvB;;A6B5/IA;EA2DM,iBAAiB;A7Bq8IvB;;A6BhgJA;EA8DM,iBAAiB;A7Bs8IvB;;A6BpgJA;EAiEM,iBAAiB;A7Bu8IvB;;A8B7/IA;EACE,uB/BR6B;E+BS7B,sBAnBmB;EAoBnB,0F/BvB2B;E+BwB3B,c/BnB4B;E+BoB5B,eAAe;EACf,kBAAkB;A9BggJpB;;A8B7/IE;EACE,+BA3BiB;EA4BjB,gCA5BiB;A9B4hJrB;;A8B//IE;EACE,kCA9BiB;EA+BjB,mCA/BiB;A9BiiJrB;;A8BhgJA;EAEE,6BAjCwC;EAkCxC,oBAAoB;EACpB,kD/BxC2B;E+ByC3B,aAAa;A9BkgJf;;A8BhgJA;EACE,mBAAmB;EACnB,c/BzC4B;E+B0C5B,aAAa;EACb,YAAY;EACZ,gB/BNe;E+BOf,qBA1CgC;A9B6iJlC;;A8BzgJA;EAQI,uBAAuB;A9BqgJ3B;;A8BngJA;E7BgBE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;E6BvBV,mBAAmB;EACnB,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,qBApDgC;A9BmkJlC;;A8B7gJA;EACE,cAAc;EACd,kBAAkB;A9BghJpB;;A8BlhJA;EAKM,+BA/De;EAgEf,gCAhEe;A9BilJrB;;A8BvhJA;EASM,kCAnEe;EAoEf,mCApEe;A9BslJrB;;A8BhhJA;EAEE,6BAhEyC;EAiEzC,eAhE2B;A9BklJ7B;;A8BhhJA;EAEE,6BAlEwC;EAmExC,6B/BxE6B;E+ByE7B,oBAAoB;EACpB,aAAa;A9BkhJf;;A8BhhJA;EACE,mBAAmB;EACnB,aAAa;EACb,aAAa;EACb,YAAY;EACZ,cAAc;EACd,uBAAuB;EACvB,gBA5E2B;A9B+lJ7B;;A8B1hJA;E7BmEI,8BF/I2B;AC0mJ/B;;A8BjhJA;EAEI,qB/BtDkB;ACykJtB;;A+BpmJA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;A/BumJrB;;A+B1mJA;EAOM,cAAc;A/BumJpB;;A+B9mJA;EAUM,UAAU;EACV,QAAQ;A/BwmJd;;A+BnnJA;EAcM,YAAY;EACZ,mBA9BuB;EA+BvB,oBAAoB;EACpB,SAAS;A/BymJf;;A+BvmJA;EACE,aAAa;E9ByHX,Q8BxHqB;EACvB,gBAzC6B;EA0C7B,gBAtC2B;EAuC3B,kBAAkB;EAClB,SAAS;EACT,WApCqB;A/B8oJvB;;A+BxmJA;EACE,uBhCnC6B;EgCoC7B,kBhCkBU;EgCjBV,0FhClD2B;EgCmD3B,sBA9CsC;EA+CtC,mBA9CmC;A/BypJrC;;Ae7oJgB;EgBqCd,chClD4B;EgCmD5B,cAAc;EACd,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;A/B4mJpB;;A+B1mJA;;E9B0FI,kB8BxFmC;EACrC,mBAAmB;EACnB,mBAAmB;EACnB,WAAW;A/B6mJb;;A+BlnJA;;EAOI,4BhC1D0B;EgC2D1B,chCtEyB;ACsrJ7B;;A+BxnJA;;EAUI,yBhCpD8B;EgCqD9B,WrBOY;AV4mJhB;;A+BjnJA;EACE,yBhCnE6B;EgCoE7B,YAAY;EACZ,cAAc;EACd,WAAW;EACX,gBAAgB;A/BonJlB;;AgClsJA;EAEE,mBAAmB;EACnB,8BAA8B;AhCosJhC;;AgCvsJA;EAKI,kBjC4DQ;AC0oJZ;;AgC3sJA;EAOI,qBAAqB;EACrB,mBAAmB;AhCwsJvB;;AgChtJA;EAWI,aAAa;AhCysJjB;;AgCptJA;;EAcM,aAAa;AhC2sJnB;;AgCztJA;EAgBM,aAAa;AhC6sJnB;;AgC7tJA;EAmBQ,gBAAgB;E/BmIpB,oB+BxJuC;AhCouJ3C;;AgCluJA;EAsBQ,YAAY;AhCgtJpB;;ACzoJE;E+B7FF;IAyBI,aAAa;EhCktJf;EgC3uJF;IA4BQ,YAAY;EhCktJlB;AACF;;AgCjtJA;EACE,mBAAmB;EACnB,aAAa;EACb,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,uBAAuB;AhCotJzB;;AgC1tJA;;EASI,gBAAgB;AhCstJpB;;ACpqJE;E+B3DF;IAaM,sBA7CqC;EhCowJzC;AACF;;AgCttJA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AhCytJhB;;AgC7tJA;;EAQM,YAAY;AhC0tJlB;;AClrJE;E+BhDF;;I/ByGI,oB+BxJuC;EhCuxJzC;AACF;;AgC3tJA;EACE,mBAAmB;EACnB,2BAA2B;AhC8tJ7B;;AClsJE;E+B9BF;IAMM,kBAAkB;EhC+tJtB;AACF;;ACpsJE;E+BlCF;IAQI,aAAa;EhCmuJf;AACF;;AgCluJA;EACE,mBAAmB;EACnB,yBAAyB;AhCquJ3B;;AC/sJE;E+BxBF;IAKI,aAAa;EhCuuJf;AACF;;AiC3yJA;EACE,uBAAuB;EACvB,aAAa;EACb,mBAAmB;AjC8yJrB;;AiCjzJA;EAKI,sBAV2B;AjC0zJ/B;;AiCrzJA;EAOI,8ClCR0B;EkCS1B,aAAa;EACb,oBAb2B;AjC+zJ/B;;AiC3zJA;;EAYM,qBAfgC;AjCm0JtC;;AiCh0JA;EAcM,mBAhBwB;AjCs0J9B;;AiCp0JA;EAgBQ,kBAlBsB;AjC00J9B;;AiCx0JA;EAkBI,8ClCnB0B;EkCoB1B,gBA1BgB;EA2BhB,iBA3BgB;AjCq1JpB;;AiC90JA;EAwBM,kBA9BsB;EA+BtB,mBA/BsB;AjCy1J5B;;AiCxzJA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AjC2zJhB;;AiCzzJA;EhC8GI,iBgCtJgB;AjCq2JpB;;AiC1zJA;EhC2GI,kBgCtJgB;AjCy2JpB;;AiC3zJA;EACE,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,mBAAmB;AjC8zJrB;;ACvxJE;EgC3CF;IAQI,gBAAgB;EjC+zJlB;AACF;;AkCt2JA;EACE,enCgBW;ACy1Jb;;AkC12JA;EAII,kBnCcY;AC41JhB;;AkC92JA;EAMI,kBnCUY;ACk2JhB;;AkCl3JA;EAQI,iBnCOW;ACu2Jf;;AkC52JA;EACE,iBArB0B;AlCo4J5B;;AkCh3JA;EAGI,kBnCmCc;EmClCd,cnC3B0B;EmC4B1B,cAAc;EACd,qBAzBiC;AlC04JrC;;AkCv3JA;EAQM,4BnCzBwB;EmC0BxB,cnCjCwB;ACo5J9B;;AkC53JA;EAYM,yBnCpB4B;EmCqB5B,WxBuCU;AV60JhB;;AkCj4JA;EjC4HI,+BFhJ0B;EmCqCxB,cAnC0B;EjC8I5B,qBiC7IkC;AlCw5JtC;;AkCn3JA;EACE,cnC3C4B;EmC4C5B,iBApC2B;EAqC3B,qBApC+B;EAqC/B,yBAAyB;AlCs3J3B;;AkC13JA;EAMI,eAtCoB;AlC85JxB;;AkC93JA;EAQI,kBAxCoB;AlCk6JxB;;AmC75JA;EAEE,4BpCZ4B;EoCa5B,kBpC2CU;EoC1CV,epCUW;ACq5Jb;;AmCn6JA;EAMI,mBAAmB;AnCi6JvB;;AmCv6JA;EAQI,mBAAmB;EACnB,0BAA0B;AnCm6J9B;;AmC56JA;EAYI,kBpCGY;ACi6JhB;;AmCh7JA;EAcI,kBpCDY;ACu6JhB;;AmCp7JA;EAgBI,iBpCJW;AC46Jf;;AmCx7JA;EAsCM,uBAH+C;AnCy5JrD;;AmC57JA;EAwCQ,uBpChDuB;EoCiDvB,cpC9DqB;ACs9J7B;;AmCj8JA;EA2CQ,mBpCnDuB;AC68J/B;;AmCr8JA;EAsCM,yBAH+C;AnCs6JrD;;AmCz8JA;EAwCQ,yBpC7DqB;EoC8DrB,YpCjDuB;ACs9J/B;;AmC98JA;EA2CQ,qBpChEqB;ACu+J7B;;AmCl9JA;EAsCM,yBAH+C;AnCm7JrD;;AmCt9JA;EAwCQ,4BpClDsB;EoCmDtB,yBzBgBa;AVk6JrB;;AmC39JA;EA2CQ,wBpCrDsB;ACy+J9B;;AmC/9JA;EAsCM,yBAH+C;AnCg8JrD;;AmCn+JA;EAwCQ,yBpCzDsB;EoC0DtB,WzBkBQ;AV66JhB;;AmCx+JA;EA2CQ,qBpC5DsB;AC6/J9B;;AmC5+JA;EAsCM,yBzB4B0C;AV86JhD;;AmCh/JA;EAwCQ,yBpC3C0B;EoC4C1B,WzBkBQ;AV07JhB;;AmCr/JA;EA2CQ,qBpC9C0B;EoC+C1B,czB+B6D;AV+6JrE;;AmC1/JA;EAsCM,yBzB4B0C;AV47JhD;;AmC9/JA;EAwCQ,yBpCzC0B;EoC0C1B,WzBkBQ;AVw8JhB;;AmCngKA;EA2CQ,qBpC5C0B;EoC6C1B,czB+B6D;AV67JrE;;AmCxgKA;EAsCM,yBzB4B0C;AV08JhD;;AmC5gKA;EAwCQ,yBpC1C0B;EoC2C1B,WzBkBQ;AVs9JhB;;AmCjhKA;EA2CQ,qBpC7C0B;EoC8C1B,czB+B6D;AV28JrE;;AmCthKA;EAsCM,yBzB4B0C;AVw9JhD;;AmC1hKA;EAwCQ,yBpC5C0B;EoC6C1B,WzBkBQ;AVo+JhB;;AmC/hKA;EA2CQ,qBpC/C0B;EoCgD1B,czB+B6D;AVy9JrE;;AmCpiKA;EAsCM,yBzB4B0C;AVs+JhD;;AmCxiKA;EAwCQ,yBpC7C0B;EoC8C1B,yBzBgBa;AVo/JrB;;AmC7iKA;EA2CQ,qBpChD0B;EoCiD1B,czB+B6D;AVu+JrE;;AmCljKA;EAsCM,yBzB4B0C;AVo/JhD;;AmCtjKA;EAwCQ,yBpCvCyB;EoCwCzB,WzBkBQ;AVggKhB;;AmC3jKA;EA2CQ,qBpC1CyB;EoC2CzB,czB+B6D;AVq/JrE;;AmClhKA;EACE,mBAAmB;EACnB,yBpChE4B;EoCiE5B,0BAAgE;EAChE,WzBSc;EyBRd,aAAa;EACb,gBpC/Be;EoCgCf,8BAA8B;EAC9B,iBAAiB;EACjB,mBAtEiC;EAuEjC,kBAAkB;AnCqhKpB;;AmC/hKA;EAYI,YAAY;EACZ,cAAc;ElCwEd,oBkCvEsC;AnCuhK1C;;AmCriKA;EAgBI,eAjEgC;EAkEhC,yBAAyB;EACzB,0BAA0B;AnCyhK9B;;AmCvhKA;EACE,qBpChF4B;EoCiF5B,kBpCtBU;EoCuBV,mBAAmB;EACnB,uBAjFmC;EAkFnC,cpCvF4B;EoCwF5B,qBAjFiC;AnC2mKnC;;AmChiKA;;EASI,uBpCnF2B;AC+mK/B;;AmCriKA;EAWI,6BAlFgD;AnCgnKpD;;AoChmKA;EAEE,mBAAmB;EACnB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,eAAe;EACf,WAxCU;ApC0oKZ;;AoC1mKA;EAWI,aAAa;ApCmmKjB;;AoCjmKA;EAEE,wCrC/C2B;ACkpK7B;;AoCjmKA;;EAEE,cA9CgC;EA+ChC,+BAA0D;EAC1D,cAAc;EACd,kBAAkB;EAClB,WAAW;ApComKb;;ACxkKE;EmClCF;;IASI,cAAc;IACd,8BAA0D;IAC1D,YAxDuB;EpC+pKzB;AACF;;AoCtmKA;EAEE,gBAAgB;EAChB,YAxD2B;EAyD3B,eAAe;EnC8Fb,UmCtJoB;EA0DtB,SAzDoB;EA0DpB,WA5D2B;ApCoqK7B;;AoCtmKA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAAgD;EAChD,gBAAgB;EAChB,uBAAuB;ApCymKzB;;AoCvmKA;;EAEE,mBAAmB;EACnB,4BrCtE4B;EqCuE5B,aAAa;EACb,cAAc;EACd,2BAA2B;EAC3B,aApE4B;EAqE5B,kBAAkB;ApC0mKpB;;AoCxmKA;EACE,gCrCjF4B;EqCkF5B,2BrCtBgB;EqCuBhB,4BrCvBgB;ACkoKlB;;AoCzmKA;EACE,crC1F4B;EqC2F5B,YAAY;EACZ,cAAc;EACd,iBrChEa;EqCiEb,cA7E8B;ApCyrKhC;;AoC1mKA;EACE,8BrCjCgB;EqCkChB,+BrClCgB;EqCmChB,6BrC/F4B;AC4sK9B;;AoChnKA;EnCoDI,kBmC9CuC;ApC8mK3C;;AoC5mKA;EnChDE,iCAAiC;EmCkDjC,uBrCjG6B;EqCkG7B,YAAY;EACZ,cAAc;EACd,cAAc;EACd,aAtF4B;ApCqsK9B;;AqCzqKA;EACE,uBtC5C6B;EsC6C7B,mBAvDqB;EAwDrB,kBAAkB;EAClB,WAtDW;ArCkuKb;;AqChrKA;EASM,uBtCpDyB;EsCqDzB,ctClEuB;AC6uK7B;;AqCrrKA;;EAcU,ctCtEmB;ACkvK7B;;AqC1rKA;;;;EAoBY,yB3B+BqB;E2B9BrB,ctC7EiB;AC0vK7B;;AqClsKA;EAwBY,qBtChFiB;AC8vK7B;;AqCtsKA;EA0BQ,ctClFqB;ACkwK7B;;AC/qKE;EoC3BF;;;;IAgCY,ctCxFiB;EC0wK3B;EqCltKF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,ctC/Fe;ECuxK3B;EqC/tKF;;IA0Cc,qBtClGe;EC2xK3B;EqCnuKF;;;IA8CU,yB3BKuB;I2BJvB,ctCvGmB;ECiyK3B;EqCzuKF;IAmDc,uBtC9FiB;IsC+FjB,ctC5Ge;ECqyK3B;AACF;;AqC9uKA;EASM,yBtCjEuB;EsCkEvB,YtCrDyB;AC8xK/B;;AqCnvKA;;EAcU,YtCzDqB;ACmyK/B;;AqCxvKA;;;;EAoBY,uB3B+BqB;E2B9BrB,YtChEmB;AC2yK/B;;AqChwKA;EAwBY,mBtCnEmB;AC+yK/B;;AqCpwKA;EA0BQ,YtCrEuB;ACmzK/B;;AC7uKE;EoC3BF;;;;IAgCY,YtC3EmB;EC2zK7B;EqChxKF;;;;;;;;;;IAsCc,uB3BamB;I2BZnB,YtClFiB;ECw0K7B;EqC7xKF;;IA0Cc,mBtCrFiB;EC40K7B;EqCjyKF;;;IA8CU,uB3BKuB;I2BJvB,YtC1FqB;ECk1K7B;EqCvyKF;IAmDc,yBtC3Ge;IsC4Gf,YtC/FiB;ECs1K7B;AACF;;AqC5yKA;EASM,4BtCtDwB;EsCuDxB,yB3BYe;AV2xKrB;;AqCjzKA;;EAcU,yB3BQW;AVgyKrB;;AqCtzKA;;;;EAoBY,yB3B+BqB;E2B9BrB,yB3BCS;AVwyKrB;;AqC9zKA;EAwBY,gC3BFS;AV4yKrB;;AqCl0KA;EA0BQ,yB3BJa;AVgzKrB;;AC3yKE;EoC3BF;;;;IAgCY,yB3BVS;EVwzKnB;EqC90KF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,yB3BjBO;EVq0KnB;EqC31KF;;IA0Cc,gC3BpBO;EVy0KnB;EqC/1KF;;;IA8CU,yB3BKuB;I2BJvB,yB3BzBW;EV+0KnB;EqCr2KF;IAmDc,4BtChGgB;IsCiGhB,yB3B9BO;EVm1KnB;AACF;;AqC12KA;EASM,yBtC7DwB;EsC8DxB,W3BcU;AVu1KhB;;AqC/2KA;;EAcU,W3BUM;AV41KhB;;AqCp3KA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVo2KhB;;AqC53KA;EAwBY,kB3BAI;AVw2KhB;;AqCh4KA;EA0BQ,W3BFQ;AV42KhB;;ACz2KE;EoC3BF;;;;IAgCY,W3BRI;EVo3Kd;EqC54KF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EVi4Kd;EqCz5KF;;IA0Cc,kB3BlBE;EVq4Kd;EqC75KF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EV24Kd;EqCn6KF;IAmDc,yBtCvGgB;IsCwGhB,W3B5BE;EV+4Kd;AACF;;AqCx6KA;EASM,yBtC/C4B;EsCgD5B,W3BcU;AVq5KhB;;AqC76KA;;EAcU,W3BUM;AV05KhB;;AqCl7KA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVk6KhB;;AqC17KA;EAwBY,kB3BAI;AVs6KhB;;AqC97KA;EA0BQ,W3BFQ;AV06KhB;;ACv6KE;EoC3BF;;;;IAgCY,W3BRI;EVk7Kd;EqC18KF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EV+7Kd;EqCv9KF;;IA0Cc,kB3BlBE;EVm8Kd;EqC39KF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVy8Kd;EqCj+KF;IAmDc,yBtCzFoB;IsC0FpB,W3B5BE;EV68Kd;AACF;;AqCt+KA;EASM,yBtC7C4B;EsC8C5B,W3BcU;AVm9KhB;;AqC3+KA;;EAcU,W3BUM;AVw9KhB;;AqCh/KA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVg+KhB;;AqCx/KA;EAwBY,kB3BAI;AVo+KhB;;AqC5/KA;EA0BQ,W3BFQ;AVw+KhB;;ACr+KE;EoC3BF;;;;IAgCY,W3BRI;EVg/Kd;EqCxgLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EV6/Kd;EqCrhLF;;IA0Cc,kB3BlBE;EVigLd;EqCzhLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVugLd;EqC/hLF;IAmDc,yBtCvFoB;IsCwFpB,W3B5BE;EV2gLd;AACF;;AqCpiLA;EASM,yBtC9C4B;EsC+C5B,W3BcU;AVihLhB;;AqCziLA;;EAcU,W3BUM;AVshLhB;;AqC9iLA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AV8hLhB;;AqCtjLA;EAwBY,kB3BAI;AVkiLhB;;AqC1jLA;EA0BQ,W3BFQ;AVsiLhB;;ACniLE;EoC3BF;;;;IAgCY,W3BRI;EV8iLd;EqCtkLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EV2jLd;EqCnlLF;;IA0Cc,kB3BlBE;EV+jLd;EqCvlLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVqkLd;EqC7lLF;IAmDc,yBtCxFoB;IsCyFpB,W3B5BE;EVykLd;AACF;;AqClmLA;EASM,yBtChD4B;EsCiD5B,W3BcU;AV+kLhB;;AqCvmLA;;EAcU,W3BUM;AVolLhB;;AqC5mLA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AV4lLhB;;AqCpnLA;EAwBY,kB3BAI;AVgmLhB;;AqCxnLA;EA0BQ,W3BFQ;AVomLhB;;ACjmLE;EoC3BF;;;;IAgCY,W3BRI;EV4mLd;EqCpoLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EVynLd;EqCjpLF;;IA0Cc,kB3BlBE;EV6nLd;EqCrpLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVmoLd;EqC3pLF;IAmDc,yBtC1FoB;IsC2FpB,W3B5BE;EVuoLd;AACF;;AqChqLA;EASM,yBtCjD4B;EsCkD5B,yB3BYe;AV+oLrB;;AqCrqLA;;EAcU,yB3BQW;AVopLrB;;AqC1qLA;;;;EAoBY,yB3B+BqB;E2B9BrB,yB3BCS;AV4pLrB;;AqClrLA;EAwBY,gC3BFS;AVgqLrB;;AqCtrLA;EA0BQ,yB3BJa;AVoqLrB;;AC/pLE;EoC3BF;;;;IAgCY,yB3BVS;EV4qLnB;EqClsLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,yB3BjBO;EVyrLnB;EqC/sLF;;IA0Cc,gC3BpBO;EV6rLnB;EqCntLF;;;IA8CU,yB3BKuB;I2BJvB,yB3BzBW;EVmsLnB;EqCztLF;IAmDc,yBtC3FoB;IsC4FpB,yB3B9BO;EVusLnB;AACF;;AqC9tLA;EASM,yBtC3C2B;EsC4C3B,W3BcU;AV2sLhB;;AqCnuLA;;EAcU,W3BUM;AVgtLhB;;AqCxuLA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVwtLhB;;AqChvLA;EAwBY,kB3BAI;AV4tLhB;;AqCpvLA;EA0BQ,W3BFQ;AVguLhB;;AC7tLE;EoC3BF;;;;IAgCY,W3BRI;EVwuLd;EqChwLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EVqvLd;EqC7wLF;;IA0Cc,kB3BlBE;EVyvLd;EqCjxLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EV+vLd;EqCvxLF;IAmDc,yBtCrFmB;IsCsFnB,W3B5BE;EVmwLd;AACF;;AqC5xLA;EAsDI,oBAAoB;EACpB,aAAa;EACb,mBA7GmB;EA8GnB,WAAW;ArC0uLf;;AqCnyLA;EA2DI,gCtCxG0B;ACo1L9B;;AqCvyLA;EALE,OAAO;EACP,eAAe;EACf,QAAQ;EACR,WA/CiB;ArC+1LnB;;AqC9yLA;EAgEI,SAAS;ArCkvLb;;AqClzLA;EAkEM,iCtC/GwB;ACm2L9B;;AqCtzLA;EAoEI,MAAM;ArCsvLV;;AqCpvLA;;EAGI,oBA9HmB;ArCo3LvB;;AqCzvLA;;EAKI,uBAhImB;ArCy3LvB;;AqCvvLA;;EAEE,oBAAoB;EACpB,aAAa;EACb,cAAc;EACd,mBAvIqB;ArCi4LvB;;AqCxvLA;EAIM,6BAA6B;ArCwvLnC;;AqCtvLA;EpCtFE,iCAAiC;EoCwFjC,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;ArCyvLpB;;AqCvvLA;EAEE,ctCrJ4B;EEoB5B,eAAe;EACf,cAAc;EACd,eoCxBqB;EpCyBrB,kBAAkB;EAClB,coC1BqB;EpCqJnB,kBoCIkC;ArC6vLtC;;AC33LE;EACE,8BAA8B;EAC9B,cAAc;EACd,WAAW;EACX,qBAAqB;EACrB,kBAAkB;EAClB,wBAAwB;EACxB,yBFiCQ;EEhCR,yDAAyD;EACzD,oCF0Ba;EEzBb,WAAW;AD83Lf;;AC73LI;EACE,oBAAoB;ADg4L1B;;AC/3LI;EACE,oBAAoB;ADk4L1B;;ACj4LI;EACE,oBAAoB;ADo4L1B;;ACn4LE;EACE,qCAAiC;ADs4LrC;;ACl4LM;EACE,wCAAwC;ADq4LhD;;ACp4LM;EACE,UAAU;ADu4LlB;;ACt4LM;EACE,0CAA0C;ADy4LlD;;AqCpyLA;EACE,aAAa;ArCuyLf;;AqCryLA;;EAEE,ctC9J4B;EsC+J5B,cAAc;EACd,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;ArCwyLpB;;AqC9yLA;;EASM,qBAAqB;EACrB,sBAAsB;ArC0yL5B;;AqCxyLA;;EAEE,eAAe;ArC2yLjB;;AqC7yLA;;;;;EAOI,yBtCxK0B;EsCyK1B,ctCjK8B;AC+8LlC;;AqC5yLA;EACE,YAAY;EACZ,cAAc;ArC+yLhB;;AqCjzLA;EAII,mBA7KgC;ArC89LpC;;AqCrzLA;EAMI,UAAU;ArCmzLd;;AqCzzLA;EAQI,YAAY;EACZ,cAAc;ArCqzLlB;;AqC9zLA;EAWI,oCAAoC;EACpC,mBAhMmB;EAiMnB,kCAAkC;ArCuzLtC;;AqCp0LA;EAgBM,6BArLyC;EAsLzC,4BtCpL4B;AC4+LlC;;AqCz0LA;EAmBM,6BArL0C;EAsL1C,4BtCvL4B;EsCwL5B,0BArLuC;EAsLvC,wBArLqC;EAsLrC,ctC1L4B;EsC2L5B,kCAAwE;ArC0zL9E;;AqCxzLA;EACE,YAAY;EACZ,cAAc;ArC2zLhB;;AqCzzLA;EpC7DI,mBoC8DoC;ArC4zLxC;;AqC7zLA;EAII,qBtCrM8B;EsCsM9B,oBAAoB;EpC1DpB,aoC2D6B;ArC6zLjC;;AqC3zLA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,mBAAmB;ArC8zLrB;;AqCj0LA;EAKI,oBAAoB;EACpB,qBAAqB;ArCg0LzB;;AqC9zLA;EACE,4BtC3N4B;EsC4N5B,YAAY;EACZ,aAAa;EACb,WA/LyB;EAgMzB,gBAAgB;ArCi0LlB;;ACp9LE;EoC/BF;IAsLI,cAAc;ErCk0LhB;EqCj0LA;;IAGI,mBAAmB;IACnB,aAAa;ErCk0LjB;EqCj0LA;IAEI,aAAa;ErCk0LjB;EqC15LF;IA0FI,uBtC3O2B;IsC4O3B,4CtCzPyB;IsC0PzB,iBAAiB;ErCm0LnB;EqCt0LA;IAKI,cAAc;ErCo0LlB;EqCl0LA;IA3MA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErC+jMjB;EqCx0LA;IAKI,SAAS;ErCs0Lb;EqC30LA;IAOM,4CtCrQqB;EC4kM3B;EqC90LA;IASI,MAAM;ErCw0LV;EqCj1LA;IpClMA,iCAAiC;IoCgN3B,iCAA2C;IAC3C,cAAc;ErCu0LpB;EqCt0LA;;IAGI,oBA9QiB;ErCqlMrB;EqC10LA;;IAKI,uBAhRiB;ErCylMrB;AACF;;AC1gME;EoCmMA;;;;IAIE,oBAAoB;IACpB,aAAa;ErC20Lf;EqC9iMF;IAqOI,mBA1RmB;ErCsmMrB;EqC70LA;IAGI,kBA1R0B;ErCumM9B;EqCh1LA;;IAMM,mBAAmB;ErC80LzB;EqCp1LA;;IASM,kBtClOI;ECijMV;EqCx1LA;;;;IAgBQ,wCAAwC;ErC80LhD;EqC91LA;IAuBU,wCAAwC;ErC00LlD;EqCj2LA;IA4BU,4BtC7SkB;IsC8SlB,ctCzTiB;ECioM3B;EqCr2LA;IA+BU,4BtChTkB;IsCiTlB,ctCxSsB;ECinMhC;EqC7+LF;IAsKI,aAAa;ErC00Lf;EqCv+LF;;IAgKI,mBAAmB;IACnB,aAAa;ErC20Lf;EqCt9LF;IA8IM,oBAAoB;ErC20LxB;EqC70LA;IAKM,oDAAoD;ErC20L1D;EqCh1LA;IAOM,gCtClUsB;IsCmUtB,0BAAkE;IAClE,gBAAgB;IAChB,YAAY;IACZ,4CtC9UqB;IsC+UrB,SAAS;ErC40Lf;EqCx1LA;IAkBM,cAAc;ErCy0LpB;EqCx0LM;IAEE,UAAU;IACV,oBAAoB;IACpB,wBAAwB;ErCy0LhC;EqCrgMF;IA8LI,YAAY;IACZ,cAAc;ErC00LhB;EqCz0LA;IACE,2BAA2B;IpCvM3B,iBoCwMoC;ErC20LtC;EqC10LA;IACE,yBAAyB;IpC1MzB,kBoC2MoC;ErC40LtC;EqCl9LF;IAwII,uBtCxV2B;IsCyV3B,8BtClSc;IsCmSd,+BtCnSc;IsCoSd,6BtChW0B;IsCiW1B,2CtCzWyB;IsC0WzB,aAAa;IACb,mBAAmB;IpC3MnB,QoC4MuB;IACvB,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,WAjVkB;ErC8pMpB;EqCh+LF;IAqJM,sBAAsB;IACtB,mBAAmB;ErC80LvB;EqC71LA;IpC5ME,kBoC6NuC;ErC+0LzC;EqCh2LA;IAoBM,4BtC7WsB;IsC8WtB,ctCzXqB;ECwsM3B;EqCp2LA;IAuBM,4BtChXsB;IsCiXtB,ctCxW0B;ECwrMhC;EqC/0LE;IAEE,kBtC3TY;IsC4TZ,gBAAgB;IAChB,4EtCjYuB;IsCkYvB,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,wBAA8C;IAC9C,2BAA2B;IAC3B,yBtCjUM;IsCkUN,uCAAuC;ErCg1L3C;EqCp3LA;IAsCI,UAAU;IACV,QAAQ;ErCi1LZ;EqCv/LF;IAwKI,cAAc;ErCk1LhB;EqCj1LA;;IpCtPE,sBoCyPyC;ErCk1L3C;EqCr1LA;;IpCtPE,qBoC2PyC;ErCo1L3C;EqCl1LA;IAlWA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErCsuMjB;EqCx1LA;IAKI,SAAS;ErCs1Lb;EqC31LA;IAOM,4CtC5ZqB;ECmvM3B;EqC91LA;IASI,MAAM;ErCw1LV;EqCv1LA;;IAGI,oBA/ZiB;ErCuvMrB;EqC31LA;;IAKI,uBAjaiB;ErC2vMrB;EqC/1LA;;IAOI,oBAA4D;ErC41LhE;EqCn2LA;;IASI,uBAA+D;ErC81LnE;EqC51LA;;IAGI,ctC7auB;EC0wM3B;EqCh2LA;;IAKI,6BAla2C;ErCiwM/C;EqC91LA;IAKM,yBtCzasB;ECqwM5B;AACF;;AqCz1LA;EAEI,iCAA2C;ArC21L/C;;AsCnvMA;EAEE,evCFW;EuCGX,gBAnC0B;AtCwxM5B;;AsCxvMA;EAMI,kBvCLY;AC2vMhB;;AsC5vMA;EAQI,kBvCTY;ACiwMhB;;AsChwMA;EAUI,iBvCZW;ACswMf;;AsCpwMA;;EAcM,iBAAiB;EACjB,kBAAkB;EAClB,qBvCkBiB;ACyuMvB;;AsC3wMA;EAkBM,qBvCgBiB;AC6uMvB;;AsC3vMA;;EAEE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,kBAAkB;AtC8vMpB;;AsC5vMA;;;;EAME,cA9D6B;EA+D7B,uBAAuB;EACvB,eA/D8B;EAgE9B,mBA/DkC;EAgElC,oBA/DmC;EAgEnC,kBAAkB;AtC6vMpB;;AsC3vMA;;;EAGE,qBvCtE4B;EuCuE5B,cvC3E4B;EuC4E5B,gBxC3EoB;AEy0MtB;;AsCnwMA;;;EAOI,qBvC3E0B;EuC4E1B,cvC/E0B;ACi1M9B;;AsC1wMA;;;EAUI,qBvCjE8B;ACu0MlC;;AsChxMA;;;EAYI,iDvCvFyB;ACi2M7B;;AsCtxMA;;;EAcI,yBvCjF0B;EuCkF1B,qBvClF0B;EuCmF1B,gBAAgB;EAChB,cvCtF0B;EuCuF1B,YAAY;AtC8wMhB;;AsC5wMA;;EAEE,oBAtFkC;EAuFlC,qBAtFmC;EAuFnC,mBAAmB;AtC+wMrB;;AsC7wMA;EAEI,yBvCnF8B;EuCoF9B,qBvCpF8B;EuCqF9B,W5BzBY;AVwyMhB;;AsC7wMA;EACE,cvCrG4B;EuCsG5B,oBAAoB;AtCgxMtB;;AsC9wMA;EACE,eAAe;AtCixMjB;;AsClxMA;EAGI,gBAAgB;AtCmxMpB;;AC1yME;EqCxDF;IAmFI,eAAe;EtCoxMjB;EsC3yMF;;IA0BI,YAAY;IACZ,cAAc;EtCqxMhB;EsChyMF;IAcM,YAAY;IACZ,cAAc;EtCqxMlB;AACF;;ACrzME;EqCgBF;IAmBI,YAAY;IACZ,cAAc;IACd,2BAA2B;IAC3B,QAAQ;EtCuxMV;EsC91MF;;;;IA4EI,gBAAgB;IAChB,aAAa;EtCwxMf;EsCvxMA;IACE,QAAQ;EtCyxMV;EsCxxMA;IACE,QAAQ;EtC0xMV;EsCt4MF;IA8GI,8BAA8B;IAC9B,gBAAgB;IAChB,aAAa;EtC2xMf;EsC9xMA;IAMM,QAAQ;EtC2xMd;EsCjyMA;IAQM,uBAAuB;IACvB,QAAQ;EtC4xMd;EsCryMA;IAWM,QAAQ;EtC6xMd;EsCxyMA;IAcM,QAAQ;EtC6xMd;EsC3yMA;IAgBM,QAAQ;EtC8xMd;EsC9yMA;IAkBM,yBAAyB;IACzB,QAAQ;EtC+xMd;AACF;;AuCr6MA;EACE,kBxCqCgB;EwCpChB,0FxChC2B;EwCiC3B,exCEW;ACs6Mb;;AuC36MA;EAKI,qBxCWkB;AC+5MtB;;AuC/6MA;EAYQ,uBxC7BuB;EwC8BvB,cxC3CqB;ACk9M7B;;AuCp7MA;EAeQ,0BxChCuB;ACy8M/B;;AuCx7MA;EAiBQ,YxClCuB;AC68M/B;;AuC57MA;EAYQ,yBxC1CqB;EwC2CrB,YxC9BuB;ACk9M/B;;AuCj8MA;EAeQ,4BxC7CqB;ACm+M7B;;AuCr8MA;EAiBQ,cxC/CqB;ACu+M7B;;AuCz8MA;EAYQ,4BxC/BsB;EwCgCtB,yB7BmCa;AV85MrB;;AuC98MA;EAeQ,+BxClCsB;ACq+M9B;;AuCl9MA;EAiBQ,iBxCpCsB;ACy+M9B;;AuCt9MA;EAYQ,yBxCtCsB;EwCuCtB,W7BqCQ;AVy6MhB;;AuC39MA;EAeQ,4BxCzCsB;ACy/M9B;;AuC/9MA;EAiBQ,cxC3CsB;AC6/M9B;;AuCn+MA;EAYQ,yBxCxB0B;EwCyB1B,W7BqCQ;AVs7MhB;;AuCx+MA;EAeQ,4BxC3B0B;ACw/MlC;;AuC5+MA;EAiBQ,cxC7B0B;AC4/MlC;;AuCh/MA;EAYQ,yBxCtB0B;EwCuB1B,W7BqCQ;AVm8MhB;;AuCr/MA;EAeQ,4BxCzB0B;ACmgNlC;;AuCz/MA;EAiBQ,cxC3B0B;ACugNlC;;AuC7/MA;EAYQ,yBxCvB0B;EwCwB1B,W7BqCQ;AVg9MhB;;AuClgNA;EAeQ,4BxC1B0B;ACihNlC;;AuCtgNA;EAiBQ,cxC5B0B;ACqhNlC;;AuC1gNA;EAYQ,yBxCzB0B;EwC0B1B,W7BqCQ;AV69MhB;;AuC/gNA;EAeQ,4BxC5B0B;ACgiNlC;;AuCnhNA;EAiBQ,cxC9B0B;ACoiNlC;;AuCvhNA;EAYQ,yBxC1B0B;EwC2B1B,yB7BmCa;AV4+MrB;;AuC5hNA;EAeQ,4BxC7B0B;AC8iNlC;;AuChiNA;EAiBQ,cxC/B0B;ACkjNlC;;AuCpiNA;EAYQ,yBxCpByB;EwCqBzB,W7BqCQ;AVu/MhB;;AuCziNA;EAeQ,4BxCvByB;ACqjNjC;;AuC7iNA;EAiBQ,cxCzByB;ACyjNjC;;AuC9hNA;;EAGI,gCxC3C2B;AC2kN/B;;AuC9hNA;EACE,yBxC9C6B;EwC+C7B,0BAA8C;EAC9C,cxCrD4B;EwCsD5B,iBAhDyB;EAiDzB,gBxCjBe;EwCkBf,iBArD8B;EAsD9B,mBArDgC;AvCslNlC;;AuC/hNA;EACE,qBAAqB;EACrB,aAAa;EACb,kBArD4B;EAsD5B,uBAAuB;AvCkiNzB;;AuCtiNA;EAMI,gCxC7D0B;EwC8D1B,mBAAmB;EACnB,cAAc;AvCoiNlB;;AuC5iNA;EAWM,4BxCrEwB;EwCsExB,cxCvEwB;AC4mN9B;;AuCniNA;EAEI,cxC1E0B;AC+mN9B;;AuCviNA;EAIM,cxC7D4B;AComNlC;;AuCriNA;EACE,mBAAmB;EACnB,cxCjF4B;EwCkF5B,aAAa;EACb,2BAA2B;EAC3B,qBAAqB;AvCwiNvB;;AuC7iNA;EtCqEI,mBsC9DsC;AvC0iN1C;;AuCjjNA;EASI,YAAY;EACZ,cAAc;EACd,WAAW;AvC4iNf;;AuCvjNA;EAaI,eAAe;AvC8iNnB;;AuC3jNA;EAeI,0BxC9E8B;EwC+E9B,cxC/F0B;AC+oN9B;;AuChkNA;EAkBM,cxCjF4B;ACmoNlC;;AuCpkNA;EAoBI,8BxCnCc;EwCoCd,+BxCpCc;ACwlNlB;;AuCljNA;;EAEE,eAAe;AvCqjNjB;;AuCvjNA;;EAII,4BxCnG0B;AC2pN9B;;AuCtjNA;EtChGE,qBAAqB;EACrB,esCgGgB;EtC/FhB,WsC+FqB;EtC9FrB,gBsC8FqB;EtC7FrB,kBAAkB;EAClB,mBAAmB;EACnB,UsC2FqB;EACrB,cxC5G4B;EEkJ1B,mBsCrCoC;AvC+jNxC;;AuClkNA;EAKI,kBAAkB;EAClB,oBAAoB;AvCikNxB;;AwC3pNA;EvCgCE,iCAAiC;EuC5BjC,oBAAoB;EACpB,aAAa;EACb,ezCCW;EyCAX,8BAA8B;EAC9B,gBAAgB;EAChB,gBAAgB;EAChB,mBAAmB;AxC4pNrB;;AwCtqNA;EAYI,mBAAmB;EACnB,4BzCjC0B;EyCkC1B,0BAzC4B;EA0C5B,wBAzC0B;EA0C1B,czCvC0B;EyCwC1B,aAAa;EACb,uBAAuB;EACvB,mBAA6C;EAC7C,kBAxCyB;EAyCzB,mBAAmB;AxC8pNvB;;AwCnrNA;EAuBM,4BzC/CwB;EyCgDxB,czChDwB;ACgtN9B;;AwCxrNA;EA0BI,cAAc;AxCkqNlB;;AwC5rNA;EA6BQ,4BzCrC0B;EyCsC1B,czCtC0B;ACysNlC;;AwCjsNA;EAgCI,mBAAmB;EACnB,4BzCrD0B;EyCsD1B,0BA7D4B;EA8D5B,wBA7D0B;EA8D1B,aAAa;EACb,YAAY;EACZ,cAAc;EACd,2BAA2B;AxCqqN/B;;AwC5sNA;EAyCM,qBAAqB;AxCuqN3B;;AwChtNA;EA2CM,UAAU;EACV,uBAAuB;EACvB,oBAAoB;EACpB,qBAAqB;AxCyqN3B;;AwCvtNA;EAgDM,yBAAyB;EACzB,oBAAoB;AxC2qN1B;;AwC5tNA;EvC4HI,kBuCxEuC;AxC4qN3C;;AwChuNA;EvC4HI,mBuCtEuC;AxC8qN3C;;AwCpuNA;EA0DM,uBAAuB;AxC8qN7B;;AwCxuNA;EA6DM,yBAAyB;AxC+qN/B;;AwC5uNA;EAiEM,6BAA6B;EAI3B,0BzC9BI;AC0sNZ;;AwCjvNA;EAuEQ,4BzCxFsB;EyCyFtB,4BzC5FsB;AC0wN9B;;AwCtvNA;EA4EU,uBzC3FqB;EyC4FrB,qBzCjGoB;EyCkGpB,2CAA2E;AxC8qNrF;;AwC5vNA;EAiFM,YAAY;EACZ,cAAc;AxC+qNpB;;AwCjwNA;EAqFM,qBzCzGwB;EyC0GxB,mBA/F+B;EAgG/B,iBA/F6B;EAgG7B,gBAAgB;EAChB,kBAAkB;AxCgrNxB;;AwCzwNA;EA2FQ,4BzC5GsB;EyC6GtB,qBzCjHsB;EyCkHtB,UAAU;AxCkrNlB;;AwC/wNA;EvC4HI,kBuC5BuE;AxCmrN3E;;AwCnxNA;EAsGU,4BzC/DE;EyCgEF,+BzChEE;ACivNZ;;AwCxxNA;EA6GU,2BzCtEE;EyCuEF,8BzCvEE;ACsvNZ;;AwC7xNA;EAiHU,yBzCzHwB;EyC0HxB,qBzC1HwB;EyC2HxB,W9B/DM;E8BgEN,UAAU;AxCgrNpB;;AwCpyNA;EAsHM,mBAAmB;AxCkrNzB;;AwCxyNA;EA+HY,kCzCtFW;EyCuFX,+BzCvFW;EyCwFX,qBAAqB;AxC6qNjC;;AwC9yNA;EAwIY,iCzC/FW;EyCgGX,8BzChGW;EyCiGX,oBAAoB;AxC0qNhC;;AwCpzNA;EA6II,kBzCrIY;ACgzNhB;;AwCxzNA;EA+II,kBzCzIY;ACszNhB;;AwC5zNA;EAiJI,iBzC5IW;AC2zNf;;AyC91NA,eAAA;ACIA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,gBAPkB;A1Cq2NpB;;A0C71NE;EACE,UAAU;EACV,YAAY;A1Cg2NhB;;A0C/1NE;EACE,UAAU;EACV,WAAW;A1Ck2Nf;;A0Cj2NE;EACE,UAAU;EACV,UAAU;A1Co2Nd;;A0Cn2NE;EACE,UAAU;EACV,eAAe;A1Cs2NnB;;A0Cr2NE;EACE,UAAU;EACV,UAAU;A1Cw2Nd;;A0Cv2NE;EACE,UAAU;EACV,eAAe;A1C02NnB;;A0Cz2NE;EACE,UAAU;EACV,UAAU;A1C42Nd;;A0C32NE;EACE,UAAU;EACV,UAAU;A1C82Nd;;A0C72NE;EACE,UAAU;EACV,UAAU;A1Cg3Nd;;A0C/2NE;EACE,UAAU;EACV,UAAU;A1Ck3Nd;;A0Cj3NE;EACE,UAAU;EACV,UAAU;A1Co3Nd;;A0Cn3NE;EzC+GE,iByC9GmC;A1Cs3NvC;;A0Cr3NE;EzC6GE,sByC5GwC;A1Cw3N5C;;A0Cv3NE;EzC2GE,iByC1GmC;A1C03NvC;;A0Cz3NE;EzCyGE,sByCxGwC;A1C43N5C;;A0C33NE;EzCuGE,iByCtGmC;A1C83NvC;;A0C73NE;EzCqGE,iByCpGmC;A1Cg4NvC;;A0C/3NE;EzCmGE,iByClGmC;A1Ck4NvC;;A0Cj4NE;EzCiGE,iByChGmC;A1Co4NvC;;A0Cn4NE;EzC+FE,iByC9FmC;A1Cs4NvC;;A0Cp4NI;EACE,UAAU;EACV,SAAiC;A1Cu4NvC;;A0Ct4NI;EzCyFA,gByCxF4D;A1Cy4NhE;;A0C74NI;EACE,UAAU;EACV,eAAiC;A1Cg5NvC;;A0C/4NI;EzCyFA,sByCxF4D;A1Ck5NhE;;A0Ct5NI;EACE,UAAU;EACV,gBAAiC;A1Cy5NvC;;A0Cx5NI;EzCyFA,uByCxF4D;A1C25NhE;;A0C/5NI;EACE,UAAU;EACV,UAAiC;A1Ck6NvC;;A0Cj6NI;EzCyFA,iByCxF4D;A1Co6NhE;;A0Cx6NI;EACE,UAAU;EACV,gBAAiC;A1C26NvC;;A0C16NI;EzCyFA,uByCxF4D;A1C66NhE;;A0Cj7NI;EACE,UAAU;EACV,gBAAiC;A1Co7NvC;;A0Cn7NI;EzCyFA,uByCxF4D;A1Cs7NhE;;A0C17NI;EACE,UAAU;EACV,UAAiC;A1C67NvC;;A0C57NI;EzCyFA,iByCxF4D;A1C+7NhE;;A0Cn8NI;EACE,UAAU;EACV,gBAAiC;A1Cs8NvC;;A0Cr8NI;EzCyFA,uByCxF4D;A1Cw8NhE;;A0C58NI;EACE,UAAU;EACV,gBAAiC;A1C+8NvC;;A0C98NI;EzCyFA,uByCxF4D;A1Ci9NhE;;A0Cr9NI;EACE,UAAU;EACV,UAAiC;A1Cw9NvC;;A0Cv9NI;EzCyFA,iByCxF4D;A1C09NhE;;A0C99NI;EACE,UAAU;EACV,gBAAiC;A1Ci+NvC;;A0Ch+NI;EzCyFA,uByCxF4D;A1Cm+NhE;;A0Cv+NI;EACE,UAAU;EACV,gBAAiC;A1C0+NvC;;A0Cz+NI;EzCyFA,uByCxF4D;A1C4+NhE;;A0Ch/NI;EACE,UAAU;EACV,WAAiC;A1Cm/NvC;;A0Cl/NI;EzCyFA,kByCxF4D;A1Cq/NhE;;AC19NE;EyCzFF;IAiEM,UAAU;IACV,YAAY;E1Cu/NhB;E0CzjOF;IAoEM,UAAU;IACV,WAAW;E1Cw/Nf;E0C7jOF;IAuEM,UAAU;IACV,UAAU;E1Cy/Nd;E0CjkOF;IA0EM,UAAU;IACV,eAAe;E1C0/NnB;E0CrkOF;IA6EM,UAAU;IACV,UAAU;E1C2/Nd;E0CzkOF;IAgFM,UAAU;IACV,eAAe;E1C4/NnB;E0C7kOF;IAmFM,UAAU;IACV,UAAU;E1C6/Nd;E0CjlOF;IAsFM,UAAU;IACV,UAAU;E1C8/Nd;E0CrlOF;IAyFM,UAAU;IACV,UAAU;E1C+/Nd;E0CzlOF;IA4FM,UAAU;IACV,UAAU;E1CggOd;E0C7lOF;IA+FM,UAAU;IACV,UAAU;E1CigOd;E0CjmOF;IzCsJI,iByCpDqC;E1CkgOvC;E0CpmOF;IzCsJI,sByClD0C;E1CmgO5C;E0CvmOF;IzCsJI,iByChDqC;E1CogOvC;E0C1mOF;IzCsJI,sByC9C0C;E1CqgO5C;E0C7mOF;IzCsJI,iByC5CqC;E1CsgOvC;E0ChnOF;IzCsJI,iByC1CqC;E1CugOvC;E0CnnOF;IzCsJI,iByCxCqC;E1CwgOvC;E0CtnOF;IzCsJI,iByCtCqC;E1CygOvC;E0CznOF;IzCsJI,iByCpCqC;E1C0gOvC;E0C5nOF;IAqHQ,UAAU;IACV,SAAiC;E1C0gOvC;E0ChoOF;IzCsJI,gByC9B8D;E1C2gOhE;E0CnoOF;IAqHQ,UAAU;IACV,eAAiC;E1CihOvC;E0CvoOF;IzCsJI,sByC9B8D;E1CkhOhE;E0C1oOF;IAqHQ,UAAU;IACV,gBAAiC;E1CwhOvC;E0C9oOF;IzCsJI,uByC9B8D;E1CyhOhE;E0CjpOF;IAqHQ,UAAU;IACV,UAAiC;E1C+hOvC;E0CrpOF;IzCsJI,iByC9B8D;E1CgiOhE;E0CxpOF;IAqHQ,UAAU;IACV,gBAAiC;E1CsiOvC;E0C5pOF;IzCsJI,uByC9B8D;E1CuiOhE;E0C/pOF;IAqHQ,UAAU;IACV,gBAAiC;E1C6iOvC;E0CnqOF;IzCsJI,uByC9B8D;E1C8iOhE;E0CtqOF;IAqHQ,UAAU;IACV,UAAiC;E1CojOvC;E0C1qOF;IzCsJI,iByC9B8D;E1CqjOhE;E0C7qOF;IAqHQ,UAAU;IACV,gBAAiC;E1C2jOvC;E0CjrOF;IzCsJI,uByC9B8D;E1C4jOhE;E0CprOF;IAqHQ,UAAU;IACV,gBAAiC;E1CkkOvC;E0CxrOF;IzCsJI,uByC9B8D;E1CmkOhE;E0C3rOF;IAqHQ,UAAU;IACV,UAAiC;E1CykOvC;E0C/rOF;IzCsJI,iByC9B8D;E1C0kOhE;E0ClsOF;IAqHQ,UAAU;IACV,gBAAiC;E1CglOvC;E0CtsOF;IzCsJI,uByC9B8D;E1CilOhE;E0CzsOF;IAqHQ,UAAU;IACV,gBAAiC;E1CulOvC;E0C7sOF;IzCsJI,uByC9B8D;E1CwlOhE;E0ChtOF;IAqHQ,UAAU;IACV,WAAiC;E1C8lOvC;E0CptOF;IzCsJI,kByC9B8D;E1C+lOhE;AACF;;AC3nOE;EyC7FF;IA4HM,UAAU;IACV,YAAY;E1CimOhB;E0C9tOF;IAgIM,UAAU;IACV,WAAW;E1CimOf;E0CluOF;IAoIM,UAAU;IACV,UAAU;E1CimOd;E0CtuOF;IAwIM,UAAU;IACV,eAAe;E1CimOnB;E0C1uOF;IA4IM,UAAU;IACV,UAAU;E1CimOd;E0C9uOF;IAgJM,UAAU;IACV,eAAe;E1CimOnB;E0ClvOF;IAoJM,UAAU;IACV,UAAU;E1CimOd;E0CtvOF;IAwJM,UAAU;IACV,UAAU;E1CimOd;E0C1vOF;IA4JM,UAAU;IACV,UAAU;E1CimOd;E0C9vOF;IAgKM,UAAU;IACV,UAAU;E1CimOd;E0ClwOF;IAoKM,UAAU;IACV,UAAU;E1CimOd;E0CtwOF;IzCsJI,iByCkBqC;E1CimOvC;E0CzwOF;IzCsJI,sByCqB0C;E1CimO5C;E0C5wOF;IzCsJI,iByCwBqC;E1CimOvC;E0C/wOF;IzCsJI,sByC2B0C;E1CimO5C;E0ClxOF;IzCsJI,iByC8BqC;E1CimOvC;E0CrxOF;IzCsJI,iByCiCqC;E1CimOvC;E0CxxOF;IzCsJI,iByCoCqC;E1CimOvC;E0C3xOF;IzCsJI,iByCuCqC;E1CimOvC;E0C9xOF;IzCsJI,iByC0CqC;E1CimOvC;E0CjyOF;IAoMQ,UAAU;IACV,SAAiC;E1CgmOvC;E0CryOF;IzCsJI,gByCkD8D;E1CgmOhE;E0CxyOF;IAoMQ,UAAU;IACV,eAAiC;E1CumOvC;E0C5yOF;IzCsJI,sByCkD8D;E1CumOhE;E0C/yOF;IAoMQ,UAAU;IACV,gBAAiC;E1C8mOvC;E0CnzOF;IzCsJI,uByCkD8D;E1C8mOhE;E0CtzOF;IAoMQ,UAAU;IACV,UAAiC;E1CqnOvC;E0C1zOF;IzCsJI,iByCkD8D;E1CqnOhE;E0C7zOF;IAoMQ,UAAU;IACV,gBAAiC;E1C4nOvC;E0Cj0OF;IzCsJI,uByCkD8D;E1C4nOhE;E0Cp0OF;IAoMQ,UAAU;IACV,gBAAiC;E1CmoOvC;E0Cx0OF;IzCsJI,uByCkD8D;E1CmoOhE;E0C30OF;IAoMQ,UAAU;IACV,UAAiC;E1C0oOvC;E0C/0OF;IzCsJI,iByCkD8D;E1C0oOhE;E0Cl1OF;IAoMQ,UAAU;IACV,gBAAiC;E1CipOvC;E0Ct1OF;IzCsJI,uByCkD8D;E1CipOhE;E0Cz1OF;IAoMQ,UAAU;IACV,gBAAiC;E1CwpOvC;E0C71OF;IzCsJI,uByCkD8D;E1CwpOhE;E0Ch2OF;IAoMQ,UAAU;IACV,UAAiC;E1C+pOvC;E0Cp2OF;IzCsJI,iByCkD8D;E1C+pOhE;E0Cv2OF;IAoMQ,UAAU;IACV,gBAAiC;E1CsqOvC;E0C32OF;IzCsJI,uByCkD8D;E1CsqOhE;E0C92OF;IAoMQ,UAAU;IACV,gBAAiC;E1C6qOvC;E0Cl3OF;IzCsJI,uByCkD8D;E1C6qOhE;E0Cr3OF;IAoMQ,UAAU;IACV,WAAiC;E1CorOvC;E0Cz3OF;IzCsJI,kByCkD8D;E1CorOhE;AACF;;ACxxOE;EyCrGF;IA2MM,UAAU;IACV,YAAY;E1CurOhB;E0Cn4OF;IA8MM,UAAU;IACV,WAAW;E1CwrOf;E0Cv4OF;IAiNM,UAAU;IACV,UAAU;E1CyrOd;E0C34OF;IAoNM,UAAU;IACV,eAAe;E1C0rOnB;E0C/4OF;IAuNM,UAAU;IACV,UAAU;E1C2rOd;E0Cn5OF;IA0NM,UAAU;IACV,eAAe;E1C4rOnB;E0Cv5OF;IA6NM,UAAU;IACV,UAAU;E1C6rOd;E0C35OF;IAgOM,UAAU;IACV,UAAU;E1C8rOd;E0C/5OF;IAmOM,UAAU;IACV,UAAU;E1C+rOd;E0Cn6OF;IAsOM,UAAU;IACV,UAAU;E1CgsOd;E0Cv6OF;IAyOM,UAAU;IACV,UAAU;E1CisOd;E0C36OF;IzCsJI,iByCsFqC;E1CksOvC;E0C96OF;IzCsJI,sByCwF0C;E1CmsO5C;E0Cj7OF;IzCsJI,iByC0FqC;E1CosOvC;E0Cp7OF;IzCsJI,sByC4F0C;E1CqsO5C;E0Cv7OF;IzCsJI,iByC8FqC;E1CssOvC;E0C17OF;IzCsJI,iByCgGqC;E1CusOvC;E0C77OF;IzCsJI,iByCkGqC;E1CwsOvC;E0Ch8OF;IzCsJI,iByCoGqC;E1CysOvC;E0Cn8OF;IzCsJI,iByCsGqC;E1C0sOvC;E0Ct8OF;IA+PQ,UAAU;IACV,SAAiC;E1C0sOvC;E0C18OF;IzCsJI,gByC4G8D;E1C2sOhE;E0C78OF;IA+PQ,UAAU;IACV,eAAiC;E1CitOvC;E0Cj9OF;IzCsJI,sByC4G8D;E1CktOhE;E0Cp9OF;IA+PQ,UAAU;IACV,gBAAiC;E1CwtOvC;E0Cx9OF;IzCsJI,uByC4G8D;E1CytOhE;E0C39OF;IA+PQ,UAAU;IACV,UAAiC;E1C+tOvC;E0C/9OF;IzCsJI,iByC4G8D;E1CguOhE;E0Cl+OF;IA+PQ,UAAU;IACV,gBAAiC;E1CsuOvC;E0Ct+OF;IzCsJI,uByC4G8D;E1CuuOhE;E0Cz+OF;IA+PQ,UAAU;IACV,gBAAiC;E1C6uOvC;E0C7+OF;IzCsJI,uByC4G8D;E1C8uOhE;E0Ch/OF;IA+PQ,UAAU;IACV,UAAiC;E1CovOvC;E0Cp/OF;IzCsJI,iByC4G8D;E1CqvOhE;E0Cv/OF;IA+PQ,UAAU;IACV,gBAAiC;E1C2vOvC;E0C3/OF;IzCsJI,uByC4G8D;E1C4vOhE;E0C9/OF;IA+PQ,UAAU;IACV,gBAAiC;E1CkwOvC;E0ClgPF;IzCsJI,uByC4G8D;E1CmwOhE;E0CrgPF;IA+PQ,UAAU;IACV,UAAiC;E1CywOvC;E0CzgPF;IzCsJI,iByC4G8D;E1C0wOhE;E0C5gPF;IA+PQ,UAAU;IACV,gBAAiC;E1CgxOvC;E0ChhPF;IzCsJI,uByC4G8D;E1CixOhE;E0CnhPF;IA+PQ,UAAU;IACV,gBAAiC;E1CuxOvC;E0CvhPF;IzCsJI,uByC4G8D;E1CwxOhE;E0C1hPF;IA+PQ,UAAU;IACV,WAAiC;E1C8xOvC;E0C9hPF;IzCsJI,kByC4G8D;E1C+xOhE;AACF;;ACz7OE;EyCzGF;IAqQM,UAAU;IACV,YAAY;E1CkyOhB;E0CxiPF;IAwQM,UAAU;IACV,WAAW;E1CmyOf;E0C5iPF;IA2QM,UAAU;IACV,UAAU;E1CoyOd;E0ChjPF;IA8QM,UAAU;IACV,eAAe;E1CqyOnB;E0CpjPF;IAiRM,UAAU;IACV,UAAU;E1CsyOd;E0CxjPF;IAoRM,UAAU;IACV,eAAe;E1CuyOnB;E0C5jPF;IAuRM,UAAU;IACV,UAAU;E1CwyOd;E0ChkPF;IA0RM,UAAU;IACV,UAAU;E1CyyOd;E0CpkPF;IA6RM,UAAU;IACV,UAAU;E1C0yOd;E0CxkPF;IAgSM,UAAU;IACV,UAAU;E1C2yOd;E0C5kPF;IAmSM,UAAU;IACV,UAAU;E1C4yOd;E0ChlPF;IzCsJI,iByCgJqC;E1C6yOvC;E0CnlPF;IzCsJI,sByCkJ0C;E1C8yO5C;E0CtlPF;IzCsJI,iByCoJqC;E1C+yOvC;E0CzlPF;IzCsJI,sByCsJ0C;E1CgzO5C;E0C5lPF;IzCsJI,iByCwJqC;E1CizOvC;E0C/lPF;IzCsJI,iByC0JqC;E1CkzOvC;E0ClmPF;IzCsJI,iByC4JqC;E1CmzOvC;E0CrmPF;IzCsJI,iByC8JqC;E1CozOvC;E0CxmPF;IzCsJI,iByCgKqC;E1CqzOvC;E0C3mPF;IAyTQ,UAAU;IACV,SAAiC;E1CqzOvC;E0C/mPF;IzCsJI,gByCsK8D;E1CszOhE;E0ClnPF;IAyTQ,UAAU;IACV,eAAiC;E1C4zOvC;E0CtnPF;IzCsJI,sByCsK8D;E1C6zOhE;E0CznPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cm0OvC;E0C7nPF;IzCsJI,uByCsK8D;E1Co0OhE;E0ChoPF;IAyTQ,UAAU;IACV,UAAiC;E1C00OvC;E0CpoPF;IzCsJI,iByCsK8D;E1C20OhE;E0CvoPF;IAyTQ,UAAU;IACV,gBAAiC;E1Ci1OvC;E0C3oPF;IzCsJI,uByCsK8D;E1Ck1OhE;E0C9oPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cw1OvC;E0ClpPF;IzCsJI,uByCsK8D;E1Cy1OhE;E0CrpPF;IAyTQ,UAAU;IACV,UAAiC;E1C+1OvC;E0CzpPF;IzCsJI,iByCsK8D;E1Cg2OhE;E0C5pPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cs2OvC;E0ChqPF;IzCsJI,uByCsK8D;E1Cu2OhE;E0CnqPF;IAyTQ,UAAU;IACV,gBAAiC;E1C62OvC;E0CvqPF;IzCsJI,uByCsK8D;E1C82OhE;E0C1qPF;IAyTQ,UAAU;IACV,UAAiC;E1Co3OvC;E0C9qPF;IzCsJI,iByCsK8D;E1Cq3OhE;E0CjrPF;IAyTQ,UAAU;IACV,gBAAiC;E1C23OvC;E0CrrPF;IzCsJI,uByCsK8D;E1C43OhE;E0CxrPF;IAyTQ,UAAU;IACV,gBAAiC;E1Ck4OvC;E0C5rPF;IzCsJI,uByCsK8D;E1Cm4OhE;E0C/rPF;IAyTQ,UAAU;IACV,WAAiC;E1Cy4OvC;E0CnsPF;IzCsJI,kByCsK8D;E1C04OhE;AACF;;AC/kPI;EyCxHJ;IA+TM,UAAU;IACV,YAAY;E1C64OhB;E0C7sPF;IAkUM,UAAU;IACV,WAAW;E1C84Of;E0CjtPF;IAqUM,UAAU;IACV,UAAU;E1C+4Od;E0CrtPF;IAwUM,UAAU;IACV,eAAe;E1Cg5OnB;E0CztPF;IA2UM,UAAU;IACV,UAAU;E1Ci5Od;E0C7tPF;IA8UM,UAAU;IACV,eAAe;E1Ck5OnB;E0CjuPF;IAiVM,UAAU;IACV,UAAU;E1Cm5Od;E0CruPF;IAoVM,UAAU;IACV,UAAU;E1Co5Od;E0CzuPF;IAuVM,UAAU;IACV,UAAU;E1Cq5Od;E0C7uPF;IA0VM,UAAU;IACV,UAAU;E1Cs5Od;E0CjvPF;IA6VM,UAAU;IACV,UAAU;E1Cu5Od;E0CrvPF;IzCsJI,iByC0MqC;E1Cw5OvC;E0CxvPF;IzCsJI,sByC4M0C;E1Cy5O5C;E0C3vPF;IzCsJI,iByC8MqC;E1C05OvC;E0C9vPF;IzCsJI,sByCgN0C;E1C25O5C;E0CjwPF;IzCsJI,iByCkNqC;E1C45OvC;E0CpwPF;IzCsJI,iByCoNqC;E1C65OvC;E0CvwPF;IzCsJI,iByCsNqC;E1C85OvC;E0C1wPF;IzCsJI,iByCwNqC;E1C+5OvC;E0C7wPF;IzCsJI,iByC0NqC;E1Cg6OvC;E0ChxPF;IAmXQ,UAAU;IACV,SAAiC;E1Cg6OvC;E0CpxPF;IzCsJI,gByCgO8D;E1Ci6OhE;E0CvxPF;IAmXQ,UAAU;IACV,eAAiC;E1Cu6OvC;E0C3xPF;IzCsJI,sByCgO8D;E1Cw6OhE;E0C9xPF;IAmXQ,UAAU;IACV,gBAAiC;E1C86OvC;E0ClyPF;IzCsJI,uByCgO8D;E1C+6OhE;E0CryPF;IAmXQ,UAAU;IACV,UAAiC;E1Cq7OvC;E0CzyPF;IzCsJI,iByCgO8D;E1Cs7OhE;E0C5yPF;IAmXQ,UAAU;IACV,gBAAiC;E1C47OvC;E0ChzPF;IzCsJI,uByCgO8D;E1C67OhE;E0CnzPF;IAmXQ,UAAU;IACV,gBAAiC;E1Cm8OvC;E0CvzPF;IzCsJI,uByCgO8D;E1Co8OhE;E0C1zPF;IAmXQ,UAAU;IACV,UAAiC;E1C08OvC;E0C9zPF;IzCsJI,iByCgO8D;E1C28OhE;E0Cj0PF;IAmXQ,UAAU;IACV,gBAAiC;E1Ci9OvC;E0Cr0PF;IzCsJI,uByCgO8D;E1Ck9OhE;E0Cx0PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cw9OvC;E0C50PF;IzCsJI,uByCgO8D;E1Cy9OhE;E0C/0PF;IAmXQ,UAAU;IACV,UAAiC;E1C+9OvC;E0Cn1PF;IzCsJI,iByCgO8D;E1Cg+OhE;E0Ct1PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cs+OvC;E0C11PF;IzCsJI,uByCgO8D;E1Cu+OhE;E0C71PF;IAmXQ,UAAU;IACV,gBAAiC;E1C6+OvC;E0Cj2PF;IzCsJI,uByCgO8D;E1C8+OhE;E0Cp2PF;IAmXQ,UAAU;IACV,WAAiC;E1Co/OvC;E0Cx2PF;IzCsJI,kByCgO8D;E1Cq/OhE;AACF;;ACruPI;EyCvIJ;IAyXM,UAAU;IACV,YAAY;E1Cw/OhB;E0Cl3PF;IA4XM,UAAU;IACV,WAAW;E1Cy/Of;E0Ct3PF;IA+XM,UAAU;IACV,UAAU;E1C0/Od;E0C13PF;IAkYM,UAAU;IACV,eAAe;E1C2/OnB;E0C93PF;IAqYM,UAAU;IACV,UAAU;E1C4/Od;E0Cl4PF;IAwYM,UAAU;IACV,eAAe;E1C6/OnB;E0Ct4PF;IA2YM,UAAU;IACV,UAAU;E1C8/Od;E0C14PF;IA8YM,UAAU;IACV,UAAU;E1C+/Od;E0C94PF;IAiZM,UAAU;IACV,UAAU;E1CggPd;E0Cl5PF;IAoZM,UAAU;IACV,UAAU;E1CigPd;E0Ct5PF;IAuZM,UAAU;IACV,UAAU;E1CkgPd;E0C15PF;IzCsJI,iByCoQqC;E1CmgPvC;E0C75PF;IzCsJI,sByCsQ0C;E1CogP5C;E0Ch6PF;IzCsJI,iByCwQqC;E1CqgPvC;E0Cn6PF;IzCsJI,sByC0Q0C;E1CsgP5C;E0Ct6PF;IzCsJI,iByC4QqC;E1CugPvC;E0Cz6PF;IzCsJI,iByC8QqC;E1CwgPvC;E0C56PF;IzCsJI,iByCgRqC;E1CygPvC;E0C/6PF;IzCsJI,iByCkRqC;E1C0gPvC;E0Cl7PF;IzCsJI,iByCoRqC;E1C2gPvC;E0Cr7PF;IA6aQ,UAAU;IACV,SAAiC;E1C2gPvC;E0Cz7PF;IzCsJI,gByC0R8D;E1C4gPhE;E0C57PF;IA6aQ,UAAU;IACV,eAAiC;E1CkhPvC;E0Ch8PF;IzCsJI,sByC0R8D;E1CmhPhE;E0Cn8PF;IA6aQ,UAAU;IACV,gBAAiC;E1CyhPvC;E0Cv8PF;IzCsJI,uByC0R8D;E1C0hPhE;E0C18PF;IA6aQ,UAAU;IACV,UAAiC;E1CgiPvC;E0C98PF;IzCsJI,iByC0R8D;E1CiiPhE;E0Cj9PF;IA6aQ,UAAU;IACV,gBAAiC;E1CuiPvC;E0Cr9PF;IzCsJI,uByC0R8D;E1CwiPhE;E0Cx9PF;IA6aQ,UAAU;IACV,gBAAiC;E1C8iPvC;E0C59PF;IzCsJI,uByC0R8D;E1C+iPhE;E0C/9PF;IA6aQ,UAAU;IACV,UAAiC;E1CqjPvC;E0Cn+PF;IzCsJI,iByC0R8D;E1CsjPhE;E0Ct+PF;IA6aQ,UAAU;IACV,gBAAiC;E1C4jPvC;E0C1+PF;IzCsJI,uByC0R8D;E1C6jPhE;E0C7+PF;IA6aQ,UAAU;IACV,gBAAiC;E1CmkPvC;E0Cj/PF;IzCsJI,uByC0R8D;E1CokPhE;E0Cp/PF;IA6aQ,UAAU;IACV,UAAiC;E1C0kPvC;E0Cx/PF;IzCsJI,iByC0R8D;E1C2kPhE;E0C3/PF;IA6aQ,UAAU;IACV,gBAAiC;E1CilPvC;E0C//PF;IzCsJI,uByC0R8D;E1CklPhE;E0ClgQF;IA6aQ,UAAU;IACV,gBAAiC;E1CwlPvC;E0CtgQF;IzCsJI,uByC0R8D;E1CylPhE;E0CzgQF;IA6aQ,UAAU;IACV,WAAiC;E1C+lPvC;E0C7gQF;IzCsJI,kByC0R8D;E1CgmPhE;AACF;;A0C/lPA;EzC5RI,sByCxJgB;EzCwJhB,qByCxJgB;EAublB,oBAvbkB;A1CyhQpB;;A0CrmPA;EAKI,uBAzbgB;A1C6hQpB;;A0CzmPA;EAOI,qCAA4C;A1CsmPhD;;A0C7mPA;EAUI,uBAAuB;A1CumP3B;;A0CjnPA;EzC5RI,eyCwSiC;EzCxSjC,cyCySiC;EACjC,aAAa;A1CymPjB;;A0CvnPA;EAgBM,SAAS;EACT,qBAAqB;A1C2mP3B;;A0C5nPA;EAmBM,qBAAqB;A1C6mP3B;;A0ChoPA;EAqBM,gBAAgB;A1C+mPtB;;A0CpoPA;EAuBI,aAAa;A1CinPjB;;A0CxoPA;EAyBI,eAAe;A1CmnPnB;;A0C5oPA;EA2BI,mBAAmB;A1CqnPvB;;ACr+PE;EyCqVF;IA+BM,aAAa;E1CsnPjB;AACF;;AC/9PE;EyCyUF;IAmCM,aAAa;E1CwnPjB;AACF;;A0CtnPE;EACE,oBAAY;EzCnUZ,yCyCoU2D;EzCpU3D,wCyCqU2D;A1CynP/D;;A0C5nPE;EAKI,8BAA8B;EAC9B,+BAA+B;A1C2nPrC;;A0CjoPE;EASM,iBAAY;A1C4nPpB;;ACpgQE;EyC+XA;IAYQ,iBAAY;E1C8nPpB;AACF;;ACtgQE;EyC2XA;IAeQ,iBAAY;E1CioPpB;AACF;;ACxgQE;EyCuXA;IAkBQ,iBAAY;E1CooPpB;AACF;;AC1gQE;EyCmXA;IAqBQ,iBAAY;E1CuoPpB;AACF;;AC5gQE;EyC+WA;IAwBQ,iBAAY;E1C0oPpB;AACF;;AC7gQI;EyC0WF;IA2BQ,iBAAY;E1C6oPpB;AACF;;ACzgQI;EyCgWF;IA8BQ,iBAAY;E1CgpPpB;AACF;;AC1gQI;EyC2VF;IAiCQ,iBAAY;E1CmpPpB;AACF;;ACtgQI;EyCiVF;IAoCQ,iBAAY;E1CspPpB;AACF;;A0C3rPE;EASM,oBAAY;A1CsrPpB;;AC9jQE;EyC+XA;IAYQ,oBAAY;E1CwrPpB;AACF;;AChkQE;EyC2XA;IAeQ,oBAAY;E1C2rPpB;AACF;;AClkQE;EyCuXA;IAkBQ,oBAAY;E1C8rPpB;AACF;;ACpkQE;EyCmXA;IAqBQ,oBAAY;E1CisPpB;AACF;;ACtkQE;EyC+WA;IAwBQ,oBAAY;E1CosPpB;AACF;;ACvkQI;EyC0WF;IA2BQ,oBAAY;E1CusPpB;AACF;;ACnkQI;EyCgWF;IA8BQ,oBAAY;E1C0sPpB;AACF;;ACpkQI;EyC2VF;IAiCQ,oBAAY;E1C6sPpB;AACF;;AChkQI;EyCiVF;IAoCQ,oBAAY;E1CgtPpB;AACF;;A0CrvPE;EASM,mBAAY;A1CgvPpB;;ACxnQE;EyC+XA;IAYQ,mBAAY;E1CkvPpB;AACF;;AC1nQE;EyC2XA;IAeQ,mBAAY;E1CqvPpB;AACF;;AC5nQE;EyCuXA;IAkBQ,mBAAY;E1CwvPpB;AACF;;AC9nQE;EyCmXA;IAqBQ,mBAAY;E1C2vPpB;AACF;;AChoQE;EyC+WA;IAwBQ,mBAAY;E1C8vPpB;AACF;;ACjoQI;EyC0WF;IA2BQ,mBAAY;E1CiwPpB;AACF;;AC7nQI;EyCgWF;IA8BQ,mBAAY;E1CowPpB;AACF;;AC9nQI;EyC2VF;IAiCQ,mBAAY;E1CuwPpB;AACF;;AC1nQI;EyCiVF;IAoCQ,mBAAY;E1C0wPpB;AACF;;A0C/yPE;EASM,oBAAY;A1C0yPpB;;AClrQE;EyC+XA;IAYQ,oBAAY;E1C4yPpB;AACF;;ACprQE;EyC2XA;IAeQ,oBAAY;E1C+yPpB;AACF;;ACtrQE;EyCuXA;IAkBQ,oBAAY;E1CkzPpB;AACF;;ACxrQE;EyCmXA;IAqBQ,oBAAY;E1CqzPpB;AACF;;AC1rQE;EyC+WA;IAwBQ,oBAAY;E1CwzPpB;AACF;;AC3rQI;EyC0WF;IA2BQ,oBAAY;E1C2zPpB;AACF;;ACvrQI;EyCgWF;IA8BQ,oBAAY;E1C8zPpB;AACF;;ACxrQI;EyC2VF;IAiCQ,oBAAY;E1Ci0PpB;AACF;;ACprQI;EyCiVF;IAoCQ,oBAAY;E1Co0PpB;AACF;;A0Cz2PE;EASM,iBAAY;A1Co2PpB;;AC5uQE;EyC+XA;IAYQ,iBAAY;E1Cs2PpB;AACF;;AC9uQE;EyC2XA;IAeQ,iBAAY;E1Cy2PpB;AACF;;AChvQE;EyCuXA;IAkBQ,iBAAY;E1C42PpB;AACF;;AClvQE;EyCmXA;IAqBQ,iBAAY;E1C+2PpB;AACF;;ACpvQE;EyC+WA;IAwBQ,iBAAY;E1Ck3PpB;AACF;;ACrvQI;EyC0WF;IA2BQ,iBAAY;E1Cq3PpB;AACF;;ACjvQI;EyCgWF;IA8BQ,iBAAY;E1Cw3PpB;AACF;;AClvQI;EyC2VF;IAiCQ,iBAAY;E1C23PpB;AACF;;AC9uQI;EyCiVF;IAoCQ,iBAAY;E1C83PpB;AACF;;A0Cn6PE;EASM,oBAAY;A1C85PpB;;ACtyQE;EyC+XA;IAYQ,oBAAY;E1Cg6PpB;AACF;;ACxyQE;EyC2XA;IAeQ,oBAAY;E1Cm6PpB;AACF;;AC1yQE;EyCuXA;IAkBQ,oBAAY;E1Cs6PpB;AACF;;AC5yQE;EyCmXA;IAqBQ,oBAAY;E1Cy6PpB;AACF;;AC9yQE;EyC+WA;IAwBQ,oBAAY;E1C46PpB;AACF;;AC/yQI;EyC0WF;IA2BQ,oBAAY;E1C+6PpB;AACF;;AC3yQI;EyCgWF;IA8BQ,oBAAY;E1Ck7PpB;AACF;;AC5yQI;EyC2VF;IAiCQ,oBAAY;E1Cq7PpB;AACF;;ACxyQI;EyCiVF;IAoCQ,oBAAY;E1Cw7PpB;AACF;;A0C79PE;EASM,mBAAY;A1Cw9PpB;;ACh2QE;EyC+XA;IAYQ,mBAAY;E1C09PpB;AACF;;ACl2QE;EyC2XA;IAeQ,mBAAY;E1C69PpB;AACF;;ACp2QE;EyCuXA;IAkBQ,mBAAY;E1Cg+PpB;AACF;;ACt2QE;EyCmXA;IAqBQ,mBAAY;E1Cm+PpB;AACF;;ACx2QE;EyC+WA;IAwBQ,mBAAY;E1Cs+PpB;AACF;;ACz2QI;EyC0WF;IA2BQ,mBAAY;E1Cy+PpB;AACF;;ACr2QI;EyCgWF;IA8BQ,mBAAY;E1C4+PpB;AACF;;ACt2QI;EyC2VF;IAiCQ,mBAAY;E1C++PpB;AACF;;ACl2QI;EyCiVF;IAoCQ,mBAAY;E1Ck/PpB;AACF;;A0CvhQE;EASM,oBAAY;A1CkhQpB;;AC15QE;EyC+XA;IAYQ,oBAAY;E1CohQpB;AACF;;AC55QE;EyC2XA;IAeQ,oBAAY;E1CuhQpB;AACF;;AC95QE;EyCuXA;IAkBQ,oBAAY;E1C0hQpB;AACF;;ACh6QE;EyCmXA;IAqBQ,oBAAY;E1C6hQpB;AACF;;ACl6QE;EyC+WA;IAwBQ,oBAAY;E1CgiQpB;AACF;;ACn6QI;EyC0WF;IA2BQ,oBAAY;E1CmiQpB;AACF;;AC/5QI;EyCgWF;IA8BQ,oBAAY;E1CsiQpB;AACF;;ACh6QI;EyC2VF;IAiCQ,oBAAY;E1CyiQpB;AACF;;AC55QI;EyCiVF;IAoCQ,oBAAY;E1C4iQpB;AACF;;A0CjlQE;EASM,iBAAY;A1C4kQpB;;ACp9QE;EyC+XA;IAYQ,iBAAY;E1C8kQpB;AACF;;ACt9QE;EyC2XA;IAeQ,iBAAY;E1CilQpB;AACF;;ACx9QE;EyCuXA;IAkBQ,iBAAY;E1ColQpB;AACF;;AC19QE;EyCmXA;IAqBQ,iBAAY;E1CulQpB;AACF;;AC59QE;EyC+WA;IAwBQ,iBAAY;E1C0lQpB;AACF;;AC79QI;EyC0WF;IA2BQ,iBAAY;E1C6lQpB;AACF;;ACz9QI;EyCgWF;IA8BQ,iBAAY;E1CgmQpB;AACF;;AC19QI;EyC2VF;IAiCQ,iBAAY;E1CmmQpB;AACF;;ACt9QI;EyCiVF;IAoCQ,iBAAY;E1CsmQpB;AACF;;A2CnmRA;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,+BAAuB;EAAvB,4BAAuB;EAAvB,uBAAuB;A3CsmRzB;;A2C5mRA;EASI,qBAA+B;EAC/B,sBAAgC;EAChC,oBAA8B;A3CumRlC;;A2ClnRA;EAaM,uBAAiC;A3CymRvC;;A2CtnRA;EAeM,sBAjBgB;A3C4nRtB;;A2C1nRA;EAiBI,oBAAoB;A3C6mRxB;;A2C9nRA;EAmBI,gBArBkB;A3CooRtB;;A2CloRA;EAqBI,sBAAsB;A3CinR1B;;A2CtoRA;EAuBM,gCAAgC;A3CmnRtC;;AC7iRE;E0C7FF;IA2BM,aAAa;E3ConRjB;E2C/oRF;IA8BQ,UAAU;IACV,eAA8B;E3ConRpC;E2CnpRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwnRpC;E2CvpRF;IA8BQ,UAAU;IACV,UAA8B;E3C4nRpC;E2C3pRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgoRpC;E2C/pRF;IA8BQ,UAAU;IACV,gBAA8B;E3CooRpC;E2CnqRF;IA8BQ,UAAU;IACV,UAA8B;E3CwoRpC;E2CvqRF;IA8BQ,UAAU;IACV,gBAA8B;E3C4oRpC;E2C3qRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgpRpC;E2C/qRF;IA8BQ,UAAU;IACV,UAA8B;E3CopRpC;E2CnrRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwpRpC;E2CvrRF;IA8BQ,UAAU;IACV,gBAA8B;E3C4pRpC;E2C3rRF;IA8BQ,UAAU;IACV,WAA8B;E3CgqRpC;AACF;;A4CpsRA,kBAAA;ACIE;EACE,uBAAwB;A7CosR5B;;A6CnsRE;EAGI,yBAA0C;A7CosRhD;;A6CnsRE;EACE,kCAAmC;A7CssRvC;;A6C7sRE;EACE,yBAAwB;A7CgtR5B;;A6C/sRE;EAGI,uBAA0C;A7CgtRhD;;A6C/sRE;EACE,oCAAmC;A7CktRvC;;A6CztRE;EACE,4BAAwB;A7C4tR5B;;A6C3tRE;EAGI,yBAA0C;A7C4tRhD;;A6C3tRE;EACE,uCAAmC;A7C8tRvC;;A6CruRE;EACE,yBAAwB;A7CwuR5B;;A6CvuRE;EAGI,yBAA0C;A7CwuRhD;;A6CvuRE;EACE,oCAAmC;A7C0uRvC;;A6CjvRE;EACE,yBAAwB;A7CovR5B;;A6CnvRE;EAGI,yBAA0C;A7CovRhD;;A6CnvRE;EACE,oCAAmC;A7CsvRvC;;A6CjvRI;EACE,yBAA8B;A7CovRpC;;A6CnvRI;EAGI,yBAAgD;A7CovRxD;;A6CnvRI;EACE,oCAAyC;A7CsvR/C;;A6CpvRI;EACE,yBAA6B;A7CuvRnC;;A6CtvRI;EAGI,yBAAgD;A7CuvRxD;;A6CtvRI;EACE,oCAAwC;A7CyvR9C;;A6CrxRE;EACE,yBAAwB;A7CwxR5B;;A6CvxRE;EAGI,yBAA0C;A7CwxRhD;;A6CvxRE;EACE,oCAAmC;A7C0xRvC;;A6CrxRI;EACE,yBAA8B;A7CwxRpC;;A6CvxRI;EAGI,yBAAgD;A7CwxRxD;;A6CvxRI;EACE,oCAAyC;A7C0xR/C;;A6CxxRI;EACE,yBAA6B;A7C2xRnC;;A6C1xRI;EAGI,yBAAgD;A7C2xRxD;;A6C1xRI;EACE,oCAAwC;A7C6xR9C;;A6CzzRE;EACE,yBAAwB;A7C4zR5B;;A6C3zRE;EAGI,yBAA0C;A7C4zRhD;;A6C3zRE;EACE,oCAAmC;A7C8zRvC;;A6CzzRI;EACE,yBAA8B;A7C4zRpC;;A6C3zRI;EAGI,yBAAgD;A7C4zRxD;;A6C3zRI;EACE,oCAAyC;A7C8zR/C;;A6C5zRI;EACE,yBAA6B;A7C+zRnC;;A6C9zRI;EAGI,yBAAgD;A7C+zRxD;;A6C9zRI;EACE,oCAAwC;A7Ci0R9C;;A6C71RE;EACE,yBAAwB;A7Cg2R5B;;A6C/1RE;EAGI,yBAA0C;A7Cg2RhD;;A6C/1RE;EACE,oCAAmC;A7Ck2RvC;;A6C71RI;EACE,yBAA8B;A7Cg2RpC;;A6C/1RI;EAGI,yBAAgD;A7Cg2RxD;;A6C/1RI;EACE,oCAAyC;A7Ck2R/C;;A6Ch2RI;EACE,yBAA6B;A7Cm2RnC;;A6Cl2RI;EAGI,yBAAgD;A7Cm2RxD;;A6Cl2RI;EACE,oCAAwC;A7Cq2R9C;;A6Cj4RE;EACE,yBAAwB;A7Co4R5B;;A6Cn4RE;EAGI,yBAA0C;A7Co4RhD;;A6Cn4RE;EACE,oCAAmC;A7Cs4RvC;;A6Cj4RI;EACE,yBAA8B;A7Co4RpC;;A6Cn4RI;EAGI,yBAAgD;A7Co4RxD;;A6Cn4RI;EACE,oCAAyC;A7Cs4R/C;;A6Cp4RI;EACE,yBAA6B;A7Cu4RnC;;A6Ct4RI;EAGI,yBAAgD;A7Cu4RxD;;A6Ct4RI;EACE,oCAAwC;A7Cy4R9C;;A6Cr6RE;EACE,yBAAwB;A7Cw6R5B;;A6Cv6RE;EAGI,yBAA0C;A7Cw6RhD;;A6Cv6RE;EACE,oCAAmC;A7C06RvC;;A6Cr6RI;EACE,yBAA8B;A7Cw6RpC;;A6Cv6RI;EAGI,yBAAgD;A7Cw6RxD;;A6Cv6RI;EACE,oCAAyC;A7C06R/C;;A6Cx6RI;EACE,yBAA6B;A7C26RnC;;A6C16RI;EAGI,yBAAgD;A7C26RxD;;A6C16RI;EACE,oCAAwC;A7C66R9C;;A6C16RE;EACE,yBAAwB;A7C66R5B;;A6C56RE;EACE,oCAAmC;A7C+6RvC;;A6Cl7RE;EACE,yBAAwB;A7Cq7R5B;;A6Cp7RE;EACE,oCAAmC;A7Cu7RvC;;A6C17RE;EACE,yBAAwB;A7C67R5B;;A6C57RE;EACE,oCAAmC;A7C+7RvC;;A6Cl8RE;EACE,yBAAwB;A7Cq8R5B;;A6Cp8RE;EACE,oCAAmC;A7Cu8RvC;;A6C18RE;EACE,yBAAwB;A7C68R5B;;A6C58RE;EACE,oCAAmC;A7C+8RvC;;A6Cl9RE;EACE,yBAAwB;A7Cq9R5B;;A6Cp9RE;EACE,oCAAmC;A7Cu9RvC;;A6C19RE;EACE,yBAAwB;A7C69R5B;;A6C59RE;EACE,oCAAmC;A7C+9RvC;;A6Cl+RE;EACE,4BAAwB;A7Cq+R5B;;A6Cp+RE;EACE,uCAAmC;A7Cu+RvC;;A6C1+RE;EACE,yBAAwB;A7C6+R5B;;A6C5+RE;EACE,oCAAmC;A7C++RvC;;A8CnhSE;EACE,8BAAiC;A9CshSrC;;A8CvhSE;EACE,sCAAiC;A9C0hSrC;;A8C3hSE;EACE,iCAAiC;A9C8hSrC;;A8C/hSE;EACE,yCAAiC;A9CkiSrC;;A8C9hSE;EACE,4BAA4B;A9CiiShC;;A8CliSE;EACE,0BAA4B;A9CqiShC;;A8CtiSE;EACE,kCAA4B;A9CyiShC;;A8CriSE;EACE,sCAAkC;A9CwiStC;;A8CziSE;EACE,oCAAkC;A9C4iStC;;A8C7iSE;EACE,kCAAkC;A9CgjStC;;A8CjjSE;EACE,yCAAkC;A9CojStC;;A8CrjSE;EACE,wCAAkC;A9CwjStC;;A8CzjSE;EACE,wCAAkC;A9C4jStC;;A8C7jSE;EACE,iCAAkC;A9CgkStC;;A8CjkSE;EACE,+BAAkC;A9CokStC;;A8CrkSE;EACE,gCAAkC;A9CwkStC;;A8CzkSE;EACE,iCAAkC;A9C4kStC;;A8CxkSE;EACE,oCAAgC;A9C2kSpC;;A8C5kSE;EACE,kCAAgC;A9C+kSpC;;A8ChlSE;EACE,gCAAgC;A9CmlSpC;;A8CplSE;EACE,uCAAgC;A9CulSpC;;A8CxlSE;EACE,sCAAgC;A9C2lSpC;;A8C5lSE;EACE,sCAAgC;A9C+lSpC;;A8ChmSE;EACE,iCAAgC;A9CmmSpC;;A8CpmSE;EACE,+BAAgC;A9CumSpC;;A8CxmSE;EACE,6BAAgC;A9C2mSpC;;A8C5mSE;EACE,kCAAgC;A9C+mSpC;;A8C3mSE;EACE,+BAA8B;A9C8mSlC;;A8C/mSE;EACE,kCAA8B;A9CknSlC;;A8CnnSE;EACE,gCAA8B;A9CsnSlC;;A8CvnSE;EACE,8BAA8B;A9C0nSlC;;A8C3nSE;EACE,gCAA8B;A9C8nSlC;;A8C/nSE;EACE,6BAA8B;A9CkoSlC;;A8CnoSE;EACE,2BAA8B;A9CsoSlC;;A8CvoSE;EACE,kCAA8B;A9C0oSlC;;A8C3oSE;EACE,gCAA8B;A9C8oSlC;;A8C1oSE;EACE,2BAA6B;A9C6oSjC;;A8C9oSE;EACE,iCAA6B;A9CipSjC;;A8ClpSE;EACE,+BAA6B;A9CqpSjC;;A8CtpSE;EACE,6BAA6B;A9CypSjC;;A8C1pSE;EACE,+BAA6B;A9C6pSjC;;A8C9pSE;EACE,8BAA6B;A9CiqSjC;;A8C5pSI;EACE,uBAAqC;A9C+pS3C;;A8ChqSI;EACE,uBAAqC;A9CmqS3C;;A8CpqSI;EACE,uBAAqC;A9CuqS3C;;A8CxqSI;EACE,uBAAqC;A9C2qS3C;;A8C5qSI;EACE,uBAAqC;A9C+qS3C;;A8ChrSI;EACE,uBAAqC;A9CmrS3C;;A8CprSI;EACE,yBAAqC;A9CurS3C;;A8CxrSI;EACE,yBAAqC;A9C2rS3C;;A8C5rSI;EACE,yBAAqC;A9C+rS3C;;A8ChsSI;EACE,yBAAqC;A9CmsS3C;;A8CpsSI;EACE,yBAAqC;A9CusS3C;;A8CxsSI;EACE,yBAAqC;A9C2sS3C;;AC1uSE;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AD6uSlB;;A+C9uSA;EACE,sBAAsB;A/CivSxB;;A+C/uSA;EACE,uBAAuB;A/CkvSzB;;AgDzvSA;EACE,2BAA2B;AhD4vS7B;;AgD1vSA;EACE,2BAA2B;AhD6vS7B;;AgD3vSA;EACE,0BAA0B;EAC1B,8BAA8B;AhD8vShC;;AiDxwSA;EACE,2BAA2B;AjD2wS7B;;AkDvwSA;EACE,6BAA6B;AlD0wS/B;;AmDhxSA;EACE,oBAAoB;AnDmxStB;;AmDjxSA;EACE,qBAAqB;AnDoxSvB;;AmDzwSI;EACE,oBAA+B;AnD4wSrC;;AmDzwSM;EACE,wBAA8C;AnD4wStD;;AmD7wSM;EACE,0BAA8C;AnDgxStD;;AmDjxSM;EACE,2BAA8C;AnDoxStD;;AmDrxSM;EACE,yBAA8C;AnDwxStD;;AmDrxSM;EACE,yBAAyC;EACzC,0BAA2C;AnDwxSnD;;AmDrxSM;EACE,wBAAuC;EACvC,2BAA6C;AnDwxSrD;;AmDvySI;EACE,0BAA+B;AnD0ySrC;;AmDvySM;EACE,8BAA8C;AnD0yStD;;AmD3ySM;EACE,gCAA8C;AnD8yStD;;AmD/ySM;EACE,iCAA8C;AnDkzStD;;AmDnzSM;EACE,+BAA8C;AnDszStD;;AmDnzSM;EACE,+BAAyC;EACzC,gCAA2C;AnDszSnD;;AmDnzSM;EACE,8BAAuC;EACvC,iCAA6C;AnDszSrD;;AmDr0SI;EACE,yBAA+B;AnDw0SrC;;AmDr0SM;EACE,6BAA8C;AnDw0StD;;AmDz0SM;EACE,+BAA8C;AnD40StD;;AmD70SM;EACE,gCAA8C;AnDg1StD;;AmDj1SM;EACE,8BAA8C;AnDo1StD;;AmDj1SM;EACE,8BAAyC;EACzC,+BAA2C;AnDo1SnD;;AmDj1SM;EACE,6BAAuC;EACvC,gCAA6C;AnDo1SrD;;AmDn2SI;EACE,0BAA+B;AnDs2SrC;;AmDn2SM;EACE,8BAA8C;AnDs2StD;;AmDv2SM;EACE,gCAA8C;AnD02StD;;AmD32SM;EACE,iCAA8C;AnD82StD;;AmD/2SM;EACE,+BAA8C;AnDk3StD;;AmD/2SM;EACE,+BAAyC;EACzC,gCAA2C;AnDk3SnD;;AmD/2SM;EACE,8BAAuC;EACvC,iCAA6C;AnDk3SrD;;AmDj4SI;EACE,uBAA+B;AnDo4SrC;;AmDj4SM;EACE,2BAA8C;AnDo4StD;;AmDr4SM;EACE,6BAA8C;AnDw4StD;;AmDz4SM;EACE,8BAA8C;AnD44StD;;AmD74SM;EACE,4BAA8C;AnDg5StD;;AmD74SM;EACE,4BAAyC;EACzC,6BAA2C;AnDg5SnD;;AmD74SM;EACE,2BAAuC;EACvC,8BAA6C;AnDg5SrD;;AmD/5SI;EACE,yBAA+B;AnDk6SrC;;AmD/5SM;EACE,6BAA8C;AnDk6StD;;AmDn6SM;EACE,+BAA8C;AnDs6StD;;AmDv6SM;EACE,gCAA8C;AnD06StD;;AmD36SM;EACE,8BAA8C;AnD86StD;;AmD36SM;EACE,8BAAyC;EACzC,+BAA2C;AnD86SnD;;AmD36SM;EACE,6BAAuC;EACvC,gCAA6C;AnD86SrD;;AmD77SI;EACE,uBAA+B;AnDg8SrC;;AmD77SM;EACE,2BAA8C;AnDg8StD;;AmDj8SM;EACE,6BAA8C;AnDo8StD;;AmDr8SM;EACE,8BAA8C;AnDw8StD;;AmDz8SM;EACE,4BAA8C;AnD48StD;;AmDz8SM;EACE,4BAAyC;EACzC,6BAA2C;AnD48SnD;;AmDz8SM;EACE,2BAAuC;EACvC,8BAA6C;AnD48SrD;;AmD39SI;EACE,uBAA+B;AnD89SrC;;AmD39SM;EACE,2BAA8C;AnD89StD;;AmD/9SM;EACE,6BAA8C;AnDk+StD;;AmDn+SM;EACE,8BAA8C;AnDs+StD;;AmDv+SM;EACE,4BAA8C;AnD0+StD;;AmDv+SM;EACE,4BAAyC;EACzC,6BAA2C;AnD0+SnD;;AmDv+SM;EACE,2BAAuC;EACvC,8BAA6C;AnD0+SrD;;AmDz/SI;EACE,qBAA+B;AnD4/SrC;;AmDz/SM;EACE,yBAA8C;AnD4/StD;;AmD7/SM;EACE,2BAA8C;AnDggTtD;;AmDjgTM;EACE,4BAA8C;AnDogTtD;;AmDrgTM;EACE,0BAA8C;AnDwgTtD;;AmDrgTM;EACE,0BAAyC;EACzC,2BAA2C;AnDwgTnD;;AmDrgTM;EACE,yBAAuC;EACvC,4BAA6C;AnDwgTrD;;AmDvhTI;EACE,2BAA+B;AnD0hTrC;;AmDvhTM;EACE,+BAA8C;AnD0hTtD;;AmD3hTM;EACE,iCAA8C;AnD8hTtD;;AmD/hTM;EACE,kCAA8C;AnDkiTtD;;AmDniTM;EACE,gCAA8C;AnDsiTtD;;AmDniTM;EACE,gCAAyC;EACzC,iCAA2C;AnDsiTnD;;AmDniTM;EACE,+BAAuC;EACvC,kCAA6C;AnDsiTrD;;AmDrjTI;EACE,0BAA+B;AnDwjTrC;;AmDrjTM;EACE,8BAA8C;AnDwjTtD;;AmDzjTM;EACE,gCAA8C;AnD4jTtD;;AmD7jTM;EACE,iCAA8C;AnDgkTtD;;AmDjkTM;EACE,+BAA8C;AnDokTtD;;AmDjkTM;EACE,+BAAyC;EACzC,gCAA2C;AnDokTnD;;AmDjkTM;EACE,8BAAuC;EACvC,iCAA6C;AnDokTrD;;AmDnlTI;EACE,2BAA+B;AnDslTrC;;AmDnlTM;EACE,+BAA8C;AnDslTtD;;AmDvlTM;EACE,iCAA8C;AnD0lTtD;;AmD3lTM;EACE,kCAA8C;AnD8lTtD;;AmD/lTM;EACE,gCAA8C;AnDkmTtD;;AmD/lTM;EACE,gCAAyC;EACzC,iCAA2C;AnDkmTnD;;AmD/lTM;EACE,+BAAuC;EACvC,kCAA6C;AnDkmTrD;;AmDjnTI;EACE,wBAA+B;AnDonTrC;;AmDjnTM;EACE,4BAA8C;AnDonTtD;;AmDrnTM;EACE,8BAA8C;AnDwnTtD;;AmDznTM;EACE,+BAA8C;AnD4nTtD;;AmD7nTM;EACE,6BAA8C;AnDgoTtD;;AmD7nTM;EACE,6BAAyC;EACzC,8BAA2C;AnDgoTnD;;AmD7nTM;EACE,4BAAuC;EACvC,+BAA6C;AnDgoTrD;;AmD/oTI;EACE,0BAA+B;AnDkpTrC;;AmD/oTM;EACE,8BAA8C;AnDkpTtD;;AmDnpTM;EACE,gCAA8C;AnDspTtD;;AmDvpTM;EACE,iCAA8C;AnD0pTtD;;AmD3pTM;EACE,+BAA8C;AnD8pTtD;;AmD3pTM;EACE,+BAAyC;EACzC,gCAA2C;AnD8pTnD;;AmD3pTM;EACE,8BAAuC;EACvC,iCAA6C;AnD8pTrD;;AmD7qTI;EACE,wBAA+B;AnDgrTrC;;AmD7qTM;EACE,4BAA8C;AnDgrTtD;;AmDjrTM;EACE,8BAA8C;AnDorTtD;;AmDrrTM;EACE,+BAA8C;AnDwrTtD;;AmDzrTM;EACE,6BAA8C;AnD4rTtD;;AmDzrTM;EACE,6BAAyC;EACzC,8BAA2C;AnD4rTnD;;AmDzrTM;EACE,4BAAuC;EACvC,+BAA6C;AnD4rTrD;;AmD3sTI;EACE,wBAA+B;AnD8sTrC;;AmD3sTM;EACE,4BAA8C;AnD8sTtD;;AmD/sTM;EACE,8BAA8C;AnDktTtD;;AmDntTM;EACE,+BAA8C;AnDstTtD;;AmDvtTM;EACE,6BAA8C;AnD0tTtD;;AmDvtTM;EACE,6BAAyC;EACzC,8BAA2C;AnD0tTnD;;AmDvtTM;EACE,4BAAuC;EACvC,+BAA6C;AnD0tTrD;;AoDnvTI;EACE,0BAA2B;ApDsvTjC;;AoDvvTI;EACE,4BAA2B;ApD0vTjC;;AoD3vTI;EACE,0BAA2B;ApD8vTjC;;AoD/vTI;EACE,4BAA2B;ApDkwTjC;;AoDnwTI;EACE,6BAA2B;ApDswTjC;;AoDvwTI;EACE,0BAA2B;ApD0wTjC;;AoD3wTI;EACE,6BAA2B;ApD8wTjC;;ACvrTE;EmDxFE;IACE,0BAA2B;EpDmxT/B;EoDpxTE;IACE,4BAA2B;EpDsxT/B;EoDvxTE;IACE,0BAA2B;EpDyxT/B;EoD1xTE;IACE,4BAA2B;EpD4xT/B;EoD7xTE;IACE,6BAA2B;EpD+xT/B;EoDhyTE;IACE,0BAA2B;EpDkyT/B;EoDnyTE;IACE,6BAA2B;EpDqyT/B;AACF;;AC3sTE;EmD5FE;IACE,0BAA2B;EpD2yT/B;EoD5yTE;IACE,4BAA2B;EpD8yT/B;EoD/yTE;IACE,0BAA2B;EpDizT/B;EoDlzTE;IACE,4BAA2B;EpDozT/B;EoDrzTE;IACE,6BAA2B;EpDuzT/B;EoDxzTE;IACE,0BAA2B;EpD0zT/B;EoD3zTE;IACE,6BAA2B;EpD6zT/B;AACF;;AC3tTE;EmDpGE;IACE,0BAA2B;EpDm0T/B;EoDp0TE;IACE,4BAA2B;EpDs0T/B;EoDv0TE;IACE,0BAA2B;EpDy0T/B;EoD10TE;IACE,4BAA2B;EpD40T/B;EoD70TE;IACE,6BAA2B;EpD+0T/B;EoDh1TE;IACE,0BAA2B;EpDk1T/B;EoDn1TE;IACE,6BAA2B;EpDq1T/B;AACF;;AC/uTE;EmDxGE;IACE,0BAA2B;EpD21T/B;EoD51TE;IACE,4BAA2B;EpD81T/B;EoD/1TE;IACE,0BAA2B;EpDi2T/B;EoDl2TE;IACE,4BAA2B;EpDo2T/B;EoDr2TE;IACE,6BAA2B;EpDu2T/B;EoDx2TE;IACE,0BAA2B;EpD02T/B;EoD32TE;IACE,6BAA2B;EpD62T/B;AACF;;ACxvTI;EmDvHA;IACE,0BAA2B;EpDm3T/B;EoDp3TE;IACE,4BAA2B;EpDs3T/B;EoDv3TE;IACE,0BAA2B;EpDy3T/B;EoD13TE;IACE,4BAA2B;EpD43T/B;EoD73TE;IACE,6BAA2B;EpD+3T/B;EoDh4TE;IACE,0BAA2B;EpDk4T/B;EoDn4TE;IACE,6BAA2B;EpDq4T/B;AACF;;ACjwTI;EmDtIA;IACE,0BAA2B;EpD24T/B;EoD54TE;IACE,4BAA2B;EpD84T/B;EoD/4TE;IACE,0BAA2B;EpDi5T/B;EoDl5TE;IACE,4BAA2B;EpDo5T/B;EoDr5TE;IACE,6BAA2B;EpDu5T/B;EoDx5TE;IACE,0BAA2B;EpD05T/B;EoD35TE;IACE,6BAA2B;EpD65T/B;AACF;;AoDr4TE;EACE,6BAAqC;ApDw4TzC;;AoDz4TE;EACE,8BAAqC;ApD44TzC;;AoD74TE;EACE,2BAAqC;ApDg5TzC;;AoDj5TE;EACE,4BAAqC;ApDo5TzC;;ACv1TE;EmDzDE;IACE,6BAAqC;EpDo5TzC;AACF;;ACz1TE;EmD1DE;IACE,6BAAqC;EpDu5TzC;AACF;;AC31TE;EmD3DE;IACE,6BAAqC;EpD05TzC;AACF;;AC71TE;EmD5DE;IACE,6BAAqC;EpD65TzC;AACF;;AC/1TE;EmD7DE;IACE,6BAAqC;EpDg6TzC;AACF;;ACh2TI;EmD/DA;IACE,6BAAqC;EpDm6TzC;AACF;;AC51TI;EmDtEA;IACE,6BAAqC;EpDs6TzC;AACF;;AC71TI;EmDxEA;IACE,6BAAqC;EpDy6TzC;AACF;;ACz1TI;EmD/EA;IACE,6BAAqC;EpD46TzC;AACF;;AC74TE;EmDzDE;IACE,8BAAqC;EpD08TzC;AACF;;AC/4TE;EmD1DE;IACE,8BAAqC;EpD68TzC;AACF;;ACj5TE;EmD3DE;IACE,8BAAqC;EpDg9TzC;AACF;;ACn5TE;EmD5DE;IACE,8BAAqC;EpDm9TzC;AACF;;ACr5TE;EmD7DE;IACE,8BAAqC;EpDs9TzC;AACF;;ACt5TI;EmD/DA;IACE,8BAAqC;EpDy9TzC;AACF;;ACl5TI;EmDtEA;IACE,8BAAqC;EpD49TzC;AACF;;ACn5TI;EmDxEA;IACE,8BAAqC;EpD+9TzC;AACF;;AC/4TI;EmD/EA;IACE,8BAAqC;EpDk+TzC;AACF;;ACn8TE;EmDzDE;IACE,2BAAqC;EpDggUzC;AACF;;ACr8TE;EmD1DE;IACE,2BAAqC;EpDmgUzC;AACF;;ACv8TE;EmD3DE;IACE,2BAAqC;EpDsgUzC;AACF;;ACz8TE;EmD5DE;IACE,2BAAqC;EpDygUzC;AACF;;AC38TE;EmD7DE;IACE,2BAAqC;EpD4gUzC;AACF;;AC58TI;EmD/DA;IACE,2BAAqC;EpD+gUzC;AACF;;ACx8TI;EmDtEA;IACE,2BAAqC;EpDkhUzC;AACF;;ACz8TI;EmDxEA;IACE,2BAAqC;EpDqhUzC;AACF;;ACr8TI;EmD/EA;IACE,2BAAqC;EpDwhUzC;AACF;;ACz/TE;EmDzDE;IACE,4BAAqC;EpDsjUzC;AACF;;AC3/TE;EmD1DE;IACE,4BAAqC;EpDyjUzC;AACF;;AC7/TE;EmD3DE;IACE,4BAAqC;EpD4jUzC;AACF;;AC//TE;EmD5DE;IACE,4BAAqC;EpD+jUzC;AACF;;ACjgUE;EmD7DE;IACE,4BAAqC;EpDkkUzC;AACF;;AClgUI;EmD/DA;IACE,4BAAqC;EpDqkUzC;AACF;;AC9/TI;EmDtEA;IACE,4BAAqC;EpDwkUzC;AACF;;AC//TI;EmDxEA;IACE,4BAAqC;EpD2kUzC;AACF;;AC3/TI;EmD/EA;IACE,4BAAqC;EpD8kUzC;AACF;;AoD7kUA;EACE,qCAAqC;ApDglUvC;;AoD9kUA;EACE,oCAAoC;ApDilUtC;;AoD/kUA;EACE,oCAAoC;ApDklUtC;;AoDhlUA;EACE,6BAA6B;ApDmlU/B;;AoDjlUA;EACE,qCAAqC;ApDolUvC;;AoDllUA;EACE,2BAAqC;ApDqlUvC;;AoDplUA;EACE,2BAAsC;ApDulUxC;;AoDtlUA;EACE,2BAAsC;ApDylUxC;;AoDxlUA;EACE,2BAAwC;ApD2lU1C;;AoD1lUA;EACE,2BAAoC;ApD6lUtC;;AoD3lUA;EACE,+LAAuC;ApD8lUzC;;AoD5lUA;EACE,+LAAyC;ApD+lU3C;;AoD7lUA;EACE,+LAA0C;ApDgmU5C;;AoD9lUA;EACE,iCAAyC;ApDimU3C;;AoD/lUA;EACE,iCAAoC;ApDkmUtC;;AqDnsUE;EACE,yBAA+B;ArDssUnC;;AC/mUE;EoDrFE;IACE,yBAA+B;ErDwsUnC;AACF;;ACjnUE;EoDtFE;IACE,yBAA+B;ErD2sUnC;AACF;;ACnnUE;EoDvFE;IACE,yBAA+B;ErD8sUnC;AACF;;ACrnUE;EoDxFE;IACE,yBAA+B;ErDitUnC;AACF;;ACvnUE;EoDzFE;IACE,yBAA+B;ErDotUnC;AACF;;ACxnUI;EoD3FA;IACE,yBAA+B;ErDutUnC;AACF;;ACpnUI;EoDlGA;IACE,yBAA+B;ErD0tUnC;AACF;;ACrnUI;EoDpGA;IACE,yBAA+B;ErD6tUnC;AACF;;ACjnUI;EoD3GA;IACE,yBAA+B;ErDguUnC;AACF;;AqD7vUE;EACE,wBAA+B;ArDgwUnC;;ACzqUE;EoDrFE;IACE,wBAA+B;ErDkwUnC;AACF;;AC3qUE;EoDtFE;IACE,wBAA+B;ErDqwUnC;AACF;;AC7qUE;EoDvFE;IACE,wBAA+B;ErDwwUnC;AACF;;AC/qUE;EoDxFE;IACE,wBAA+B;ErD2wUnC;AACF;;ACjrUE;EoDzFE;IACE,wBAA+B;ErD8wUnC;AACF;;AClrUI;EoD3FA;IACE,wBAA+B;ErDixUnC;AACF;;AC9qUI;EoDlGA;IACE,wBAA+B;ErDoxUnC;AACF;;AC/qUI;EoDpGA;IACE,wBAA+B;ErDuxUnC;AACF;;AC3qUI;EoD3GA;IACE,wBAA+B;ErD0xUnC;AACF;;AqDvzUE;EACE,0BAA+B;ArD0zUnC;;ACnuUE;EoDrFE;IACE,0BAA+B;ErD4zUnC;AACF;;ACruUE;EoDtFE;IACE,0BAA+B;ErD+zUnC;AACF;;ACvuUE;EoDvFE;IACE,0BAA+B;ErDk0UnC;AACF;;ACzuUE;EoDxFE;IACE,0BAA+B;ErDq0UnC;AACF;;AC3uUE;EoDzFE;IACE,0BAA+B;ErDw0UnC;AACF;;AC5uUI;EoD3FA;IACE,0BAA+B;ErD20UnC;AACF;;ACxuUI;EoDlGA;IACE,0BAA+B;ErD80UnC;AACF;;ACzuUI;EoDpGA;IACE,0BAA+B;ErDi1UnC;AACF;;ACruUI;EoD3GA;IACE,0BAA+B;ErDo1UnC;AACF;;AqDj3UE;EACE,gCAA+B;ArDo3UnC;;AC7xUE;EoDrFE;IACE,gCAA+B;ErDs3UnC;AACF;;AC/xUE;EoDtFE;IACE,gCAA+B;ErDy3UnC;AACF;;ACjyUE;EoDvFE;IACE,gCAA+B;ErD43UnC;AACF;;ACnyUE;EoDxFE;IACE,gCAA+B;ErD+3UnC;AACF;;ACryUE;EoDzFE;IACE,gCAA+B;ErDk4UnC;AACF;;ACtyUI;EoD3FA;IACE,gCAA+B;ErDq4UnC;AACF;;AClyUI;EoDlGA;IACE,gCAA+B;ErDw4UnC;AACF;;ACnyUI;EoDpGA;IACE,gCAA+B;ErD24UnC;AACF;;AC/xUI;EoD3GA;IACE,gCAA+B;ErD84UnC;AACF;;AqD36UE;EACE,+BAA+B;ArD86UnC;;ACv1UE;EoDrFE;IACE,+BAA+B;ErDg7UnC;AACF;;ACz1UE;EoDtFE;IACE,+BAA+B;ErDm7UnC;AACF;;AC31UE;EoDvFE;IACE,+BAA+B;ErDs7UnC;AACF;;AC71UE;EoDxFE;IACE,+BAA+B;ErDy7UnC;AACF;;AC/1UE;EoDzFE;IACE,+BAA+B;ErD47UnC;AACF;;ACh2UI;EoD3FA;IACE,+BAA+B;ErD+7UnC;AACF;;AC51UI;EoDlGA;IACE,+BAA+B;ErDk8UnC;AACF;;AC71UI;EoDpGA;IACE,+BAA+B;ErDq8UnC;AACF;;ACz1UI;EoD3GA;IACE,+BAA+B;ErDw8UnC;AACF;;AqDv8UA;EACE,wBAAwB;ArD08U1B;;AqDx8UA;EACE,uBAAuB;EACvB,iCAAiC;EACjC,yBAAyB;EACzB,2BAA2B;EAC3B,qBAAqB;EACrB,6BAA6B;EAC7B,8BAA8B;EAC9B,wBAAwB;ArD28U1B;;AC55UE;EoD5CA;IACE,wBAAwB;ErD48U1B;AACF;;AC95UE;EoD5CA;IACE,wBAAwB;ErD88U1B;AACF;;ACh6UE;EoD5CA;IACE,wBAAwB;ErDg9U1B;AACF;;ACl6UE;EoD5CA;IACE,wBAAwB;ErDk9U1B;AACF;;ACp6UE;EoD5CA;IACE,wBAAwB;ErDo9U1B;AACF;;ACr6UI;EoD7CF;IACE,wBAAwB;ErDs9U1B;AACF;;ACj6UI;EoDnDF;IACE,wBAAwB;ErDw9U1B;AACF;;ACl6UI;EoDpDF;IACE,wBAAwB;ErD09U1B;AACF;;AC95UI;EoD1DF;IACE,wBAAwB;ErD49U1B;AACF;;AqD39UA;EACE,6BAA6B;ArD89U/B;;ACt9UE;EoDLA;IACE,6BAA6B;ErD+9U/B;AACF;;ACx9UE;EoDLA;IACE,6BAA6B;ErDi+U/B;AACF;;AC19UE;EoDLA;IACE,6BAA6B;ErDm+U/B;AACF;;AC59UE;EoDLA;IACE,6BAA6B;ErDq+U/B;AACF;;AC99UE;EoDLA;IACE,6BAA6B;ErDu+U/B;AACF;;AC/9UI;EoDNF;IACE,6BAA6B;ErDy+U/B;AACF;;AC39UI;EoDZF;IACE,6BAA6B;ErD2+U/B;AACF;;AC59UI;EoDbF;IACE,6BAA6B;ErD6+U/B;AACF;;ACx9UI;EoDnBF;IACE,6BAA6B;ErD++U/B;AACF;;AsDzmVA,iBAAA;ACWA;EACE,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AvDkmVhC;;AuDtmVA;EAMI,gBAAgB;AvDomVpB;;AuD1mVA;EASM,mBAAmB;AvDqmVzB;;AuD9mVA;EAeM,uBxDXyB;EwDYzB,cxDzBuB;AC4nV7B;;AuDnnVA;;EAmBQ,cAAc;AvDqmVtB;;AuDxnVA;EAqBQ,cxD9BqB;ACqoV7B;;AuD5nVA;EAuBQ,4BxDhCqB;ACyoV7B;;AuDhoVA;;EA0BU,cxDnCmB;AC8oV7B;;ACviVE;EsD9FF;IA6BU,uBxDzBqB;ECsoV7B;AACF;;AuD3oVA;;EAgCQ,4BxDzCqB;ACypV7B;;AuDhpVA;;;EAqCU,yB7C6DuB;E6C5DvB,cxD/CmB;ACgqV7B;;AuDvpVA;EAyCU,cxDlDmB;EwDmDnB,YAAY;AvDknVtB;;AuD5pVA;EA4CY,UAAU;AvDonVtB;;AuDhqVA;EA+CY,uBAAwB;EACxB,UAAU;AvDqnVtB;;AuDrqVA;EAoDY,cxD7DiB;ACkrV7B;;AuDzqVA;EAsDc,uCxD/De;ACsrV7B;;AuD7qVA;EA0Dc,yBxDnEe;EwDoEf,qBxDpEe;EwDqEf,YxDxDiB;AC+qV/B;;AuDnrVA;EAkEU,4EAAyG;AvDqnVnH;;ACrmVE;EsDlFF;IAqEc,4EAAyG;EvDunVrH;AACF;;AuD7rVA;EAeM,yBxDxBuB;EwDyBvB,YxDZyB;AC8rV/B;;AuDlsVA;;EAmBQ,cAAc;AvDorVtB;;AuDvsVA;EAqBQ,YxDjBuB;ACusV/B;;AuD3sVA;EAuBQ,+BxDnBuB;AC2sV/B;;AuD/sVA;;EA0BU,YxDtBqB;ACgtV/B;;ACtnVE;EsD9FF;IA6BU,yBxDtCmB;ECkuV3B;AACF;;AuD1tVA;;EAgCQ,+BxD5BuB;AC2tV/B;;AuD/tVA;;;EAqCU,uB7C6DuB;E6C5DvB,YxDlCqB;ACkuV/B;;AuDtuVA;EAyCU,YxDrCqB;EwDsCrB,YAAY;AvDisVtB;;AuD3uVA;EA4CY,UAAU;AvDmsVtB;;AuD/uVA;EA+CY,yBAAwB;EACxB,UAAU;AvDosVtB;;AuDpvVA;EAoDY,YxDhDmB;ACovV/B;;AuDxvVA;EAsDc,uCxD/De;ACqwV7B;;AuD5vVA;EA0Dc,uBxDtDiB;EwDuDjB,mBxDvDiB;EwDwDjB,cxDrEe;AC2wV7B;;AuDlwVA;EAkEU,8EAAyG;AvDosVnH;;ACprVE;EsDlFF;IAqEc,8EAAyG;EvDssVrH;AACF;;AuD5wVA;EAeM,4BxDbwB;EwDcxB,yB7CqDe;AV4sVrB;;AuDjxVA;;EAmBQ,cAAc;AvDmwVtB;;AuDtxVA;EAqBQ,yB7CgDa;AVqtVrB;;AuD1xVA;EAuBQ,yB7C8Ca;AVytVrB;;AuD9xVA;;EA0BU,yB7C2CW;AV8tVrB;;ACrsVE;EsD9FF;IA6BU,4BxD3BoB;ECsyV5B;AACF;;AuDzyVA;;EAgCQ,yB7CqCa;AVyuVrB;;AuD9yVA;;;EAqCU,yB7C6DuB;E6C5DvB,yB7C+BW;AVgvVrB;;AuDrzVA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvDgxVtB;;AuD1zVA;EA4CY,UAAU;AvDkxVtB;;AuD9zVA;EA+CY,4BAAwB;EACxB,UAAU;AvDmxVtB;;AuDn0VA;EAoDY,yB7CiBS;AVkwVrB;;AuDv0VA;EAsDc,uCxD/De;ACo1V7B;;AuD30VA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,iBxD1DgB;AC+0V9B;;AuDj1VA;EAkEU,iFAAyG;AvDmxVnH;;ACnwVE;EsDlFF;IAqEc,iFAAyG;EvDqxVrH;AACF;;AuD31VA;EAeM,yBxDpBwB;EwDqBxB,W7CuDU;AVyxVhB;;AuDh2VA;;EAmBQ,cAAc;AvDk1VtB;;AuDr2VA;EAqBQ,W7CkDQ;AVkyVhB;;AuDz2VA;EAuBQ,+B7CgDQ;AVsyVhB;;AuD72VA;;EA0BU,W7C6CM;AV2yVhB;;ACpxVE;EsD9FF;IA6BU,yBxDlCoB;EC43V5B;AACF;;AuDx3VA;;EAgCQ,+B7CuCQ;AVszVhB;;AuD73VA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV6zVhB;;AuDp4VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD+1VtB;;AuDz4VA;EA4CY,UAAU;AvDi2VtB;;AuD74VA;EA+CY,yBAAwB;EACxB,UAAU;AvDk2VtB;;AuDl5VA;EAoDY,W7CmBI;AV+0VhB;;AuDt5VA;EAsDc,uCxD/De;ACm6V7B;;AuD15VA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjEgB;ACq6V9B;;AuDh6VA;EAkEU,gFAAyG;AvDk2VnH;;ACl1VE;EsDlFF;IAqEc,gFAAyG;EvDo2VrH;AACF;;AuD16VA;EAeM,yBxDN4B;EwDO5B,W7CuDU;AVw2VhB;;AuD/6VA;;EAmBQ,cAAc;AvDi6VtB;;AuDp7VA;EAqBQ,W7CkDQ;AVi3VhB;;AuDx7VA;EAuBQ,+B7CgDQ;AVq3VhB;;AuD57VA;;EA0BU,W7C6CM;AV03VhB;;ACn2VE;EsD9FF;IA6BU,yBxDpBwB;EC67VhC;AACF;;AuDv8VA;;EAgCQ,+B7CuCQ;AVq4VhB;;AuD58VA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV44VhB;;AuDn9VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD86VtB;;AuDx9VA;EA4CY,UAAU;AvDg7VtB;;AuD59VA;EA+CY,yBAAwB;EACxB,UAAU;AvDi7VtB;;AuDj+VA;EAoDY,W7CmBI;AV85VhB;;AuDr+VA;EAsDc,uCxD/De;ACk/V7B;;AuDz+VA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDnDoB;ACs+VlC;;AuD/+VA;EAkEU,gFAAyG;AvDi7VnH;;ACj6VE;EsDlFF;IAqEc,gFAAyG;EvDm7VrH;AACF;;AuDz/VA;EAeM,yBxDJ4B;EwDK5B,W7CuDU;AVu7VhB;;AuD9/VA;;EAmBQ,cAAc;AvDg/VtB;;AuDngWA;EAqBQ,W7CkDQ;AVg8VhB;;AuDvgWA;EAuBQ,+B7CgDQ;AVo8VhB;;AuD3gWA;;EA0BU,W7C6CM;AVy8VhB;;ACl7VE;EsD9FF;IA6BU,yBxDlBwB;EC0gWhC;AACF;;AuDthWA;;EAgCQ,+B7CuCQ;AVo9VhB;;AuD3hWA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV29VhB;;AuDliWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD6/VtB;;AuDviWA;EA4CY,UAAU;AvD+/VtB;;AuD3iWA;EA+CY,yBAAwB;EACxB,UAAU;AvDggWtB;;AuDhjWA;EAoDY,W7CmBI;AV6+VhB;;AuDpjWA;EAsDc,uCxD/De;ACikW7B;;AuDxjWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjDoB;ACmjWlC;;AuD9jWA;EAkEU,gFAAyG;AvDggWnH;;ACh/VE;EsDlFF;IAqEc,gFAAyG;EvDkgWrH;AACF;;AuDxkWA;EAeM,yBxDL4B;EwDM5B,W7CuDU;AVsgWhB;;AuD7kWA;;EAmBQ,cAAc;AvD+jWtB;;AuDllWA;EAqBQ,W7CkDQ;AV+gWhB;;AuDtlWA;EAuBQ,+B7CgDQ;AVmhWhB;;AuD1lWA;;EA0BU,W7C6CM;AVwhWhB;;ACjgWE;EsD9FF;IA6BU,yBxDnBwB;EC0lWhC;AACF;;AuDrmWA;;EAgCQ,+B7CuCQ;AVmiWhB;;AuD1mWA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV0iWhB;;AuDjnWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD4kWtB;;AuDtnWA;EA4CY,UAAU;AvD8kWtB;;AuD1nWA;EA+CY,yBAAwB;EACxB,UAAU;AvD+kWtB;;AuD/nWA;EAoDY,W7CmBI;AV4jWhB;;AuDnoWA;EAsDc,uCxD/De;ACgpW7B;;AuDvoWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDlDoB;ACmoWlC;;AuD7oWA;EAkEU,gFAAyG;AvD+kWnH;;AC/jWE;EsDlFF;IAqEc,gFAAyG;EvDilWrH;AACF;;AuDvpWA;EAeM,yBxDP4B;EwDQ5B,W7CuDU;AVqlWhB;;AuD5pWA;;EAmBQ,cAAc;AvD8oWtB;;AuDjqWA;EAqBQ,W7CkDQ;AV8lWhB;;AuDrqWA;EAuBQ,+B7CgDQ;AVkmWhB;;AuDzqWA;;EA0BU,W7C6CM;AVumWhB;;AChlWE;EsD9FF;IA6BU,yBxDrBwB;EC2qWhC;AACF;;AuDprWA;;EAgCQ,+B7CuCQ;AVknWhB;;AuDzrWA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AVynWhB;;AuDhsWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD2pWtB;;AuDrsWA;EA4CY,UAAU;AvD6pWtB;;AuDzsWA;EA+CY,yBAAwB;EACxB,UAAU;AvD8pWtB;;AuD9sWA;EAoDY,W7CmBI;AV2oWhB;;AuDltWA;EAsDc,uCxD/De;AC+tW7B;;AuDttWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDpDoB;ACotWlC;;AuD5tWA;EAkEU,gFAAyG;AvD8pWnH;;AC9oWE;EsDlFF;IAqEc,gFAAyG;EvDgqWrH;AACF;;AuDtuWA;EAeM,yBxDR4B;EwDS5B,yB7CqDe;AVsqWrB;;AuD3uWA;;EAmBQ,cAAc;AvD6tWtB;;AuDhvWA;EAqBQ,yB7CgDa;AV+qWrB;;AuDpvWA;EAuBQ,yB7C8Ca;AVmrWrB;;AuDxvWA;;EA0BU,yB7C2CW;AVwrWrB;;AC/pWE;EsD9FF;IA6BU,yBxDtBwB;EC2vWhC;AACF;;AuDnwWA;;EAgCQ,yB7CqCa;AVmsWrB;;AuDxwWA;;;EAqCU,yB7C6DuB;E6C5DvB,yB7C+BW;AV0sWrB;;AuD/wWA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvD0uWtB;;AuDpxWA;EA4CY,UAAU;AvD4uWtB;;AuDxxWA;EA+CY,yBAAwB;EACxB,UAAU;AvD6uWtB;;AuD7xWA;EAoDY,yB7CiBS;AV4tWrB;;AuDjyWA;EAsDc,uCxD/De;AC8yW7B;;AuDryWA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,cxDrDoB;ACoyWlC;;AuD3yWA;EAkEU,gFAAyG;AvD6uWnH;;AC7tWE;EsDlFF;IAqEc,gFAAyG;EvD+uWrH;AACF;;AuDrzWA;EAeM,yBxDF2B;EwDG3B,W7CuDU;AVmvWhB;;AuD1zWA;;EAmBQ,cAAc;AvD4yWtB;;AuD/zWA;EAqBQ,W7CkDQ;AV4vWhB;;AuDn0WA;EAuBQ,+B7CgDQ;AVgwWhB;;AuDv0WA;;EA0BU,W7C6CM;AVqwWhB;;AC9uWE;EsD9FF;IA6BU,yBxDhBuB;ECo0W/B;AACF;;AuDl1WA;;EAgCQ,+B7CuCQ;AVgxWhB;;AuDv1WA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AVuxWhB;;AuD91WA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDyzWtB;;AuDn2WA;EA4CY,UAAU;AvD2zWtB;;AuDv2WA;EA+CY,yBAAwB;EACxB,UAAU;AvD4zWtB;;AuD52WA;EAoDY,W7CmBI;AVyyWhB;;AuDh3WA;EAsDc,uCxD/De;AC63W7B;;AuDp3WA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxD/CmB;AC62WjC;;AuD13WA;EAkEU,gFAAyG;AvD4zWnH;;AC5yWE;EsDlFF;IAqEc,gFAAyG;EvD8zWrH;AACF;;AuDp4WA;EAyEM,eAhF0B;AvD+4WhC;;AClzWE;EsDtFF;IA6EQ,oBAnF8B;EvDm5WpC;AACF;;ACxzWE;EsDtFF;IAiFQ,mBAtF4B;EvDw5WlC;AACF;;AuDp5WA;EAsFM,mBAAmB;EACnB,aAAa;AvDk0WnB;;AuDz5WA;EAyFQ,YAAY;EACZ,cAAc;AvDo0WtB;;AuD95WA;EA4FI,gBAAgB;AvDs0WpB;;AuDl6WA;EA8FI,iBAAiB;AvDw0WrB;;AuDp0WA;EAEE,gBAAgB;AvDs0WlB;;AuDx0WA;EAII,SAAS;EACT,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,qCAAqC;AvDw0WzC;;AuDj1WA;EAYI,YAAY;AvDy0WhB;;ACr2WE;EsDgBF;IAeI,aAAa;EvD20Wf;AACF;;AuD10WA;EACE,kBAAkB;AvD60WpB;;AC/2WE;EsDiCF;IAKM,aAAa;EvD80WjB;EuDn1WF;IAOQ,sBAAsB;EvD+0W5B;AACF;;ACp3WE;EsD6BF;IASI,aAAa;IACb,uBAAuB;EvDm1WzB;EuD71WF;ItD4BI,mBsDhBwC;EvDo1W1C;AACF;;AuDj1WA;;EAEE,YAAY;EACZ,cAAc;AvDo1WhB;;AuDl1WA;EACE,YAAY;EACZ,cAAc;EACd,oBApJ6B;AvDy+W/B;;AC14WE;EsDkDF;IAKI,kBArJgC;EvD6+WlC;AACF;;AwD1+WA;EACE,oBAN2B;AxDm/W7B;;ACx4WE;EuDtGF;IAII,kBAR+B;ExDu/WjC;EwDn/WF;IAOM,oBAV8B;ExDy/WlC;EwDt/WF;IASM,mBAX4B;ExD2/WhC;AACF;;AyD3/WA;EACE,yB1DO4B;E0DN5B,yBAJ+B;AzDkgXjC","file":"bulma-rtl.css"} \ No newline at end of file diff --git a/pagetop/static/bulmix/css/bulma.min.css b/pagetop/static/bulmix/css/bulma.min.css new file mode 100644 index 00000000..be16f726 --- /dev/null +++ b/pagetop/static/bulmix/css/bulma.min.css @@ -0,0 +1 @@ +/*! bulma.io v0.9.3 | MIT License | github.com/jgthms/bulma */.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .button,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .input,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-previous,fieldset[disabled] .select select,fieldset[disabled] .textarea{cursor:not-allowed}.breadcrumb,.button,.file,.is-unselectable,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#485fc7;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #485fc7}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #485fc7}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#485fc7;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:0 0;border-color:transparent;color:#485fc7;text-decoration:none}.button.is-ghost.is-hovered,.button.is-ghost:hover{color:#485fc7;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-hovered,.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined.is-focused,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined.is-loading.is-focused::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined.is-focused,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-hovered,.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined.is-focused,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined.is-loading.is-focused::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined.is-focused,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-hovered,.button.is-light.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined.is-focused,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined.is-loading.is-focused::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-light.is-inverted.is-outlined.is-focused,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-dark{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#fff}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],fieldset[disabled] .button.is-dark{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-hovered,.button.is-dark.is-inverted:hover{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined.is-focused,.button.is-dark.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined.is-loading.is-focused::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined.is-focused,.button.is-dark.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#00d1b2;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-hovered,.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined.is-focused,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined.is-loading.is-focused::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-outlined.is-loading:focus::after,.button.is-primary.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined.is-focused,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light{background-color:#ebfffc;color:#00947e}.button.is-primary.is-light.is-hovered,.button.is-primary.is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.button.is-primary.is-light.is-active,.button.is-primary.is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.button.is-link{background-color:#485fc7;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#3e56c4;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#3a51bb;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#485fc7;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-hovered,.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#485fc7}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;color:#485fc7}.button.is-link.is-outlined.is-focused,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#485fc7;border-color:#485fc7;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-outlined.is-loading.is-focused::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#485fc7;box-shadow:none;color:#485fc7}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined.is-focused,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#485fc7}.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #485fc7 #485fc7!important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff1fa;color:#3850b7}.button.is-link.is-light.is-hovered,.button.is-link.is-light:hover{background-color:#e6e9f7;border-color:transparent;color:#3850b7}.button.is-link.is-light.is-active,.button.is-link.is-light:active{background-color:#dce0f4;border-color:transparent;color:#3850b7}.button.is-info{background-color:#3e8ed0;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#3488ce;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#3082c5;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#3e8ed0;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-hovered,.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3e8ed0}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;color:#3e8ed0}.button.is-info.is-outlined.is-focused,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-outlined.is-loading.is-focused::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#3e8ed0;box-shadow:none;color:#3e8ed0}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined.is-focused,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#3e8ed0}.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #3e8ed0 #3e8ed0!important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#eff5fb;color:#296fa8}.button.is-info.is-light.is-hovered,.button.is-info.is-light:hover{background-color:#e4eff9;border-color:transparent;color:#296fa8}.button.is-info.is-light.is-active,.button.is-info.is-light:active{background-color:#dae9f6;border-color:transparent;color:#296fa8}.button.is-success{background-color:#48c78e;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#3ec487;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#3abb81;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#48c78e;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-hovered,.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#48c78e}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;color:#48c78e}.button.is-success.is-outlined.is-focused,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#48c78e;border-color:#48c78e;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-outlined.is-loading.is-focused::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#48c78e;box-shadow:none;color:#48c78e}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined.is-focused,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#48c78e}.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #48c78e #48c78e!important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#effaf5;color:#257953}.button.is-success.is-light.is-hovered,.button.is-success.is-light:hover{background-color:#e6f7ef;border-color:transparent;color:#257953}.button.is-success.is-light.is-active,.button.is-success.is-light:active{background-color:#dcf4e9;border-color:transparent;color:#257953}.button.is-warning{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffe08a;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-hovered,.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffe08a}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;color:#ffe08a}.button.is-warning.is-outlined.is-focused,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-outlined.is-loading.is-focused::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffe08a;box-shadow:none;color:#ffe08a}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined.is-focused,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffe08a}.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #ffe08a #ffe08a!important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-warning.is-light{background-color:#fffaeb;color:#946c00}.button.is-warning.is-light.is-hovered,.button.is-warning.is-light:hover{background-color:#fff6de;border-color:transparent;color:#946c00}.button.is-warning.is-light.is-active,.button.is-warning.is-light:active{background-color:#fff3d1;border-color:transparent;color:#946c00}.button.is-danger{background-color:#f14668;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#f03a5f;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#f14668;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-hovered,.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f14668}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;color:#f14668}.button.is-danger.is-outlined.is-focused,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#f14668;border-color:#f14668;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-outlined.is-loading.is-focused::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;box-shadow:none;color:#f14668}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined.is-focused,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.button.is-danger.is-light.is-hovered,.button.is-danger.is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.button.is-danger.is-light.is-active,.button.is-danger.is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.button.is-small{font-size:.75rem}.button.is-small:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * .5));top:calc(50% - (1em * .5));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:9999px;padding-left:calc(1em + .25em);padding-right:calc(1em + .25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none!important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (max-width:1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width:1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol:not([type]).is-lower-alpha{list-style-type:lower-alpha}.content ol:not([type]).is-lower-roman{list-style-type:lower-roman}.content ol:not([type]).is-upper-alpha{list-style-type:upper-alpha}.content ol:not([type]).is-upper-roman{list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:9999px}.image.is-fullwidth{width:100%}.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{right:.5rem;position:absolute;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.notification.is-dark{background-color:#363636;color:#fff}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-primary.is-light{background-color:#ebfffc;color:#00947e}.notification.is-link{background-color:#485fc7;color:#fff}.notification.is-link.is-light{background-color:#eff1fa;color:#3850b7}.notification.is-info{background-color:#3e8ed0;color:#fff}.notification.is-info.is-light{background-color:#eff5fb;color:#296fa8}.notification.is-success{background-color:#48c78e;color:#fff}.notification.is-success.is-light{background-color:#effaf5;color:#257953}.notification.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.notification.is-warning.is-light{background-color:#fffaeb;color:#946c00}.notification.is-danger{background-color:#f14668;color:#fff}.notification.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right,#fff 30%,#ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right,#0a0a0a 30%,#ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right,#f5f5f5 30%,#ededed 30%)}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate{background-image:linear-gradient(to right,#363636 30%,#ededed 30%)}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#00d1b2 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#485fc7}.progress.is-link::-moz-progress-bar{background-color:#485fc7}.progress.is-link::-ms-fill{background-color:#485fc7}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#485fc7 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#3e8ed0}.progress.is-info::-moz-progress-bar{background-color:#3e8ed0}.progress.is-info::-ms-fill{background-color:#3e8ed0}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#3e8ed0 30%,#ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#48c78e}.progress.is-success::-moz-progress-bar{background-color:#48c78e}.progress.is-success::-ms-fill{background-color:#48c78e}.progress.is-success:indeterminate{background-image:linear-gradient(to right,#48c78e 30%,#ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffe08a}.progress.is-warning::-moz-progress-bar{background-color:#ffe08a}.progress.is-warning::-ms-fill{background-color:#ffe08a}.progress.is-warning:indeterminate{background-image:linear-gradient(to right,#ffe08a 30%,#ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#f14668}.progress.is-danger::-moz-progress-bar{background-color:#f14668}.progress.is-danger::-ms-fill{background-color:#f14668}.progress.is-danger:indeterminate{background-image:linear-gradient(to right,#f14668 30%,#ededed 30%)}.progress:indeterminate{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:moveIndeterminate;animation-name:moveIndeterminate;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right,#4a4a4a 30%,#ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@-webkit-keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#485fc7;border-color:#485fc7;color:#fff}.table td.is-info,.table th.is-info{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.table td.is-success,.table th.is-success{background-color:#48c78e;border-color:#48c78e;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#363636}.table th:not([align]){text-align:inherit}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:transparent}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot{background-color:transparent}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody{background-color:transparent}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.tag:not(body).is-dark{background-color:#363636;color:#fff}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ebfffc;color:#00947e}.tag:not(body).is-link{background-color:#485fc7;color:#fff}.tag:not(body).is-link.is-light{background-color:#eff1fa;color:#3850b7}.tag:not(body).is-info{background-color:#3e8ed0;color:#fff}.tag:not(body).is-info.is-light{background-color:#eff5fb;color:#296fa8}.tag:not(body).is-success{background-color:#48c78e;color:#fff}.tag:not(body).is-success.is-light{background-color:#effaf5;color:#257953}.tag:not(body).is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.tag:not(body).is-warning.is-light{background-color:#fffaeb;color:#946c00}.tag:not(body).is-danger{background-color:#f14668;color:#fff}.tag:not(body).is-danger.is-light{background-color:#feecf0;color:#cc0f35}.tag:not(body).is-normal{font-size:.75rem}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-delete{margin-left:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:9999px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.input,.select select,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.is-hovered.input,.is-hovered.textarea,.select select.is-hovered,.select select:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.is-focused.input,.is-focused.textarea,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{border-color:#485fc7;box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.input[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .input,fieldset[disabled] .select select,fieldset[disabled] .textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input,.textarea{box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.input[readonly],.textarea[readonly]{box-shadow:none}.is-white.input,.is-white.textarea{border-color:#fff}.is-white.input:active,.is-white.input:focus,.is-white.is-active.input,.is-white.is-active.textarea,.is-white.is-focused.input,.is-white.is-focused.textarea,.is-white.textarea:active,.is-white.textarea:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.is-black.input,.is-black.textarea{border-color:#0a0a0a}.is-black.input:active,.is-black.input:focus,.is-black.is-active.input,.is-black.is-active.textarea,.is-black.is-focused.input,.is-black.is-focused.textarea,.is-black.textarea:active,.is-black.textarea:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.is-light.input,.is-light.textarea{border-color:#f5f5f5}.is-light.input:active,.is-light.input:focus,.is-light.is-active.input,.is-light.is-active.textarea,.is-light.is-focused.input,.is-light.is-focused.textarea,.is-light.textarea:active,.is-light.textarea:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.is-dark.input,.is-dark.textarea{border-color:#363636}.is-dark.input:active,.is-dark.input:focus,.is-dark.is-active.input,.is-dark.is-active.textarea,.is-dark.is-focused.input,.is-dark.is-focused.textarea,.is-dark.textarea:active,.is-dark.textarea:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.is-primary.input,.is-primary.textarea{border-color:#00d1b2}.is-primary.input:active,.is-primary.input:focus,.is-primary.is-active.input,.is-primary.is-active.textarea,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.textarea:active,.is-primary.textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.is-link.input,.is-link.textarea{border-color:#485fc7}.is-link.input:active,.is-link.input:focus,.is-link.is-active.input,.is-link.is-active.textarea,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.textarea:active,.is-link.textarea:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.is-info.input,.is-info.textarea{border-color:#3e8ed0}.is-info.input:active,.is-info.input:focus,.is-info.is-active.input,.is-info.is-active.textarea,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.textarea:active,.is-info.textarea:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.is-success.input,.is-success.textarea{border-color:#48c78e}.is-success.input:active,.is-success.input:focus,.is-success.is-active.input,.is-success.is-active.textarea,.is-success.is-focused.input,.is-success.is-focused.textarea,.is-success.textarea:active,.is-success.textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.is-warning.input,.is-warning.textarea{border-color:#ffe08a}.is-warning.input:active,.is-warning.input:focus,.is-warning.is-active.input,.is-warning.is-active.textarea,.is-warning.is-focused.input,.is-warning.is-focused.textarea,.is-warning.textarea:active,.is-warning.textarea:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.is-danger.input,.is-danger.textarea{border-color:#f14668}.is-danger.input:active,.is-danger.input:focus,.is-danger.is-active.input,.is-danger.is-active.textarea,.is-danger.is-focused.input,.is-danger.is-focused.textarea,.is-danger.textarea:active,.is-danger.textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.is-small.input,.is-small.textarea{border-radius:2px;font-size:.75rem}.is-medium.input,.is-medium.textarea{font-size:1.25rem}.is-large.input,.is-large.textarea{font-size:1.5rem}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:9999px;padding-left:calc(calc(.75em - 1px) + .375em);padding-right:calc(calc(.75em - 1px) + .375em)}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox input[disabled],.checkbox[disabled],.radio input[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .radio{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#485fc7;right:1.125em;z-index:4}.select.is-rounded select{border-radius:9999px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#485fc7}.select.is-link select{border-color:#485fc7}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#3a51bb}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.select.is-info:not(:hover)::after{border-color:#3e8ed0}.select.is-info select{border-color:#3e8ed0}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#3082c5}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.select.is-success:not(:hover)::after{border-color:#48c78e}.select.is-success select{border-color:#48c78e}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#3abb81}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.select.is-warning:not(:hover)::after{border-color:#ffe08a}.select.is-warning select{border-color:#ffe08a}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd970}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.select.is-danger:not(:hover)::after{border-color:#f14668}.select.is-danger select{border-color:#f14668}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ef2e55}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:rgba(0,0,0,.7)}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#fff}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#485fc7;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#3e56c4;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,95,199,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#3a51bb;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#3e8ed0;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#3488ce;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(62,142,208,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#3082c5;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#48c78e;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#3ec487;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,199,142,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#3abb81;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffe08a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdc7d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,224,138,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#f14668;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#f03a5f;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(241,70,104,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ef2e55;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:0;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#485fc7}.help.is-info{color:#3e8ed0}.help.is-success{color:#48c78e}.help.is-warning{color:#ffe08a}.help.is-danger{color:#f14668}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]).is-hovered,.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]).is-hovered,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]).is-hovered,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]).is-focused,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]).is-focused,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]).is-focused,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]).is-focused:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]).is-focused:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]).is-focused:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#4a4a4a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#485fc7;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;max-width:100%;position:relative}.card-content:first-child,.card-footer:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-content:last-child,.card-footer:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:transparent;align-items:stretch;box-shadow:0 .125em .25em rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:transparent;padding:1.5rem}.card-footer{background-color:transparent;border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#485fc7;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width:768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#485fc7;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body{border-color:#363636}.message.is-primary{background-color:#ebfffc}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#00947e}.message.is-link{background-color:#eff1fa}.message.is-link .message-header{background-color:#485fc7;color:#fff}.message.is-link .message-body{border-color:#485fc7;color:#3850b7}.message.is-info{background-color:#eff5fb}.message.is-info .message-header{background-color:#3e8ed0;color:#fff}.message.is-info .message-body{border-color:#3e8ed0;color:#296fa8}.message.is-success{background-color:#effaf5}.message.is-success .message-header{background-color:#48c78e;color:#fff}.message.is-success .message-body{border-color:#48c78e;color:#257953}.message.is-warning{background-color:#fffaeb}.message.is-warning .message-header{background-color:#ffe08a;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffe08a;color:#946c00}.message.is-danger{background-color:#feecf0}.message.is-danger .message-header{background-color:#f14668;color:#fff}.message.is-danger .message-body{border-color:#f14668;color:#cc0f35}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width:1024px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.navbar.is-dark{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#fff}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#fff}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#485fc7;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#3a51bb;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#485fc7;color:#fff}}.navbar.is-info{background-color:#3e8ed0;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3e8ed0;color:#fff}}.navbar.is-success{background-color:#48c78e;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#48c78e;color:#fff}}.navbar.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffe08a;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#f14668;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f14668;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#485fc7}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#485fc7}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#485fc7;border-bottom-style:solid;border-bottom-width:3px;color:#485fc7;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#485fc7;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.5em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#485fc7}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#485fc7;border-color:#485fc7;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading{background-color:#00d1b2;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#00d1b2}.panel.is-primary .panel-block.is-active .panel-icon{color:#00d1b2}.panel.is-link .panel-heading{background-color:#485fc7;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#485fc7}.panel.is-link .panel-block.is-active .panel-icon{color:#485fc7}.panel.is-info .panel-heading{background-color:#3e8ed0;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#3e8ed0}.panel.is-info .panel-block.is-active .panel-icon{color:#3e8ed0}.panel.is-success .panel-heading{background-color:#48c78e;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#48c78e}.panel.is-success .panel-block.is-active .panel-icon{color:#48c78e}.panel.is-warning .panel-heading{background-color:#ffe08a;color:rgba(0,0,0,.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffe08a}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffe08a}.panel.is-danger .panel-heading{background-color:#f14668;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#f14668}.panel.is-danger .panel-block.is-active .panel-icon{color:#f14668}.panel-block:not(:last-child),.panel-tabs:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#363636;font-size:1.25em;font-weight:700;line-height:1.25;padding:.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#485fc7}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#485fc7;color:#363636}.panel-block.is-active .panel-icon{color:#485fc7}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#485fc7;color:#485fc7}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li.is-active a{background-color:#485fc7;border-color:#485fc7;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-left:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-left:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-left:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-left:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-left:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-left:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-left:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-left:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1023px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-left:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-left:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-left:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-left:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-left:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-left:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-left:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-left:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1024px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-left:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-left:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-left:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-left:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-left:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-left:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-left:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-left:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-left:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-left:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-left:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-left:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-left:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-left:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-left:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-left:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-left:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-left:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-left:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-left:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-left:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-left:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-left:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-left:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1024px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}@media screen and (max-width:768px){.columns.is-variable.is-0-mobile{--columnGap:0rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-0-tablet{--columnGap:0rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-0-tablet-only{--columnGap:0rem}}@media screen and (max-width:1023px){.columns.is-variable.is-0-touch{--columnGap:0rem}}@media screen and (min-width:1024px){.columns.is-variable.is-0-desktop{--columnGap:0rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-0-desktop-only{--columnGap:0rem}}@media screen and (min-width:1216px){.columns.is-variable.is-0-widescreen{--columnGap:0rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-0-widescreen-only{--columnGap:0rem}}@media screen and (min-width:1408px){.columns.is-variable.is-0-fullhd{--columnGap:0rem}}.columns.is-variable.is-1{--columnGap:0.25rem}@media screen and (max-width:768px){.columns.is-variable.is-1-mobile{--columnGap:0.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-1-tablet{--columnGap:0.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-1-tablet-only{--columnGap:0.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-1-touch{--columnGap:0.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-1-desktop{--columnGap:0.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-1-desktop-only{--columnGap:0.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-1-widescreen{--columnGap:0.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-1-widescreen-only{--columnGap:0.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-1-fullhd{--columnGap:0.25rem}}.columns.is-variable.is-2{--columnGap:0.5rem}@media screen and (max-width:768px){.columns.is-variable.is-2-mobile{--columnGap:0.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-2-tablet{--columnGap:0.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-2-tablet-only{--columnGap:0.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-2-touch{--columnGap:0.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-2-desktop{--columnGap:0.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-2-desktop-only{--columnGap:0.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-2-widescreen{--columnGap:0.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-2-widescreen-only{--columnGap:0.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-2-fullhd{--columnGap:0.5rem}}.columns.is-variable.is-3{--columnGap:0.75rem}@media screen and (max-width:768px){.columns.is-variable.is-3-mobile{--columnGap:0.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-3-tablet{--columnGap:0.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-3-tablet-only{--columnGap:0.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-3-touch{--columnGap:0.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-3-desktop{--columnGap:0.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-3-desktop-only{--columnGap:0.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-3-widescreen{--columnGap:0.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-3-widescreen-only{--columnGap:0.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-3-fullhd{--columnGap:0.75rem}}.columns.is-variable.is-4{--columnGap:1rem}@media screen and (max-width:768px){.columns.is-variable.is-4-mobile{--columnGap:1rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-4-tablet{--columnGap:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-4-tablet-only{--columnGap:1rem}}@media screen and (max-width:1023px){.columns.is-variable.is-4-touch{--columnGap:1rem}}@media screen and (min-width:1024px){.columns.is-variable.is-4-desktop{--columnGap:1rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-4-desktop-only{--columnGap:1rem}}@media screen and (min-width:1216px){.columns.is-variable.is-4-widescreen{--columnGap:1rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-4-widescreen-only{--columnGap:1rem}}@media screen and (min-width:1408px){.columns.is-variable.is-4-fullhd{--columnGap:1rem}}.columns.is-variable.is-5{--columnGap:1.25rem}@media screen and (max-width:768px){.columns.is-variable.is-5-mobile{--columnGap:1.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-5-tablet{--columnGap:1.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-5-tablet-only{--columnGap:1.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-5-touch{--columnGap:1.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-5-desktop{--columnGap:1.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-5-desktop-only{--columnGap:1.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-5-widescreen{--columnGap:1.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-5-widescreen-only{--columnGap:1.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-5-fullhd{--columnGap:1.25rem}}.columns.is-variable.is-6{--columnGap:1.5rem}@media screen and (max-width:768px){.columns.is-variable.is-6-mobile{--columnGap:1.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-6-tablet{--columnGap:1.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-6-tablet-only{--columnGap:1.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-6-touch{--columnGap:1.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-6-desktop{--columnGap:1.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-6-desktop-only{--columnGap:1.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-6-widescreen{--columnGap:1.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-6-widescreen-only{--columnGap:1.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-6-fullhd{--columnGap:1.5rem}}.columns.is-variable.is-7{--columnGap:1.75rem}@media screen and (max-width:768px){.columns.is-variable.is-7-mobile{--columnGap:1.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-7-tablet{--columnGap:1.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-7-tablet-only{--columnGap:1.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-7-touch{--columnGap:1.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-7-desktop{--columnGap:1.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-7-desktop-only{--columnGap:1.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-7-widescreen{--columnGap:1.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-7-widescreen-only{--columnGap:1.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-7-fullhd{--columnGap:1.75rem}}.columns.is-variable.is-8{--columnGap:2rem}@media screen and (max-width:768px){.columns.is-variable.is-8-mobile{--columnGap:2rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-8-tablet{--columnGap:2rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-8-tablet-only{--columnGap:2rem}}@media screen and (max-width:1023px){.columns.is-variable.is-8-touch{--columnGap:2rem}}@media screen and (min-width:1024px){.columns.is-variable.is-8-desktop{--columnGap:2rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-8-desktop-only{--columnGap:2rem}}@media screen and (min-width:1216px){.columns.is-variable.is-8-widescreen{--columnGap:2rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-8-widescreen-only{--columnGap:2rem}}@media screen and (min-width:1408px){.columns.is-variable.is-8-fullhd{--columnGap:2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-primary-light{color:#ebfffc!important}a.has-text-primary-light:focus,a.has-text-primary-light:hover{color:#b8fff4!important}.has-background-primary-light{background-color:#ebfffc!important}.has-text-primary-dark{color:#00947e!important}a.has-text-primary-dark:focus,a.has-text-primary-dark:hover{color:#00c7a9!important}.has-background-primary-dark{background-color:#00947e!important}.has-text-link{color:#485fc7!important}a.has-text-link:focus,a.has-text-link:hover{color:#3449a8!important}.has-background-link{background-color:#485fc7!important}.has-text-link-light{color:#eff1fa!important}a.has-text-link-light:focus,a.has-text-link-light:hover{color:#c8cfee!important}.has-background-link-light{background-color:#eff1fa!important}.has-text-link-dark{color:#3850b7!important}a.has-text-link-dark:focus,a.has-text-link-dark:hover{color:#576dcb!important}.has-background-link-dark{background-color:#3850b7!important}.has-text-info{color:#3e8ed0!important}a.has-text-info:focus,a.has-text-info:hover{color:#2b74b1!important}.has-background-info{background-color:#3e8ed0!important}.has-text-info-light{color:#eff5fb!important}a.has-text-info-light:focus,a.has-text-info-light:hover{color:#c6ddf1!important}.has-background-info-light{background-color:#eff5fb!important}.has-text-info-dark{color:#296fa8!important}a.has-text-info-dark:focus,a.has-text-info-dark:hover{color:#368ace!important}.has-background-info-dark{background-color:#296fa8!important}.has-text-success{color:#48c78e!important}a.has-text-success:focus,a.has-text-success:hover{color:#34a873!important}.has-background-success{background-color:#48c78e!important}.has-text-success-light{color:#effaf5!important}a.has-text-success-light:focus,a.has-text-success-light:hover{color:#c8eedd!important}.has-background-success-light{background-color:#effaf5!important}.has-text-success-dark{color:#257953!important}a.has-text-success-dark:focus,a.has-text-success-dark:hover{color:#31a06e!important}.has-background-success-dark{background-color:#257953!important}.has-text-warning{color:#ffe08a!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd257!important}.has-background-warning{background-color:#ffe08a!important}.has-text-warning-light{color:#fffaeb!important}a.has-text-warning-light:focus,a.has-text-warning-light:hover{color:#ffecb8!important}.has-background-warning-light{background-color:#fffaeb!important}.has-text-warning-dark{color:#946c00!important}a.has-text-warning-dark:focus,a.has-text-warning-dark:hover{color:#c79200!important}.has-background-warning-dark{background-color:#946c00!important}.has-text-danger{color:#f14668!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ee1742!important}.has-background-danger{background-color:#f14668!important}.has-text-danger-light{color:#feecf0!important}a.has-text-danger-light:focus,a.has-text-danger-light:hover{color:#fabdc9!important}.has-background-danger-light{background-color:#feecf0!important}.has-text-danger-dark{color:#cc0f35!important}a.has-text-danger-dark:focus,a.has-text-danger-dark:hover{color:#ee2049!important}.has-background-danger-dark{background-color:#cc0f35!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.is-flex-direction-row{flex-direction:row!important}.is-flex-direction-row-reverse{flex-direction:row-reverse!important}.is-flex-direction-column{flex-direction:column!important}.is-flex-direction-column-reverse{flex-direction:column-reverse!important}.is-flex-wrap-nowrap{flex-wrap:nowrap!important}.is-flex-wrap-wrap{flex-wrap:wrap!important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse!important}.is-justify-content-flex-start{justify-content:flex-start!important}.is-justify-content-flex-end{justify-content:flex-end!important}.is-justify-content-center{justify-content:center!important}.is-justify-content-space-between{justify-content:space-between!important}.is-justify-content-space-around{justify-content:space-around!important}.is-justify-content-space-evenly{justify-content:space-evenly!important}.is-justify-content-start{justify-content:start!important}.is-justify-content-end{justify-content:end!important}.is-justify-content-left{justify-content:left!important}.is-justify-content-right{justify-content:right!important}.is-align-content-flex-start{align-content:flex-start!important}.is-align-content-flex-end{align-content:flex-end!important}.is-align-content-center{align-content:center!important}.is-align-content-space-between{align-content:space-between!important}.is-align-content-space-around{align-content:space-around!important}.is-align-content-space-evenly{align-content:space-evenly!important}.is-align-content-stretch{align-content:stretch!important}.is-align-content-start{align-content:start!important}.is-align-content-end{align-content:end!important}.is-align-content-baseline{align-content:baseline!important}.is-align-items-stretch{align-items:stretch!important}.is-align-items-flex-start{align-items:flex-start!important}.is-align-items-flex-end{align-items:flex-end!important}.is-align-items-center{align-items:center!important}.is-align-items-baseline{align-items:baseline!important}.is-align-items-start{align-items:start!important}.is-align-items-end{align-items:end!important}.is-align-items-self-start{align-items:self-start!important}.is-align-items-self-end{align-items:self-end!important}.is-align-self-auto{align-self:auto!important}.is-align-self-flex-start{align-self:flex-start!important}.is-align-self-flex-end{align-self:flex-end!important}.is-align-self-center{align-self:center!important}.is-align-self-baseline{align-self:baseline!important}.is-align-self-stretch{align-self:stretch!important}.is-flex-grow-0{flex-grow:0!important}.is-flex-grow-1{flex-grow:1!important}.is-flex-grow-2{flex-grow:2!important}.is-flex-grow-3{flex-grow:3!important}.is-flex-grow-4{flex-grow:4!important}.is-flex-grow-5{flex-grow:5!important}.is-flex-shrink-0{flex-shrink:0!important}.is-flex-shrink-1{flex-shrink:1!important}.is-flex-shrink-2{flex-shrink:2!important}.is-flex-shrink-3{flex-shrink:3!important}.is-flex-shrink-4{flex-shrink:4!important}.is-flex-shrink-5{flex-shrink:5!important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.is-clickable{cursor:pointer!important;pointer-events:all!important}.is-clipped{overflow:hidden!important}.is-relative{position:relative!important}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.m-1{margin:.25rem!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.ml-1{margin-left:.25rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-2{margin:.5rem!important}.mt-2{margin-top:.5rem!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3{margin-left:.75rem!important}.mx-3{margin-left:.75rem!important;margin-right:.75rem!important}.my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.m-4{margin:1rem!important}.mt-4{margin-top:1rem!important}.mr-4{margin-right:1rem!important}.mb-4{margin-bottom:1rem!important}.ml-4{margin-left:1rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.my-4{margin-top:1rem!important;margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5{margin-left:1.5rem!important}.mx-5{margin-left:1.5rem!important;margin-right:1.5rem!important}.my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-6{margin:3rem!important}.mt-6{margin-top:3rem!important}.mr-6{margin-right:3rem!important}.mb-6{margin-bottom:3rem!important}.ml-6{margin-left:3rem!important}.mx-6{margin-left:3rem!important;margin-right:3rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.m-auto{margin:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.p-1{padding:.25rem!important}.pt-1{padding-top:.25rem!important}.pr-1{padding-right:.25rem!important}.pb-1{padding-bottom:.25rem!important}.pl-1{padding-left:.25rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-2{padding:.5rem!important}.pt-2{padding-top:.5rem!important}.pr-2{padding-right:.5rem!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-3{padding:.75rem!important}.pt-3{padding-top:.75rem!important}.pr-3{padding-right:.75rem!important}.pb-3{padding-bottom:.75rem!important}.pl-3{padding-left:.75rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.p-4{padding:1rem!important}.pt-4{padding-top:1rem!important}.pr-4{padding-right:1rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.p-5{padding:1.5rem!important}.pt-5{padding-top:1.5rem!important}.pr-5{padding-right:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.pl-5{padding-left:1.5rem!important}.px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-5{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-6{padding:3rem!important}.pt-6{padding-top:3rem!important}.pr-6{padding-right:3rem!important}.pb-6{padding-bottom:3rem!important}.pl-6{padding-left:3rem!important}.px-6{padding-left:3rem!important;padding-right:3rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.p-auto{padding:auto!important}.pt-auto{padding-top:auto!important}.pr-auto{padding-right:auto!important}.pb-auto{padding-bottom:auto!important}.pl-auto{padding-left:auto!important}.px-auto{padding-left:auto!important;padding-right:auto!important}.py-auto{padding-top:auto!important;padding-bottom:auto!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1023px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1024px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1216px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1408px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1023px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1024px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1216px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1408px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1023px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1024px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1216px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1408px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1023px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1024px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1216px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1408px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1023px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1024px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1216px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1408px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.is-underlined{text-decoration:underline!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-medium{font-weight:500!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-family-primary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-secondary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-sans-serif{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-monospace{font-family:monospace!important}.is-family-code{font-family:monospace!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1023px){.is-block-touch{display:block!important}}@media screen and (min-width:1024px){.is-block-desktop{display:block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1216px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1408px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1023px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1024px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1216px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1408px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1023px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1024px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1216px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1408px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1023px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1024px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1216px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1408px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1023px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1024px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1216px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1408px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}.is-sr-only{border:none!important;clip:rect(0,0,0,0)!important;height:.01em!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:.01em!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1023px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1024px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1216px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1408px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1023px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1024px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1216px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1408px){.is-invisible-fullhd{visibility:hidden!important}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1023px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff!important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a!important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,.7)}.hero.is-light .subtitle{color:rgba(0,0,0,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.hero.is-light .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5!important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#fff}.hero.is-dark .subtitle{color:rgba(255,255,255,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(255,255,255,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#fff}.hero.is-dark .tabs a{color:#fff;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{color:#363636!important;opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{color:#00d1b2!important;opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#485fc7;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#485fc7}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#3a51bb;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#485fc7!important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#485fc7}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#2959b3 0,#485fc7 71%,#5658d2 100%)}}.hero.is-info{background-color:#3e8ed0;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#3e8ed0}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#3082c5;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#3e8ed0!important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3e8ed0}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#208fbc 0,#3e8ed0 71%,#4d83db 100%)}}.hero.is-success{background-color:#48c78e;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-success .navbar-menu{background-color:#48c78e}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#3abb81;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#48c78e!important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#48c78e}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#29b35e 0,#48c78e 71%,#56d2af 100%)}}.hero.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-warning .navbar-menu{background-color:#ffe08a}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffe08a!important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffe08a}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffb657 0,#ffe08a 71%,#fff6a3 100%)}}.hero.is-danger{background-color:#f14668;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-danger .navbar-menu{background-color:#f14668}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ef2e55;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#f14668!important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#f14668}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}}.hero.is-small .hero-body{padding:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width:769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem} \ No newline at end of file diff --git a/pagetop/static/bulmix/css/bulma.min.css.map b/pagetop/static/bulmix/css/bulma.min.css.map new file mode 100644 index 00000000..fc794a72 --- /dev/null +++ b/pagetop/static/bulmix/css/bulma.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../bulma.sass","../sass/utilities/_all.sass","../sass/utilities/extends.sass","../sass/utilities/controls.sass","../sass/utilities/initial-variables.sass","bulma.css","../sass/utilities/mixins.sass","../sass/base/_all.sass","../sass/base/minireset.sass","../sass/base/generic.sass","../sass/utilities/derived-variables.sass","../sass/base/animations.sass","../sass/elements/_all.sass","../sass/elements/box.sass","../sass/elements/button.sass","../sass/utilities/functions.sass","../sass/elements/container.sass","../sass/elements/content.sass","../sass/elements/icon.sass","../sass/elements/image.sass","../sass/elements/notification.sass","../sass/elements/progress.sass","../sass/elements/table.sass","../sass/elements/tag.sass","../sass/elements/title.sass","../sass/elements/other.sass","../sass/form/_all.sass","../sass/form/shared.sass","../sass/form/input-textarea.sass","../sass/form/checkbox-radio.sass","../sass/form/select.sass","../sass/form/file.sass","../sass/form/tools.sass","../sass/components/_all.sass","../sass/components/breadcrumb.sass","../sass/components/card.sass","../sass/components/dropdown.sass","../sass/components/level.sass","../sass/components/media.sass","../sass/components/menu.sass","../sass/components/message.sass","../sass/components/modal.sass","../sass/components/navbar.sass","../sass/components/pagination.sass","../sass/components/panel.sass","../sass/components/tabs.sass","../sass/grid/_all.sass","../sass/grid/columns.sass","../sass/grid/tiles.sass","../sass/helpers/_all.sass","../sass/helpers/color.sass","../sass/helpers/flexbox.sass","../sass/helpers/float.sass","../sass/helpers/other.sass","../sass/helpers/overflow.sass","../sass/helpers/position.sass","../sass/helpers/spacing.sass","../sass/helpers/typography.sass","../sass/helpers/visibility.sass","../sass/layout/_all.sass","../sass/layout/hero.sass","../sass/layout/section.sass","../sass/layout/footer.sass"],"names":[],"mappings":"AACA,6DAAA;ACDA,oBAAA;ACEA;;;;;ECYE,qBAAqB;EACrB,wBAAwB;EACxB,mBAAmB;EACnB,6BAA+C;EAC/C,kBCmDU;EDlDV,gBAAgB;EAChB,oBAAoB;EACpB,eCgBW;EDfX,aAfoB;EAgBpB,2BAA2B;EAC3B,gBAhBuB;EAiBvB,iCAf+D;EAgB/D,gCAfkE;EAgBlE,iCAhBkE;EAiBlE,8BAlB+D;EAmB/D,kBAAkB;EAClB,mBAAmB;AENrB;;AFQE;;;;;;;;;;;;;;;;;EAIE,aAAa;AEQjB;;AFPE;;;;;;;;;;;;;;;;EAEE,mBAAmB;AEwBvB;;AH1DA;;;;EIoKE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;ADnGnB;;AHlEA;EIwKE,6BAD8B;EAE9B,kBAAkB;EAClB,eAAe;EACf,aAAa;EACb,YAAY;EACZ,cAAc;EACd,eAAe;EACf,qBAAqB;EACrB,oBAAoB;EACpB,kBAAkB;EAClB,QAAQ;EACR,yBAAyB;EACzB,wBAAwB;EACxB,cAAc;ADlGhB;;ACqGE;;EACE,qBFjJkB;ACgDtB;;AHlFA;EI2JE,2BAA2B;EAC3B,yBAAyB;EACzB,sBAAsB;EACtB,qBAAqB;EACrB,iBAAiB;EAwBjB,qBAAqB;EACrB,wBAAwB;EACxB,uCFrM2B;EEsM3B,YAAY;EACZ,qBFlIqB;EEmIrB,eAAe;EACf,oBAAoB;EACpB,qBAAqB;EACrB,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,WAAW;AD5Fb;;AC6FE;EAEE,uBF5M2B;EE6M3B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;AD3FnC;;AC4FE;EACE,WAAW;EACX,UAAU;ADzFd;;AC0FE;EACE,WAAW;EACX,UAAU;ADvFd;;ACwFE;EAEE,uCFzOyB;ACmJ7B;;ACuFE;EACE,uCF3OyB;ACuJ7B;;ACsFE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADnFf;;ACoFE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;ADjFf;;ACkFE;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,WAAW;AD/Ef;;AHnKA;EIqPE,mDAA2C;UAA3C,2CAA2C;EAC3C,yBF7P4B;EE8P5B,qBFjMqB;EEkMrB,+BAA+B;EAC/B,6BAA6B;EAC7B,WAAW;EACX,cAAc;EACd,WAAW;EACX,kBAAkB;EAClB,UAAU;AD9EZ;;AH7KA;;;;;;;;;;;;;;;;;EI8PE,SADuB;EAEvB,OAFuB;EAGvB,kBAAkB;EAClB,QAJuB;EAKvB,MALuB;ADxDzB;;AHlMA;EIgDE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;ADsJZ;;AEtOA,eAAA;ACAA,0EAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;EAuBE,SAAS;EACT,UAAU;AHyOZ;;AGtOA;;;;;;EAME,eAAe;EACf,mBAAmB;AHyOrB;;AGtOA;EACE,gBAAgB;AHyOlB;;AGtOA;;;;EAIE,SAAS;AHyOX;;AGtOA;EACE,sBAAsB;AHyOxB;;AGvOA;EAII,mBAAmB;AHuOvB;;AGpOA;;EAEE,YAAY;EACZ,eAAe;AHuOjB;;AGpOA;EACE,SAAS;AHuOX;;AGpOA;EACE,yBAAyB;EACzB,iBAAiB;AHuOnB;;AGrOA;;EAEE,UAAU;AHwOZ;;AG1OA;;EAII,mBAAmB;AH2OvB;;AGvQA;EChBE,uBLnB6B;EKoB7B,eAhCc;EAiCd,kCAAkC;EAClC,mCAAmC;EACnC,gBAlCoB;EAmCpB,kBAhCsB;EAiCtB,kBAhCsB;EAiCtB,kCApCiC;EAqCjC,8BAAsB;KAAtB,2BAAsB;UAAtB,sBAAsB;AJ2RxB;;AIzRA;;;;;;;EAOE,cAAc;AJ4RhB;;AI1RA;;;;;;EAME,oLL/ByL;AC4T3L;;AI3RA;;EAEE,6BAA6B;EAC7B,4BAA4B;EAC5B,sBLpC0B;ACkU5B;;AI5RA;EACE,cL7D4B;EK8D5B,cA1DkB;EA2DlB,gBL7BiB;EK8BjB,gBA1DoB;AJyVtB;;AI3RA;EACE,cLtDgC;EKuDhC,eAAe;EACf,qBAAqB;AJ8RvB;;AIjSA;EAKI,mBAAmB;AJgSvB;;AIrSA;EAOI,cL5E0B;AC8W9B;;AIhSA;EACE,4BLxE4B;EKyE5B,cCnBsB;EDoBtB,kBArEiB;EAsEjB,mBAvEkB;EAwElB,4BAzEgC;AJ4WlC;;AIjSA;EACE,4BL/E4B;EKgF5B,YAAY;EACZ,cAAc;EACd,WAxEa;EAyEb,gBAxEkB;AJ4WpB;;AIlSA;EACE,YAAY;EACZ,eAAe;AJqSjB;;AInSA;;EAEE,wBAAwB;AJsS1B;;AIpSA;EACE,kBAvFuB;AJ8XzB;;AIrSA;EACE,mBAAmB;EACnB,oBAAoB;AJwStB;;AItSA;EACE,cL5G4B;EK6G5B,gBLvEe;ACgXjB;;AIrSA;EACE,YAAY;AJwSd;;AItSA;EH5DE,iCAAiC;EG8DjC,4BL/G4B;EKgH5B,cLtH4B;EKuH5B,kBAjGqB;EAkGrB,gBAAgB;EAChB,uBAlG0B;EAmG1B,gBAAgB;EAChB,iBAAiB;AJySnB;;AIjTA;EAUI,6BAA6B;EAC7B,mBAAmB;EACnB,cAvGoB;EAwGpB,UAAU;AJ2Sd;;AIzSA;;EAGI,mBAAmB;AJ2SvB;;AI9SA;;EAKM,mBAAmB;AJ8SzB;;AInTA;EAOI,cL1I0B;AC0b9B;;AMhcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AMzcA;EACE;IACE,uBAAuB;ENmczB;EMlcA;IACE,yBAAyB;ENoc3B;AACF;;AOzcA,mBAAA;ACWA;EAEE,uBTE6B;ESD7B,kBTwDgB;ESvDhB,0FTb2B;ESc3B,cTT4B;ESU5B,cAAc;EACd,gBAZmB;AR6crB;;AQ/bA;EAGI,yETD8B;ACiclC;;AQncA;EAKI,oETH8B;ACqclC;;AShaA;EAGE,uBV/C6B;EUgD7B,qBVrD4B;EUsD5B,iBX3DwB;EW4DxB,cV3D4B;EU4D5B,eAAe;EAGf,uBAAuB;EACvB,iCA5D6D;EA6D7D,iBA5D6B;EA6D7B,kBA7D6B;EA8D7B,8BA/D6D;EAgE7D,kBAAkB;EAClB,mBAAmB;AT+ZrB;;AS/aA;EAkBI,cAAc;ATialB;;ASnbA;EAwBM,aAAa;EACb,YAAY;AT+ZlB;;ASxbA;ERiGI,+BQtEsG;ERsEtG,oBQrEmE;ATiavE;;AS7bA;ERiGI,mBQnEmE;ERmEnE,gCQlEsG;ATma1G;;ASlcA;EAiCM,+BAAiF;EACjF,gCAAkF;ATqaxF;;ASvcA;EAsCI,qBVxF0B;EUyF1B,cV5F0B;ACigB9B;;AS5cA;EA0CI,qBV/E8B;EUgF9B,cVhG0B;ACsgB9B;;ASjdA;EA6CM,iDVlF4B;AC0flC;;ASrdA;EAgDI,qBVpG0B;EUqG1B,cVtG0B;AC+gB9B;;AS1dA;EAoDI,6BAA6B;EAC7B,yBAAyB;EACzB,cV1G0B;EU2G1B,0BAzF8B;ATmgBlC;;ASjeA;EA4DM,4BV1GwB;EU2GxB,cVlHwB;AC2hB9B;;ASteA;EAgEM,yBCd2B;EDe3B,cVtHwB;ACgiB9B;;AS3eA;;EAoEM,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;AT4atB;;ASlfA;EAwEI,gBAtG0B;EAuG1B,yBAtGmC;EAuGnC,cV/G8B;EUgH9B,qBAtG0B;ATohB9B;;ASzfA;EA8EM,cVnH4B;EUoH5B,0BAxGmC;ATuhBzC;;AS9fA;EAoFM,uBVhIyB;EUiIzB,yBAAyB;EACzB,cV/IuB;AC6jB7B;;ASpgBA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,cVpJqB;ACmkB7B;;AS1gBA;EA8FQ,yBAAyB;EACzB,cVxJqB;ACwkB7B;;AS/gBA;EAiGU,mDV7IqB;AC+jB/B;;ASnhBA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,cV/JqB;ACklB7B;;ASzhBA;;EAyGQ,uBVrJuB;EUsJvB,yBAAyB;EACzB,gBAAgB;ATqbxB;;AShiBA;EA6GQ,yBVtKqB;EUuKrB,YV1JuB;ACilB/B;;ASriBA;EAiHU,uBC/DuB;AVufjC;;ASziBA;;EAoHU,yBV7KmB;EU8KnB,yBAAyB;EACzB,gBAAgB;EAChB,YVnKqB;AC6lB/B;;ASjjBA;EA0HU,gEAA4E;AT2btF;;ASrjBA;EA4HQ,6BAA6B;EAC7B,mBVzKuB;EU0KvB,YV1KuB;ACumB/B;;AS3jBA;EAmIU,uBV/KqB;EUgLrB,mBVhLqB;EUiLrB,cV9LmB;AC0nB7B;;ASjkBA;EAwIY,4DAA8D;AT6b1E;;ASrkBA;EA8Ic,gEAA4E;AT2b1F;;ASzkBA;;EAiJU,6BAA6B;EAC7B,mBV9LqB;EU+LrB,gBAAgB;EAChB,YVhMqB;AC6nB/B;;ASjlBA;EAsJQ,6BAA6B;EAC7B,qBVhNqB;EUiNrB,cVjNqB;ACgpB7B;;ASvlBA;EA6JU,yBVtNmB;EUuNnB,YV1MqB;ACwoB/B;;AS5lBA;EAqKc,4DAA8D;AT2b5E;;AShmBA;;EAwKU,6BAA6B;EAC7B,qBVlOmB;EUmOnB,gBAAgB;EAChB,cVpOmB;ACiqB7B;;ASxmBA;EAoFM,yBV7IuB;EU8IvB,yBAAyB;EACzB,YVlIyB;AC0pB/B;;AS9mBA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,YVvIuB;ACgqB/B;;ASpnBA;EA8FQ,yBAAyB;EACzB,YV3IuB;ACqqB/B;;ASznBA;EAiGU,gDV1JmB;ACsrB7B;;AS7nBA;EAoGQ,uBClDyB;EDmDzB,yBAAyB;EACzB,YVlJuB;AC+qB/B;;ASnoBA;;EAyGQ,yBVlKqB;EUmKrB,yBAAyB;EACzB,gBAAgB;AT+hBxB;;AS1oBA;EA6GQ,uBVzJuB;EU0JvB,cVvKqB;ACwsB7B;;AS/oBA;EAiHU,yBC/DuB;AVimBjC;;ASnpBA;;EAoHU,uBVhKqB;EUiKrB,yBAAyB;EACzB,gBAAgB;EAChB,cVhLmB;ACotB7B;;AS3pBA;EA0HU,4DAA4E;ATqiBtF;;AS/pBA;EA4HQ,6BAA6B;EAC7B,qBVtLqB;EUuLrB,cVvLqB;AC8tB7B;;ASrqBA;EAmIU,yBV5LmB;EU6LnB,qBV7LmB;EU8LnB,YVjLqB;ACutB/B;;AS3qBA;EAwIY,gEAA8D;ATuiB1E;;AS/qBA;EA8Ic,4DAA4E;ATqiB1F;;ASnrBA;;EAiJU,6BAA6B;EAC7B,qBV3MmB;EU4MnB,gBAAgB;EAChB,cV7MmB;ACovB7B;;AS3rBA;EAsJQ,6BAA6B;EAC7B,mBVnMuB;EUoMvB,YVpMuB;AC6uB/B;;ASjsBA;EA6JU,uBVzMqB;EU0MrB,cVvNmB;AC+vB7B;;AStsBA;EAqKc,gEAA8D;ATqiB5E;;AS1sBA;;EAwKU,6BAA6B;EAC7B,mBVrNqB;EUsNrB,gBAAgB;EAChB,YVvNqB;AC8vB/B;;ASltBA;EAoFM,4BVlIwB;EUmIxB,yBAAyB;EACzB,yBCjEe;AVmsBrB;;ASxtBA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,yBCtEa;AVysBrB;;AS9tBA;EA8FQ,yBAAyB;EACzB,yBC1Ea;AV8sBrB;;ASnuBA;EAiGU,mDV/IoB;ACqxB9B;;ASvuBA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,yBCjFa;AVwtBrB;;AS7uBA;;EAyGQ,4BVvJsB;EUwJtB,yBAAyB;EACzB,gBAAgB;ATyoBxB;;ASpvBA;EA6GQ,oCCxFa;EDyFb,iBV5JsB;ACuyB9B;;ASzvBA;EAiHU,oCC/DuB;AV2sBjC;;AS7vBA;;EAoHU,oCC/FW;EDgGX,yBAAyB;EACzB,gBAAgB;EAChB,iBVrKoB;ACmzB9B;;ASrwBA;EA0HU,sFAA4E;AT+oBtF;;ASzwBA;EA4HQ,6BAA6B;EAC7B,wBV3KsB;EU4KtB,iBV5KsB;AC6zB9B;;AS/wBA;EAmIU,4BVjLoB;EUkLpB,wBVlLoB;EUmLpB,yBChHW;AVgwBrB;;ASrxBA;EAwIY,sEAA8D;ATipB1E;;ASzxBA;EA8Ic,sFAA4E;AT+oB1F;;AS7xBA;;EAiJU,6BAA6B;EAC7B,wBVhMoB;EUiMpB,gBAAgB;EAChB,iBVlMoB;ACm1B9B;;ASryBA;EAsJQ,6BAA6B;EAC7B,gCClIa;EDmIb,yBCnIa;AVsxBrB;;AS3yBA;EA6JU,oCCxIW;EDyIX,iBV5MoB;AC81B9B;;AShzBA;EAqKc,sEAA8D;AT+oB5E;;ASpzBA;;EAwKU,6BAA6B;EAC7B,gCCpJW;EDqJX,gBAAgB;EAChB,yBCtJW;AVuyBrB;;AS5zBA;EAoFM,yBVzIwB;EU0IxB,yBAAyB;EACzB,WC/DU;AV2yBhB;;ASl0BA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVizBhB;;ASx0BA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVszBhB;;AS70BA;EAiGU,gDVtJoB;ACs4B9B;;ASj1BA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVg0BhB;;ASv1BA;;EAyGQ,yBV9JsB;EU+JtB,yBAAyB;EACzB,gBAAgB;ATmvBxB;;AS91BA;EA6GQ,sBCtFQ;EDuFR,cVnKsB;ACw5B9B;;ASn2BA;EAiHU,yBC/DuB;AVqzBjC;;ASv2BA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV5KoB;ACo6B9B;;AS/2BA;EA0HU,0DAA4E;ATyvBtF;;ASn3BA;EA4HQ,6BAA6B;EAC7B,qBVlLsB;EUmLtB,cVnLsB;AC86B9B;;ASz3BA;EAmIU,yBVxLoB;EUyLpB,qBVzLoB;EU0LpB,WC9GM;AVw2BhB;;AS/3BA;EAwIY,gEAA8D;AT2vB1E;;ASn4BA;EA8Ic,0DAA4E;ATyvB1F;;ASv4BA;;EAiJU,6BAA6B;EAC7B,qBVvMoB;EUwMpB,gBAAgB;EAChB,cVzMoB;ACo8B9B;;AS/4BA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AV83BhB;;ASr5BA;EA6JU,sBCtIM;EDuIN,cVnNoB;AC+8B9B;;AS15BA;EAqKc,gEAA8D;ATyvB5E;;AS95BA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AV+4BhB;;ASt6BA;EAoFM,yBV3H4B;EU4H5B,yBAAyB;EACzB,WC/DU;AVq5BhB;;AS56BA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AV25BhB;;ASl7BA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVg6BhB;;ASv7BA;EAiGU,iDVxIwB;ACk+BlC;;AS37BA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AV06BhB;;ASj8BA;;EAyGQ,yBVhJ0B;EUiJ1B,yBAAyB;EACzB,gBAAgB;AT61BxB;;ASx8BA;EA6GQ,sBCtFQ;EDuFR,cVrJ0B;ACo/BlC;;AS78BA;EAiHU,yBC/DuB;AV+5BjC;;ASj9BA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV9JwB;ACggClC;;ASz9BA;EA0HU,0DAA4E;ATm2BtF;;AS79BA;EA4HQ,6BAA6B;EAC7B,qBVpK0B;EUqK1B,cVrK0B;AC0gClC;;ASn+BA;EAmIU,yBV1KwB;EU2KxB,qBV3KwB;EU4KxB,WC9GM;AVk9BhB;;ASz+BA;EAwIY,gEAA8D;ATq2B1E;;AS7+BA;EA8Ic,0DAA4E;ATm2B1F;;ASj/BA;;EAiJU,6BAA6B;EAC7B,qBVzLwB;EU0LxB,gBAAgB;EAChB,cV3LwB;ACgiClC;;ASz/BA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AVw+BhB;;AS//BA;EA6JU,sBCtIM;EDuIN,cVrMwB;AC2iClC;;ASpgCA;EAqKc,gEAA8D;ATm2B5E;;ASxgCA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AVy/BhB;;AShhCA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AV8+BrE;;ASrhCA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AVo/BrE;;AS3hCA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AV0/BrE;;ASjiCA;EAoFM,yBVzH4B;EU0H5B,yBAAyB;EACzB,WC/DU;AVghChB;;ASviCA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVshChB;;AS7iCA;EA8FQ,yBAAyB;EACzB,WCxEQ;AV2hChB;;ASljCA;EAiGU,iDVtIwB;AC2lClC;;AStjCA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVqiChB;;AS5jCA;;EAyGQ,yBV9I0B;EU+I1B,yBAAyB;EACzB,gBAAgB;ATw9BxB;;ASnkCA;EA6GQ,sBCtFQ;EDuFR,cVnJ0B;AC6mClC;;ASxkCA;EAiHU,yBC/DuB;AV0hCjC;;AS5kCA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV5JwB;ACynClC;;ASplCA;EA0HU,0DAA4E;AT89BtF;;ASxlCA;EA4HQ,6BAA6B;EAC7B,qBVlK0B;EUmK1B,cVnK0B;ACmoClC;;AS9lCA;EAmIU,yBVxKwB;EUyKxB,qBVzKwB;EU0KxB,WC9GM;AV6kChB;;ASpmCA;EAwIY,gEAA8D;ATg+B1E;;ASxmCA;EA8Ic,0DAA4E;AT89B1F;;AS5mCA;;EAiJU,6BAA6B;EAC7B,qBVvLwB;EUwLxB,gBAAgB;EAChB,cVzLwB;ACypClC;;ASpnCA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AVmmChB;;AS1nCA;EA6JU,sBCtIM;EDuIN,cVnMwB;ACoqClC;;AS/nCA;EAqKc,gEAA8D;AT89B5E;;ASnoCA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AVonChB;;AS3oCA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AVymCrE;;AShpCA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AV+mCrE;;AStpCA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVqnCrE;;AS5pCA;EAoFM,yBV1H4B;EU2H5B,yBAAyB;EACzB,WC/DU;AV2oChB;;ASlqCA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVipChB;;ASxqCA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVspChB;;AS7qCA;EAiGU,kDVvIwB;ACutClC;;ASjrCA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVgqChB;;ASvrCA;;EAyGQ,yBV/I0B;EUgJ1B,yBAAyB;EACzB,gBAAgB;ATmlCxB;;AS9rCA;EA6GQ,sBCtFQ;EDuFR,cVpJ0B;ACyuClC;;ASnsCA;EAiHU,yBC/DuB;AVqpCjC;;ASvsCA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV7JwB;ACqvClC;;AS/sCA;EA0HU,0DAA4E;ATylCtF;;ASntCA;EA4HQ,6BAA6B;EAC7B,qBVnK0B;EUoK1B,cVpK0B;AC+vClC;;ASztCA;EAmIU,yBVzKwB;EU0KxB,qBV1KwB;EU2KxB,WC9GM;AVwsChB;;AS/tCA;EAwIY,gEAA8D;AT2lC1E;;ASnuCA;EA8Ic,0DAA4E;ATylC1F;;ASvuCA;;EAiJU,6BAA6B;EAC7B,qBVxLwB;EUyLxB,gBAAgB;EAChB,cV1LwB;ACqxClC;;AS/uCA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AV8tChB;;ASrvCA;EA6JU,sBCtIM;EDuIN,cVpMwB;ACgyClC;;AS1vCA;EAqKc,gEAA8D;ATylC5E;;AS9vCA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AV+uChB;;AStwCA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AVouCrE;;AS3wCA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AV0uCrE;;ASjxCA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVgvCrE;;ASvxCA;EAoFM,yBV5H4B;EU6H5B,yBAAyB;EACzB,WC/DU;AVswChB;;AS7xCA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AV4wChB;;ASnyCA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVixChB;;ASxyCA;EAiGU,kDVzIwB;ACo1ClC;;AS5yCA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AV2xChB;;ASlzCA;;EAyGQ,yBVjJ0B;EUkJ1B,yBAAyB;EACzB,gBAAgB;AT8sCxB;;ASzzCA;EA6GQ,sBCtFQ;EDuFR,cVtJ0B;ACs2ClC;;AS9zCA;EAiHU,yBC/DuB;AVgxCjC;;ASl0CA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV/JwB;ACk3ClC;;AS10CA;EA0HU,0DAA4E;ATotCtF;;AS90CA;EA4HQ,6BAA6B;EAC7B,qBVrK0B;EUsK1B,cVtK0B;AC43ClC;;ASp1CA;EAmIU,yBV3KwB;EU4KxB,qBV5KwB;EU6KxB,WC9GM;AVm0ChB;;AS11CA;EAwIY,gEAA8D;ATstC1E;;AS91CA;EA8Ic,0DAA4E;ATotC1F;;ASl2CA;;EAiJU,6BAA6B;EAC7B,qBV1LwB;EU2LxB,gBAAgB;EAChB,cV5LwB;ACk5ClC;;AS12CA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AVy1ChB;;ASh3CA;EA6JU,sBCtIM;EDuIN,cVtMwB;AC65ClC;;ASr3CA;EAqKc,gEAA8D;ATotC5E;;ASz3CA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AV02ChB;;ASj4CA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AV+1CrE;;ASt4CA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AVq2CrE;;AS54CA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AV22CrE;;ASl5CA;EAoFM,yBV7H4B;EU8H5B,yBAAyB;EACzB,yBCjEe;AVm4CrB;;ASx5CA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,yBCtEa;AVy4CrB;;AS95CA;EA8FQ,yBAAyB;EACzB,yBC1Ea;AV84CrB;;ASn6CA;EAiGU,mDV1IwB;ACg9ClC;;ASv6CA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,yBCjFa;AVw5CrB;;AS76CA;;EAyGQ,yBVlJ0B;EUmJ1B,yBAAyB;EACzB,gBAAgB;ATy0CxB;;ASp7CA;EA6GQ,oCCxFa;EDyFb,cVvJ0B;ACk+ClC;;ASz7CA;EAiHU,oCC/DuB;AV24CjC;;AS77CA;;EAoHU,oCC/FW;EDgGX,yBAAyB;EACzB,gBAAgB;EAChB,cVhKwB;AC8+ClC;;ASr8CA;EA0HU,sFAA4E;AT+0CtF;;ASz8CA;EA4HQ,6BAA6B;EAC7B,qBVtK0B;EUuK1B,cVvK0B;ACw/ClC;;AS/8CA;EAmIU,yBV5KwB;EU6KxB,qBV7KwB;EU8KxB,yBChHW;AVg8CrB;;ASr9CA;EAwIY,gEAA8D;ATi1C1E;;ASz9CA;EA8Ic,sFAA4E;AT+0C1F;;AS79CA;;EAiJU,6BAA6B;EAC7B,qBV3LwB;EU4LxB,gBAAgB;EAChB,cV7LwB;AC8gDlC;;ASr+CA;EAsJQ,6BAA6B;EAC7B,gCClIa;EDmIb,yBCnIa;AVs9CrB;;AS3+CA;EA6JU,oCCxIW;EDyIX,cVvMwB;ACyhDlC;;ASh/CA;EAqKc,gEAA8D;AT+0C5E;;ASp/CA;;EAwKU,6BAA6B;EAC7B,gCCpJW;EDqJX,gBAAgB;EAChB,yBCtJW;AVu+CrB;;AS5/CA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AV09CrE;;ASjgDA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AVg+CrE;;ASvgDA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVs+CrE;;AS7gDA;EAoFM,yBVvH2B;EUwH3B,yBAAyB;EACzB,WC/DU;AV4/ChB;;ASnhDA;EAyFQ,yBCvCyB;EDwCzB,yBAAyB;EACzB,WCpEQ;AVkgDhB;;ASzhDA;EA8FQ,yBAAyB;EACzB,WCxEQ;AVugDhB;;AS9hDA;EAiGU,kDVpIuB;ACqkDjC;;ASliDA;EAoGQ,yBClDyB;EDmDzB,yBAAyB;EACzB,WC/EQ;AVihDhB;;ASxiDA;;EAyGQ,yBV5IyB;EU6IzB,yBAAyB;EACzB,gBAAgB;ATo8CxB;;AS/iDA;EA6GQ,sBCtFQ;EDuFR,cVjJyB;ACulDjC;;ASpjDA;EAiHU,yBC/DuB;AVsgDjC;;ASxjDA;;EAoHU,sBC7FM;ED8FN,yBAAyB;EACzB,gBAAgB;EAChB,cV1JuB;ACmmDjC;;AShkDA;EA0HU,0DAA4E;AT08CtF;;ASpkDA;EA4HQ,6BAA6B;EAC7B,qBVhKyB;EUiKzB,cVjKyB;AC6mDjC;;AS1kDA;EAmIU,yBVtKuB;EUuKvB,qBVvKuB;EUwKvB,WC9GM;AVyjDhB;;AShlDA;EAwIY,gEAA8D;AT48C1E;;ASplDA;EA8Ic,0DAA4E;AT08C1F;;ASxlDA;;EAiJU,6BAA6B;EAC7B,qBVrLuB;EUsLvB,gBAAgB;EAChB,cVvLuB;ACmoDjC;;AShmDA;EAsJQ,6BAA6B;EAC7B,kBChIQ;EDiIR,WCjIQ;AV+kDhB;;AStmDA;EA6JU,sBCtIM;EDuIN,cVjMuB;AC8oDjC;;AS3mDA;EAqKc,gEAA8D;AT08C5E;;AS/mDA;;EAwKU,6BAA6B;EAC7B,kBClJM;EDmJN,gBAAgB;EAChB,WCpJM;AVgmDhB;;ASvnDA;EAiLU,yBCnJsC;EDoJtC,cC3I2D;AVqlDrE;;AS5nDA;EAqLY,yBCnIqB;EDoIrB,yBAAyB;EACzB,cChJyD;AV2lDrE;;ASloDA;EA0LY,yBCxIqB;EDyIrB,yBAAyB;EACzB,cCrJyD;AVimDrE;;ASxoDA;EARE,kBVbc;ACiqDhB;;AStpDE;EACE,kBVkBc;ACuoDlB;;AShpDA;EANE,eVhBW;AC0qDb;;ASppDA;EAJE,kBVnBc;AC+qDhB;;ASxpDA;EAFE,iBVtBa;ACorDf;;AS5pDA;;EAyMI,uBVrP2B;EUsP3B,qBV3P0B;EU4P1B,gBAhOyB;EAiOzB,YAhOyB;ATwrD7B;;ASpqDA;EA8MI,aAAa;EACb,WAAW;AT09Cf;;ASzqDA;EAiNI,6BAA6B;EAC7B,oBAAoB;AT49CxB;;AS9qDA;ERlDE,kBAAkB;EAKhB,6BAAmC;EACnC,4BAAkC;EQkQhC,6BAA6B;AT+9CnC;;ASrrDA;EAwNI,4BVtQ0B;EUuQ1B,qBV1Q0B;EU2Q1B,cV7Q0B;EU8Q1B,gBAAgB;EAChB,oBAAoB;ATi+CxB;;AS7rDA;EA8NI,qBVlNmB;EUmNnB,gCAA0D;EAC1D,iCAA2D;ATm+C/D;;ASj+CA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;ATo+C7B;;ASx+CA;EAMI,qBAAqB;ATs+CzB;;AS5+CA;ERjII,oBQyIwC;ATw+C5C;;ASh/CA;EAUI,sBAAsB;AT0+C1B;;ASp/CA;EAYI,mBAAmB;AT4+CvB;;ASx/CA;EA1OE,kBVbc;ACmvDhB;;ASxuDE;EACE,kBVkBc;ACytDlB;;AShgDA;EAtOE,kBVnBc;AC6vDhB;;ASpgDA;EApOE,iBVtBa;ACkwDf;;ASxgDA;EA0BQ,4BAA4B;EAC5B,yBAAyB;ATk/CjC;;AS7gDA;EA6BQ,6BAA6B;EAC7B,0BAA0B;ER/J9B,kBQgKwC;ATo/C5C;;ASnhDA;ERjII,eQkKqC;ATs/CzC;;ASvhDA;EAoCQ,UAAU;ATu/ClB;;AS3hDA;EA0CQ,UAAU;ATq/ClB;;AS/hDA;EA4CU,UAAU;ATu/CpB;;ASniDA;EA8CQ,YAAY;EACZ,cAAc;ATy/CtB;;ASxiDA;EAiDI,uBAAuB;AT2/C3B;;AS5iDA;EAoDQ,oBAAoB;EACpB,qBAAqB;AT4/C7B;;ASjjDA;EAuDI,yBAAyB;AT8/C7B;;ASrjDA;EA0DQ,oBAAoB;EACpB,qBAAqB;AT+/C7B;;AWl1DA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,WAAW;AXq1Db;;AWz1DA;EAMI,0BAA0B;EAC1B,kBZyCM;EYxCN,mBZwCM;EYvCN,WAAW;AXu1Df;;ACxvDE;EUxGF;IAWI,gBAAuC;EX01DzC;AACF;;ACpvDI;EUlHJ;IAcM,iBAAqE;EX61DzE;AACF;;AC3uDI;EUjIJ;IAiBM,iBAAiE;EXg2DrE;AACF;;AC3vDI;EUvHJ;IAoBM,iBAAqE;EXm2DzE;AACF;;AClvDI;EUtIJ;IAuBM,iBAAiE;EXs2DrE;AACF;;AY92DA;EAII,kBAAkB;AZ82DtB;;AYl3DA;;;;;;;EAcM,kBAAkB;AZ82DxB;;AY53DA;;;;;;EAqBI,cbpC0B;EaqC1B,gBbAiB;EaCjB,kBAxC+B;AZw5DnC;;AYv4DA;EAyBI,cAAc;EACd,oBAAoB;AZk3DxB;;AY54DA;EA4BM,eAAe;AZo3DrB;;AYh5DA;EA8BI,iBAAiB;EACjB,uBAAuB;AZs3D3B;;AYr5DA;EAiCM,oBAAoB;AZw3D1B;;AYz5DA;EAmCI,gBAAgB;EAChB,uBAAuB;AZ03D3B;;AY95DA;EAsCM,oBAAoB;AZ43D1B;;AYl6DA;EAwCI,iBAAiB;EACjB,oBAAoB;AZ83DxB;;AYv6DA;EA2CI,kBAAkB;EAClB,uBAAuB;AZg4D3B;;AY56DA;EA8CI,cAAc;EACd,kBAAkB;AZk4DtB;;AYj7DA;EAiDI,4BbzD0B;EE+I1B,8BFlJ0B;Ea8D1B,qBAhEqC;AZo8DzC;;AYv7DA;EAqDI,4BAA4B;EXkF5B,gBWjFmC;EACnC,eAAe;AZs4DnB;;AY77DA;EAyDM,wBAAwB;AZw4D9B;;AYj8DA;EA2DQ,4BAA4B;AZ04DpC;;AYr8DA;EA6DQ,4BAA4B;AZ44DpC;;AYz8DA;EA+DQ,4BAA4B;AZ84DpC;;AY78DA;EAiEQ,4BAA4B;AZg5DpC;;AYj9DA;EAmEI,wBAAwB;EXoExB,gBWnEmC;EACnC,eAAe;AZk5DnB;;AYv9DA;EAuEM,uBAAuB;EACvB,iBAAiB;AZo5DvB;;AY59DA;EA0EQ,uBAAuB;AZs5D/B;;AYh+DA;EXuII,gBW3DmC;AZw5DvC;;AYp+DA;EA8EI,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;AZ05DtB;;AY1+DA;EAkFM,eAAe;AZ45DrB;;AY9+DA;EAoFM,kBAAkB;AZ85DxB;;AYl/DA;EAsFM,qBAAqB;AZg6D3B;;AYt/DA;EAwFM,kBAAkB;AZk6DxB;;AY1/DA;EXyCE,iCAAiC;EWkD/B,gBAAgB;EAChB,qBAvG8B;EAwG9B,gBAAgB;EAChB,iBAAiB;AZo6DrB;;AYlgEA;;EAiGI,cAAc;AZs6DlB;;AYvgEA;EAmGI,WAAW;AZw6Df;;AY3gEA;;EAsGM,yBbjHwB;EakHxB,qBA/GmC;EAgHnC,qBA/GmC;EAgHnC,mBAAmB;AZ06DzB;;AYnhEA;EA2GM,cb1HwB;ACsiE9B;;AYvhEA;EA6GQ,mBAAmB;AZ86D3B;;AY3hEA;;EAiHQ,qBAtHsC;EAuHtC,cbjIsB;ACgjE9B;;AYjiEA;;EAsHQ,qBAzHsC;EA0HtC,cbtIsB;ACsjE9B;;AYviEA;;EA6HY,sBAAsB;AZ+6DlC;;AY5iEA;EAgIM,aAAa;AZg7DnB;;AYhjEA;EAmII,kBblHY;ACmiEhB;;AYpjEA;EAqII,ebrHS;ACwiEb;;AYxjEA;EAuII,kBbxHY;AC6iEhB;;AY5jEA;EAyII,iBb3HW;ACkjEf;;Aa/kEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;EACvB,cAVsB;EAWtB,aAXsB;Ab6lExB;;AavlEA;EAQI,YAbwB;EAcxB,WAdwB;AbimE5B;;Aa5lEA;EAWI,YAfyB;EAgBzB,WAhByB;AbqmE7B;;AajmEA;EAcI,YAjBwB;EAkBxB,WAlBwB;AbymE5B;;AarlEA;EACE,uBAAuB;EACvB,cAAc;EACd,oBAAoB;EACpB,eAAe;EACf,mBA5BsB;EA6BtB,mBAAmB;AbwlErB;;Aa9lEA;EAQI,YAAY;EACZ,cAAc;Ab0lElB;;AanmEA;EAYQ,oBA/BkB;Ab0nE1B;;AavmEA;EAiBQ,mBApCkB;Ab8nE1B;;AatlEA;EACE,aAAa;AbylEf;;AcloEA;EACE,cAAc;EACd,kBAAkB;AdqoEpB;;AcvoEA;EAII,cAAc;EACd,YAAY;EACZ,WAAW;AduoEf;;Ac7oEA;EAQM,qBf2DiB;AC8kEvB;;AcjpEA;EAUI,WAAW;Ad2oEf;;AcrpEA;;;;;;;;;;;;;;;;;EA+BM,YAAY;EACZ,WAAW;Ad0oEjB;;Ac1qEA;EAmCI,iBAAiB;Ad2oErB;;Ac9qEA;EAqCI,gBAAgB;Ad6oEpB;;AclrEA;EAuCI,gBAAgB;Ad+oEpB;;ActrEA;EAyCI,qBAAqB;AdipEzB;;Ac1rEA;EA2CI,gBAAgB;AdmpEpB;;Ac9rEA;EA6CI,mBAAmB;AdqpEvB;;AclsEA;EA+CI,gBAAgB;AdupEpB;;ActsEA;EAiDI,qBAAqB;AdypEzB;;Ac1sEA;EAmDI,iBAAiB;Ad2pErB;;Ac9sEA;EAqDI,sBAAsB;Ad6pE1B;;AcltEA;EAuDI,iBAAiB;Ad+pErB;;ActtEA;EAyDI,sBAAsB;AdiqE1B;;Ac1tEA;EA2DI,sBAAsB;AdmqE1B;;Ac9tEA;EA6DI,iBAAiB;AdqqErB;;AcluEA;EA+DI,iBAAiB;AduqErB;;ActuEA;EAmEM,YAAwB;EACxB,WAAuB;AduqE7B;;Ac3uEA;EAmEM,YAAwB;EACxB,WAAuB;Ad4qE7B;;AchvEA;EAmEM,YAAwB;EACxB,WAAuB;AdirE7B;;AcrvEA;EAmEM,YAAwB;EACxB,WAAuB;AdsrE7B;;Ac1vEA;EAmEM,YAAwB;EACxB,WAAuB;Ad2rE7B;;Ac/vEA;EAmEM,YAAwB;EACxB,WAAuB;AdgsE7B;;AcpwEA;EAmEM,aAAwB;EACxB,YAAuB;AdqsE7B;;AelwEA;EAEE,4BhBA4B;EgBC5B,kBhBuDU;EgBtDV,kBAAkB;EAEhB,sCAXoD;Af8wExD;;AezwEA;EAUI,mBAAmB;EACnB,0BAA0B;AfmwE9B;;Ae9wEA;EAaI,mBAAmB;AfqwEvB;;AelxEA;;EAgBI,iBhBZ2B;ACmxE/B;;AevxEA;EAkBI,uBAAuB;AfywE3B;;Ae3xEA;EdyJI,acrI4B;EAC5B,kBAAkB;EAClB,WAAW;Af2wEf;;AejyEA;;;EA0BI,mBAAmB;Af6wEvB;;AevyEA;EAgCM,uBhB5ByB;EgB6BzB,chB1CuB;ACqzE7B;;Ae5yEA;EAgCM,yBhBzCuB;EgB0CvB,YhB7ByB;AC6yE/B;;AejzEA;EAgCM,4BhB9BwB;EgB+BxB,yBLoCe;AVivErB;;AetzEA;EAgCM,yBhBrCwB;EgBsCxB,WLsCU;AVovEhB;;Ae3zEA;EAgCM,yBhBvB4B;EgBwB5B,WLsCU;AVyvEhB;;Aeh0EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AV8uErE;;Aer0EA;EAgCM,yBhBrB4B;EgBsB5B,WLsCU;AVmwEhB;;Ae10EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVwvErE;;Ae/0EA;EAgCM,yBhBtB4B;EgBuB5B,WLsCU;AV6wEhB;;Aep1EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVkwErE;;Aez1EA;EAgCM,yBhBxB4B;EgByB5B,WLsCU;AVuxEhB;;Ae91EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AV4wErE;;Aen2EA;EAgCM,yBhBzB4B;EgB0B5B,yBLoCe;AVmyErB;;Aex2EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVsxErE;;Ae72EA;EAgCM,yBhBnB2B;EgBoB3B,WLsCU;AV2yEhB;;Ael3EA;EAuCU,yBLuCsC;EKtCtC,cL+C2D;AVgyErE;;AgBx3EA;EAEE,qBAAqB;EACrB,wBAAwB;EACxB,YAAY;EACZ,qBjBwDqB;EiBvDrB,cAAc;EACd,YjBoBW;EiBnBX,gBAAgB;EAChB,UAAU;EACV,WAAW;AhB03Eb;;AgBp4EA;EAYI,yBjBX2B;ACu4E/B;;AgBx4EA;EAcI,yBjBjB0B;AC+4E9B;;AgB54EA;EAgBI,yBjBnB0B;ACm5E9B;;AgBh5EA;EAkBI,yBjBrB0B;EiBsB1B,YAAY;AhBk4EhB;;AgBr5EA;EAyBQ,uBjBpBuB;ACo5E/B;;AgBz5EA;EA2BQ,uBjBtBuB;ACw5E/B;;AgB75EA;EA6BQ,uBjBxBuB;AC45E/B;;AgBj6EA;EA+BQ,mEAA2F;AhBs4EnG;;AgBr6EA;EAyBQ,yBjBjCqB;ACi7E7B;;AgBz6EA;EA2BQ,yBjBnCqB;ACq7E7B;;AgB76EA;EA6BQ,yBjBrCqB;ACy7E7B;;AgBj7EA;EA+BQ,qEAA2F;AhBs5EnG;;AgBr7EA;EAyBQ,4BjBtBsB;ACs7E9B;;AgBz7EA;EA2BQ,4BjBxBsB;AC07E9B;;AgB77EA;EA6BQ,4BjB1BsB;AC87E9B;;AgBj8EA;EA+BQ,wEAA2F;AhBs6EnG;;AgBr8EA;EAyBQ,yBjB7BsB;AC68E9B;;AgBz8EA;EA2BQ,yBjB/BsB;ACi9E9B;;AgB78EA;EA6BQ,yBjBjCsB;ACq9E9B;;AgBj9EA;EA+BQ,qEAA2F;AhBs7EnG;;AgBr9EA;EAyBQ,yBjBf0B;AC+8ElC;;AgBz9EA;EA2BQ,yBjBjB0B;ACm9ElC;;AgB79EA;EA6BQ,yBjBnB0B;ACu9ElC;;AgBj+EA;EA+BQ,qEAA2F;AhBs8EnG;;AgBr+EA;EAyBQ,yBjBb0B;AC69ElC;;AgBz+EA;EA2BQ,yBjBf0B;ACi+ElC;;AgB7+EA;EA6BQ,yBjBjB0B;ACq+ElC;;AgBj/EA;EA+BQ,qEAA2F;AhBs9EnG;;AgBr/EA;EAyBQ,yBjBd0B;AC8+ElC;;AgBz/EA;EA2BQ,yBjBhB0B;ACk/ElC;;AgB7/EA;EA6BQ,yBjBlB0B;ACs/ElC;;AgBjgFA;EA+BQ,qEAA2F;AhBs+EnG;;AgBrgFA;EAyBQ,yBjBhB0B;ACggFlC;;AgBzgFA;EA2BQ,yBjBlB0B;ACogFlC;;AgB7gFA;EA6BQ,yBjBpB0B;ACwgFlC;;AgBjhFA;EA+BQ,qEAA2F;AhBs/EnG;;AgBrhFA;EAyBQ,yBjBjB0B;ACihFlC;;AgBzhFA;EA2BQ,yBjBnB0B;ACqhFlC;;AgB7hFA;EA6BQ,yBjBrB0B;ACyhFlC;;AgBjiFA;EA+BQ,qEAA2F;AhBsgFnG;;AgBriFA;EAyBQ,yBjBXyB;AC2hFjC;;AgBziFA;EA2BQ,yBjBbyB;AC+hFjC;;AgB7iFA;EA6BQ,yBjBfyB;ACmiFjC;;AgBjjFA;EA+BQ,qEAA2F;AhBshFnG;;AgBrjFA;EAkCI,gCAtCkC;UAsClC,wBAtCkC;EAuClC,2CAAmC;UAAnC,mCAAmC;EACnC,yCAAiC;UAAjC,iCAAiC;EACjC,yCAAiC;UAAjC,iCAAiC;EACjC,yBjBrC2B;EiBsC3B,qEAA0F;EAC1F,6BAA6B;EAC7B,4BAA4B;EAC5B,0BAA0B;AhBuhF9B;;AgBjkFA;EA4CM,6BAA6B;AhByhFnC;;AgBrkFA;EA8CM,6BAA6B;AhB2hFnC;;AgBzkFA;EAgDM,oBAAoB;AhB6hF1B;;AgB7kFA;EAoDI,ejBxBY;ACqjFhB;;AgBjlFA;EAsDI,ejB5BY;AC2jFhB;;AgBrlFA;EAwDI,cjB/BW;ACgkFf;;AgB/hFA;EACE;IACE,2BAA2B;EhBkiF7B;EgBjiFA;IACE,4BAA4B;EhBmiF9B;AACF;;AgBxiFA;EACE;IACE,2BAA2B;EhBkiF7B;EgBjiFA;IACE,4BAA4B;EhBmiF9B;AACF;;AiB/kFA;EAEE,uBlBhB6B;EkBiB7B,clB1B4B;AC2mF9B;;AiBplFA;;EAMI,yBlBzB0B;EkB0B1B,qBA9B6B;EA+B7B,qBA9B6B;EA+B7B,mBAAmB;AjBmlFvB;;AiB5lFA;;EAeQ,uBlB7BuB;EkB8BvB,mBlB9BuB;EkB+BvB,clB5CqB;AC8nF7B;;AiBnmFA;;EAeQ,yBlB1CqB;EkB2CrB,qBlB3CqB;EkB4CrB,YlB/BuB;ACwnF/B;;AiB1mFA;;EAeQ,4BlB/BsB;EkBgCtB,wBlBhCsB;EkBiCtB,yBPkCa;AV8jFrB;;AiBjnFA;;EAeQ,yBlBtCsB;EkBuCtB,qBlBvCsB;EkBwCtB,WPoCQ;AVmkFhB;;AiBxnFA;;EAeQ,yBlBxB0B;EkByB1B,qBlBzB0B;EkB0B1B,WPoCQ;AV0kFhB;;AiB/nFA;;EAeQ,yBlBtB0B;EkBuB1B,qBlBvB0B;EkBwB1B,WPoCQ;AVilFhB;;AiBtoFA;;EAeQ,yBlBvB0B;EkBwB1B,qBlBxB0B;EkByB1B,WPoCQ;AVwlFhB;;AiB7oFA;;EAeQ,yBlBzB0B;EkB0B1B,qBlB1B0B;EkB2B1B,WPoCQ;AV+lFhB;;AiBppFA;;EAeQ,yBlB1B0B;EkB2B1B,qBlB3B0B;EkB4B1B,yBPkCa;AVwmFrB;;AiB3pFA;;EAeQ,yBlBpByB;EkBqBzB,qBlBrByB;EkBsBzB,WPoCQ;AV6mFhB;;AiBlqFA;;EAoBM,mBAAmB;EACnB,SAAS;AjBmpFf;;AiBxqFA;;EAuBM,yBlBhC4B;EkBiC5B,WP6BU;AVynFhB;;AiB9qFA;;;;EA2BQ,mBAAmB;AjB0pF3B;;AiBrrFA;;EA6BM,sBAAsB;AjB6pF5B;;AiB1rFA;EA+BI,clBtD0B;ACqtF9B;;AiB9rFA;EAiCM,mBAAmB;AjBiqFzB;;AiBlsFA;EAoCM,yBlB7C4B;EkB8C5B,WPgBU;AVkpFhB;;AiBvsFA;;EAwCQ,mBAAmB;AjBoqF3B;;AiB5sFA;;EA2CQ,kBPUQ;EOTR,mBAAmB;AjBsqF3B;;AiBltFA;EA8CI,6BA5DqC;AjBouFzC;;AiBttFA;;EAiDM,qBApEgC;EAqEhC,clBzEwB;ACmvF9B;;AiB5tFA;EAoDI,6BAhEqC;AjB4uFzC;;AiBhuFA;;EAuDM,qBAxEgC;EAyEhC,clB/EwB;AC6vF9B;;AiBtuFA;EA0DI,6BAvEqC;AjBuvFzC;;AiB1uFA;;EA+DU,sBAAsB;AjBgrFhC;;AiB/uFA;;EAoEM,iBAAiB;AjBgrFvB;;AiBpvFA;;EAyEU,wBAAwB;AjBgrFlC;;AiBzvFA;EA2EI,WAAW;AjBkrFf;;AiB7vFA;EAgFU,yBlB/FoB;ACgxF9B;;AiBjwFA;EAqFY,yBlBpGkB;ACoxF9B;;AiBrwFA;EAuFc,4BlBvGgB;ACyxF9B;;AiBzwFA;;EA2FM,qBAAqB;AjBmrF3B;;AiB9wFA;EAgGU,yBlB/GoB;ACiyF9B;;AiBhrFA;EhBjEE,iCAAiC;EgBoEjC,cAAc;EACd,kBAAkB;EAClB,eAAe;AjBkrFjB;;AkB7yFA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AlBgzF7B;;AkBpzFA;EAMI,qBAAqB;AlBkzFzB;;AkBxzFA;EjBmJI,oBiB3IwC;AlBozF5C;;AkB5zFA;EAUI,sBAAsB;AlBszF1B;;AkBh0FA;EAYI,mBAAmB;AlBwzFvB;;AkBp0FA;EAgBM,enBYO;AC4yFb;;AkBx0FA;EAmBM,kBnBQU;ACizFhB;;AkB50FA;EAqBI,uBAAuB;AlB2zF3B;;AkBh1FA;EAuBM,qBAAqB;EACrB,oBAAoB;AlB6zF1B;;AkBr1FA;EA0BI,yBAAyB;AlB+zF7B;;AkBz1FA;EA6BQ,mBAAmB;AlBg0F3B;;AkB71FA;EA+BQ,eAAe;AlBk0FvB;;AkBj2FA;EjBmJI,eiBjHmC;AlBm0FvC;;AkBr2FA;EjBmJI,ciB/GqC;EAE/B,yBAAyB;EACzB,4BAA4B;AlBo0FtC;;AkB32FA;EA6CU,0BAA0B;EAC1B,6BAA6B;AlBk0FvC;;AkB7zFA;EACE,mBAAmB;EACnB,4BnBjD4B;EmBkD5B,kBnBMU;EmBLV,cnBzD4B;EmB0D5B,oBAAoB;EACpB,kBnB5Bc;EmB6Bd,WAAW;EACX,uBAAuB;EACvB,gBAAgB;EAChB,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;AlBg0FrB;;AkB50FA;EjBgGI,oBiBlFuC;EjBkFvC,uBiBjFyC;AlBk0F7C;;AkBj1FA;EAqBM,uBnBlEyB;EmBmEzB,cnBhFuB;ACg5F7B;;AkBt1FA;EAqBM,yBnB/EuB;EmBgFvB,YnBnEyB;ACw4F/B;;AkB31FA;EAqBM,4BnBpEwB;EmBqExB,yBRFe;AV40FrB;;AkBh2FA;EAqBM,yBnB3EwB;EmB4ExB,WRAU;AV+0FhB;;AkBr2FA;EAqBM,yBnB7D4B;EmB8D5B,WRAU;AVo1FhB;;AkB12FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVy0FrE;;AkB/2FA;EAqBM,yBnB3D4B;EmB4D5B,WRAU;AV81FhB;;AkBp3FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVm1FrE;;AkBz3FA;EAqBM,yBnB5D4B;EmB6D5B,WRAU;AVw2FhB;;AkB93FA;EA4BU,yBRCsC;EQAtC,cRS2D;AV61FrE;;AkBn4FA;EAqBM,yBnB9D4B;EmB+D5B,WRAU;AVk3FhB;;AkBx4FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVu2FrE;;AkB74FA;EAqBM,yBnB/D4B;EmBgE5B,yBRFe;AV83FrB;;AkBl5FA;EA4BU,yBRCsC;EQAtC,cRS2D;AVi3FrE;;AkBv5FA;EAqBM,yBnBzD2B;EmB0D3B,WRAU;AVs4FhB;;AkB55FA;EA4BU,yBRCsC;EQAtC,cRS2D;AV23FrE;;AkBj6FA;EAgCI,kBnBtDY;AC27FhB;;AkBr6FA;EAkCI,enBzDS;ACg8Fb;;AkBz6FA;EAoCI,kBnB5DY;ACq8FhB;;AkB76FA;EjBgGI,qBiBzD0C;EjByD1C,sBiBxD0C;AlB04F9C;;AkBl7FA;EjBgGI,qBiBtD0C;EjBsD1C,sBiBrD0C;AlB44F9C;;AkBv7FA;EjBgGI,qBiBnD0C;EjBmD1C,sBiBlD0C;AlB84F9C;;AkB57FA;EjBgGI,gBiBvJmB;EAyGnB,UAAU;EACV,kBAAkB;EAClB,UAAU;AlB+4Fd;;AkBn8FA;EAuDM,8BAA8B;EAC9B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;AlBg5FrC;;AkB98FA;EAgEM,WAAW;EACX,UAAU;AlBk5FhB;;AkBn9FA;EAmEM,WAAW;EACX,UAAU;AlBo5FhB;;AkBx9FA;EAuEM,yBAAmD;AlBq5FzD;;AkB59FA;EAyEM,yBAAoD;AlBu5F1D;;AkBh+FA;EA2EI,qBnBhEmB;ACy9FvB;;AkBv5FA;EAEI,0BAA0B;AlBy5F9B;;AmB/gGA;;EAGE,sBAAsB;AnBihGxB;;AmBphGA;;;;EAMI,oBAAoB;AnBqhGxB;;AmB3hGA;;EAQI,iBApBmB;AnB4iGvB;;AmBhiGA;;EAUI,iBArBmB;AnBgjGvB;;AmBriGA;;EAYI,sBAAsB;AnB8hG1B;;AmB5hGA;EACE,cpB9B4B;EoBiC5B,epBLW;EoBMX,gBpBGmB;EoBFnB,kBAnCuB;AnBgkGzB;;AmBniGA;EAQI,cApCwB;EAqCxB,oBApCyB;AnBmkG7B;;AmBxiGA;EAWI,oBA3B+B;AnB4jGnC;;AmB5iGA;EAgBM,epBnBO;ACmjGb;;AmBhjGA;EAgBM,iBpBlBS;ACsjGf;;AmBpjGA;EAgBM,epBjBO;ACyjGb;;AmBxjGA;EAgBM,iBpBhBS;AC4jGf;;AmB5jGA;EAgBM,kBpBfU;AC+jGhB;;AmBhkGA;EAgBM,epBdO;ACkkGb;;AmBpkGA;EAgBM,kBpBbU;ACqkGhB;;AmBtjGA;EACE,cpB/C4B;EoBkD5B,kBpBrBc;EoBsBd,gBpBjBiB;EoBkBjB,iBA3CyB;AnBkmG3B;;AmB7jGA;EAQI,cpBvD0B;EoBwD1B,gBpBnBiB;AC4kGrB;;AmBlkGA;EAWI,oBA7C+B;AnBwmGnC;;AmBtkGA;EAgBM,epBrCO;AC+lGb;;AmB1kGA;EAgBM,iBpBpCS;ACkmGf;;AmB9kGA;EAgBM,epBnCO;ACqmGb;;AmBllGA;EAgBM,iBpBlCS;ACwmGf;;AmBtlGA;EAgBM,kBpBjCU;AC2mGhB;;AmB1lGA;EAgBM,epBhCO;AC8mGb;;AmB9lGA;EAgBM,kBpB/BU;ACinGhB;;AoB/oGA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,kBAAkB;EAClB,yBAAyB;ApBkpG3B;;AoB7oGA;EACE,mBAAmB;EACnB,4BrBP4B;EqBQ5B,qBrBkDqB;EqBjDrB,oBAAoB;EACpB,kBrBac;EqBZd,WAAW;EACX,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;ApBgpGrB;;AqB9qGA,eAAA;AC0DA;EAxBE,uBvBnB6B;EuBoB7B,qBvBzB4B;EuB0B5B,kBvBiCU;EuBhCV,cvB/B4B;ACgrG9B;;ACnnGI;EqB5BA,4BvBjC0B;ACorG9B;;ACvnGI;EqB5BA,4BvBjC0B;ACwrG9B;;AC3nGI;EqB5BA,4BvBjC0B;AC4rG9B;;AC/nGI;EqB5BA,4BvBjC0B;ACgsG9B;;AsB9pGE;EAEE,qBvBjC0B;ACisG9B;;AsB/pGE;EAIE,qBvBzB8B;EuB0B9B,iDvB1B8B;ACyrGlC;;AsB9pGE;;;;;EAEE,4BvBtC0B;EuBuC1B,wBvBvC0B;EuBwC1B,gBAAgB;EAChB,cvB9C0B;ACktG9B;;ACvpGI;;;;;EqBXE,+BvBhDwB;AC0tG9B;;AC/pGI;;;;;EqBXE,+BvBhDwB;ACkuG9B;;ACvqGI;;;;;EqBXE,+BvBhDwB;AC0uG9B;;AC/qGI;;;;;EqBXE,+BvBhDwB;ACkvG9B;;AuBpvGA;EAEE,2DxBN2B;EwBO3B,eAAe;EACf,WAAW;AvBsvGb;;AuBrvGE;EACE,gBAAgB;AvBwvGpB;;AuBpvGI;EACE,mBxBFyB;ACyvG/B;;AuBxvGK;EAMG,mDxBPuB;AC6vG/B;;AuB5vGI;EACE,qBxBfuB;AC8wG7B;;AuBhwGK;EAMG,gDxBpBqB;ACkxG7B;;AuBpwGI;EACE,wBxBJwB;AC2wG9B;;AuBxwGK;EAMG,mDxBTsB;AC+wG9B;;AuB5wGI;EACE,qBxBXwB;AC0xG9B;;AuBhxGK;EAMG,gDxBhBsB;AC8xG9B;;AuBpxGI;EACE,qBxBG4B;ACoxGlC;;AuBxxGK;EAMG,iDxBF0B;ACwxGlC;;AuB5xGI;EACE,qBxBK4B;AC0xGlC;;AuBhyGK;EAMG,iDxBA0B;AC8xGlC;;AuBpyGI;EACE,qBxBI4B;ACmyGlC;;AuBxyGK;EAMG,kDxBD0B;ACuyGlC;;AuB5yGI;EACE,qBxBE4B;AC6yGlC;;AuBhzGK;EAMG,kDxBH0B;ACizGlC;;AuBpzGI;EACE,qBxBC4B;ACszGlC;;AuBxzGK;EAMG,mDxBJ0B;AC0zGlC;;AuB5zGI;EACE,qBxBO2B;ACwzGjC;;AuBh0GK;EAMG,kDxBEyB;AC4zGjC;;AuB5zGE;EzBmBA,kBCyBgB;EDxBhB,kBCNc;ACmzGhB;;AuB/zGE;EzBoBA,kBCVc;ACyzGhB;;AuBj0GE;EzBoBA,iBCba;AC8zGf;;AuBl0GE;EACE,cAAc;EACd,WAAW;AvBq0Gf;;AuBp0GE;EACE,eAAe;EACf,WAAW;AvBu0Gf;;AuBr0GA;EAGI,qBxB8BmB;EwB7BnB,gDAA4D;EAC5D,iDAA6D;AvBs0GjE;;AuB30GA;EAOI,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AvBw0GpB;;AuBt0GA;EAEE,cAAc;EACd,eAAe;EACf,eAAe;EACf,2BzB7CkE;EyB8ClE,gBAAgB;AvBw0GlB;;AuB90GA;EAQI,gBA1DsB;EA2DtB,eA1DqB;AvBo4GzB;;AuBn1GA;EAWI,eAAe;AvB40GnB;;AuBv1GA;EAcI,YAAY;AvB60GhB;;AwB94GA;EACE,eAAe;EACf,qBAAqB;EACrB,iBAAiB;EACjB,kBAAkB;AxBi5GpB;;AwBh5GE;EACE,eAAe;AxBm5GnB;;AwBl5GE;EACE,czBF0B;ACu5G9B;;AwBp5GE;;;;;EAGE,czBJ0B;EyBK1B,mBAAmB;AxBy5GvB;;AwBp5GA;EvB0II,kBuBvIqC;AxBq5GzC;;AyBx6GA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,mBAAmB;AzB26GrB;;AyB/6GA;EAMI,a3BDkB;AE86GtB;;AyBn7GA;EAUM,qB1BU4B;EE8I9B,cwBvJ+B;EAC7B,UAAU;AzB66GhB;;AyBz7GA;EAeM,qB1BsDiB;EEqFnB,iBwB1IsC;AzB86G1C;;AyB97GA;EAmBI,eAAe;EACf,cAAc;EACd,cAAc;EACd,eAAe;EACf,aAAa;AzB+6GjB;;AyBt8GA;EAyBM,aAAa;AzBi7GnB;;AyB18GA;;EA4BM,wB1BjBwB;ACo8G9B;;AyB/8GA;ExB0JI,oBwB5HwC;AzBq7G5C;;AyBn9GA;EAgCM,YAAY;EACZ,UAAU;AzBu7GhB;;AyBx9GA;EAmCQ,kBAAkB;AzBy7G1B;;AyB59GA;EAuCM,qB1BnCwB;AC49G9B;;AyBh+GA;EA6CQ,mB1BhCuB;ACu9G/B;;AyBp+GA;EA+CQ,mB1BlCuB;AC29G/B;;AyBx+GA;EAkDU,qBfyDuB;AVi4GjC;;AyB5+GA;EAuDU,mD1B1CqB;ACm+G/B;;AyBh/GA;EA6CQ,qB1B7CqB;ACo/G7B;;AyBp/GA;EA+CQ,qB1B/CqB;ACw/G7B;;AyBx/GA;EAkDU,mBfyDuB;AVi5GjC;;AyB5/GA;EAuDU,gD1BvDmB;ACggH7B;;AyBhgHA;EA6CQ,wB1BlCsB;ACy/G9B;;AyBpgHA;EA+CQ,wB1BpCsB;AC6/G9B;;AyBxgHA;EAkDU,qBfyDuB;AVi6GjC;;AyB5gHA;EAuDU,mD1B5CoB;ACqgH9B;;AyBhhHA;EA6CQ,qB1BzCsB;ACghH9B;;AyBphHA;EA+CQ,qB1B3CsB;ACohH9B;;AyBxhHA;EAkDU,qBfyDuB;AVi7GjC;;AyB5hHA;EAuDU,gD1BnDoB;AC4hH9B;;AyBhiHA;EA6CQ,qB1B3B0B;ACkhHlC;;AyBpiHA;EA+CQ,qB1B7B0B;ACshHlC;;AyBxiHA;EAkDU,qBfyDuB;AVi8GjC;;AyB5iHA;EAuDU,iD1BrCwB;AC8hHlC;;AyBhjHA;EA6CQ,qB1BzB0B;ACgiHlC;;AyBpjHA;EA+CQ,qB1B3B0B;ACoiHlC;;AyBxjHA;EAkDU,qBfyDuB;AVi9GjC;;AyB5jHA;EAuDU,iD1BnCwB;AC4iHlC;;AyBhkHA;EA6CQ,qB1B1B0B;ACijHlC;;AyBpkHA;EA+CQ,qB1B5B0B;ACqjHlC;;AyBxkHA;EAkDU,qBfyDuB;AVi+GjC;;AyB5kHA;EAuDU,kD1BpCwB;AC6jHlC;;AyBhlHA;EA6CQ,qB1B5B0B;ACmkHlC;;AyBplHA;EA+CQ,qB1B9B0B;ACukHlC;;AyBxlHA;EAkDU,qBfyDuB;AVi/GjC;;AyB5lHA;EAuDU,kD1BtCwB;AC+kHlC;;AyBhmHA;EA6CQ,qB1B7B0B;AColHlC;;AyBpmHA;EA+CQ,qB1B/B0B;ACwlHlC;;AyBxmHA;EAkDU,qBfyDuB;AVigHjC;;AyB5mHA;EAuDU,mD1BvCwB;ACgmHlC;;AyBhnHA;EA6CQ,qB1BvByB;AC8lHjC;;AyBpnHA;EA+CQ,qB1BzByB;ACkmHjC;;AyBxnHA;EAkDU,qBfyDuB;AVihHjC;;AyB5nHA;EAuDU,kD1BjCuB;AC0mHjC;;AyBhoHA;E3ByCE,kBCyBgB;EDxBhB,kBCNc;ACimHhB;;AyBroHA;E3B4CE,kBCVc;ACumHhB;;AyBzoHA;E3B8CE,iBCba;AC4mHf;;AyB7oHA;EAkEM,qB1B5DwB;AC2oH9B;;AyBjpHA;EAoEI,WAAW;AzBilHf;;AyBrpHA;EAsEM,WAAW;AzBmlHjB;;AyBzpHA;EA0EM,aAAa;EACb,kBAAkB;ExBuFpB,cwBtF+B;EAC7B,YAAY;EACZ,eAAe;AzBmlHrB;;AyBjqHA;EAgFM,kB1B5CU;ACioHhB;;AyBrqHA;EAkFM,kB1BhDU;ACuoHhB;;AyBzqHA;EAoFM,iB1BnDS;AC4oHf;;A0BhqHA;EAEE,oBAAoB;EACpB,aAAa;EACb,2BAA2B;EAC3B,kBAAkB;A1BkqHpB;;A0BvqHA;EAYQ,uB3BZuB;E2BavB,yBAAyB;EACzB,c3B3BqB;AC0rH7B;;A0B7qHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,c3BjCmB;ACgsH7B;;A0BnrHA;EAwBU,yBAAyB;EACzB,+C3BzBqB;E2B0BrB,c3BvCmB;ACssH7B;;A0BzrHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,c3B7CmB;AC4sH7B;;A0B/rHA;EAYQ,yB3BzBqB;E2B0BrB,yBAAyB;EACzB,Y3BduB;ACqsH/B;;A0BrsHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,Y3BpBqB;AC2sH/B;;A0B3sHA;EAwBU,yBAAyB;EACzB,4C3BtCmB;E2BuCnB,Y3B1BqB;ACitH/B;;A0BjtHA;EA8BU,uBhBgEuB;EgB/DvB,yBAAyB;EACzB,Y3BhCqB;ACutH/B;;A0BvtHA;EAYQ,4B3BdsB;E2BetB,yBAAyB;EACzB,yBhBmDa;AV4pHrB;;A0B7tHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,yBhB6CW;AVkqHrB;;A0BnuHA;EAwBU,yBAAyB;EACzB,+C3B3BoB;E2B4BpB,yBhBuCW;AVwqHrB;;A0BzuHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,yBhBiCW;AV8qHrB;;A0B/uHA;EAYQ,yB3BrBsB;E2BsBtB,yBAAyB;EACzB,WhBqDQ;AVkrHhB;;A0BrvHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVwrHhB;;A0B3vHA;EAwBU,yBAAyB;EACzB,4C3BlCoB;E2BmCpB,WhByCM;AV8rHhB;;A0BjwHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVosHhB;;A0BvwHA;EAYQ,yB3BP0B;E2BQ1B,yBAAyB;EACzB,WhBqDQ;AV0sHhB;;A0B7wHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVgtHhB;;A0BnxHA;EAwBU,yBAAyB;EACzB,6C3BpBwB;E2BqBxB,WhByCM;AVstHhB;;A0BzxHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AV4tHhB;;A0B/xHA;EAYQ,yB3BL0B;E2BM1B,yBAAyB;EACzB,WhBqDQ;AVkuHhB;;A0BryHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVwuHhB;;A0B3yHA;EAwBU,yBAAyB;EACzB,6C3BlBwB;E2BmBxB,WhByCM;AV8uHhB;;A0BjzHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVovHhB;;A0BvzHA;EAYQ,yB3BN0B;E2BO1B,yBAAyB;EACzB,WhBqDQ;AV0vHhB;;A0B7zHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVgwHhB;;A0Bn0HA;EAwBU,yBAAyB;EACzB,8C3BnBwB;E2BoBxB,WhByCM;AVswHhB;;A0Bz0HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AV4wHhB;;A0B/0HA;EAYQ,yB3BR0B;E2BS1B,yBAAyB;EACzB,WhBqDQ;AVkxHhB;;A0Br1HA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVwxHhB;;A0B31HA;EAwBU,yBAAyB;EACzB,8C3BrBwB;E2BsBxB,WhByCM;AV8xHhB;;A0Bj2HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVoyHhB;;A0Bv2HA;EAYQ,yB3BT0B;E2BU1B,yBAAyB;EACzB,yBhBmDa;AV4yHrB;;A0B72HA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,yBhB6CW;AVkzHrB;;A0Bn3HA;EAwBU,yBAAyB;EACzB,+C3BtBwB;E2BuBxB,yBhBuCW;AVwzHrB;;A0Bz3HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,yBhBiCW;AV8zHrB;;A0B/3HA;EAYQ,yB3BHyB;E2BIzB,yBAAyB;EACzB,WhBqDQ;AVk0HhB;;A0Br4HA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AVw0HhB;;A0B34HA;EAwBU,yBAAyB;EACzB,8C3BhBuB;E2BiBvB,WhByCM;AV80HhB;;A0Bj5HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AVo1HhB;;A0Bv5HA;EAmCI,kB3BZY;ACo4HhB;;A0B35HA;EAqCI,e3BfS;ACy4Hb;;A0B/5HA;EAuCI,kB3BlBY;AC84HhB;;A0Bn6HA;EA0CQ,eAAe;A1B63HvB;;A0Bv6HA;EA4CI,iB3BxBW;ACu5Hf;;A0B36HA;EA+CQ,eAAe;A1Bg4HvB;;A0B/6HA;EAmDM,6BAA6B;EAC7B,0BAA0B;A1Bg4HhC;;A0Bp7HA;EAsDM,4BAA4B;EAC5B,yBAAyB;A1Bk4H/B;;A0Bz7HA;EA0DQ,kB3BJI;ACu4HZ;;A0B77HA;EA4DQ,aAAa;A1Bq4HrB;;A0Bj8HA;EA+DM,sBAAsB;A1Bs4H5B;;A0Br8HA;EAiEM,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;A1Bw4HtB;;A0B38HA;EAqEM,uBAAuB;A1B04H7B;;A0B/8HA;EAuEM,aAAa;EACb,YAAY;A1B44HlB;;A0Bp9HA;EA0EQ,eAAe;A1B84HvB;;A0Bx9HA;EA6EQ,eAAe;A1B+4HvB;;A0B59HA;EAgFQ,eAAe;A1Bg5HvB;;A0Bh+HA;EAmFQ,eAAe;A1Bi5HvB;;A0Bp+HA;EAsFQ,0BAA4C;A1Bk5HpD;;A0Bx+HA;EAwFQ,0B3BlCI;E2BmCJ,uBAAuB;A1Bo5H/B;;A0B7+HA;EA2FI,uBAAuB;A1Bs5H3B;;A0Bj/HA;EA8FM,WAAW;A1Bu5HjB;;A0Br/HA;EAgGM,YAAY;EACZ,eAAe;A1By5HrB;;A0B1/HA;EAmGI,yBAAyB;A1B25H7B;;A0B9/HA;EAqGM,0BAA4C;A1B65HlD;;A0BlgIA;EAuGM,0B3BjDM;E2BkDN,2BAA2B;EAC3B,SAAS;A1B+5Hf;;A0B75HA;EACE,oBAAoB;EACpB,aAAa;EACb,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,kBAAkB;A1Bg6HpB;;A0Bt6HA;EASM,yBhBtB2B;EgBuB3B,c3B9HwB;AC+hI9B;;A0B36HA;EAYM,qBhBzB2B;AV47HjC;;A0B/6HA;EAeM,yBhB5B2B;EgB6B3B,c3BpIwB;ACwiI9B;;A0Bp7HA;EAkBM,qBhB/B2B;AVq8HjC;;A0Bp6HA;EACE,YAAY;EACZ,OAAO;EACP,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,MAAM;EACN,WAAW;A1Bu6Hb;;A0Br6HA;;EAGE,qB3BhJ4B;E2BiJ5B,kB3BtFU;E2BuFV,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;A1Bu6HrB;;A0Br6HA;EACE,4B3BrJ4B;E2BsJ5B,c3B5J4B;ACokI9B;;A0Bt6HA;EACE,qB3B5J4B;E2B6J5B,mBA9J4B;EA+J5B,2BA9JoC;EA+JpC,cAAc;EACd,eA/JwB;EAgKxB,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;A1By6HzB;;A0Bv6HA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,uBAAuB;EzBvBrB,mByBwBmC;EACrC,UAAU;A1B06HZ;;A0Bh7HA;EAQI,eAAe;A1B46HnB;;A2B5lIA;EACE,c5BF4B;E4BG5B,cAAc;EACd,e5B2BW;E4B1BX,gB5BiCe;AC8jIjB;;A2BnmIA;EAMI,oBAAoB;A3BimIxB;;A2BvmIA;EASI,kB5BsBY;AC4kIhB;;A2B3mIA;EAWI,kB5BkBY;ACklIhB;;A2B/mIA;EAaI,iB5BeW;ACulIf;;A2BpmIA;EACE,cAAc;EACd,kB5Bcc;E4Bbd,mBAAmB;A3BumIrB;;A2B1mIA;EAOM,Y5BdyB;ACqnI/B;;A2B9mIA;EAOM,c5B3BuB;ACsoI7B;;A2BlnIA;EAOM,iB5BhBwB;AC+nI9B;;A2BtnIA;EAOM,c5BvBwB;AC0oI9B;;A2B1nIA;EAOM,c5BT4B;ACgoIlC;;A2B9nIA;EAOM,c5BP4B;ACkoIlC;;A2BloIA;EAOM,c5BR4B;ACuoIlC;;A2BtoIA;EAOM,c5BV4B;AC6oIlC;;A2B1oIA;EAOM,c5BX4B;ACkpIlC;;A2B9oIA;EAOM,c5BL2B;ACgpIjC;;A2BvoIA;EAEI,sBAAsB;A3ByoI1B;;A2B3oIA;EAKI,aAAa;EACb,2BAA2B;A3B0oI/B;;A2BhpIA;E1B2HI,kB0BlHwC;A3B2oI5C;;A2BppIA;;;EAcU,gBAAgB;A3B4oI1B;;A2B1pIA;;;EAoBY,6BAA6B;EAC7B,0BAA0B;A3B4oItC;;A2BjqIA;;;EA8BY,4BAA4B;EAC5B,yBAAyB;A3ByoIrC;;A2BxqIA;;;;;EAyCY,UAAU;A3BuoItB;;A2BhrIA;;;;;;;;;EA8CY,UAAU;A3B8oItB;;A2B5rIA;;;;;;;;;EAgDc,UAAU;A3BwpIxB;;A2BxsIA;EAkDQ,YAAY;EACZ,cAAc;A3B0pItB;;A2B7sIA;EAqDM,uBAAuB;A3B4pI7B;;A2BjtIA;EAuDM,yBAAyB;A3B8pI/B;;A2BrtIA;EA0DQ,YAAY;EACZ,cAAc;A3B+pItB;;A2B1tIA;EA6DI,aAAa;EACb,2BAA2B;A3BiqI/B;;A2B/tIA;EAgEM,cAAc;A3BmqIpB;;A2BnuIA;EAkEQ,gBAAgB;E1ByDpB,qB0BxD2C;A3BqqI/C;;A2BxuIA;EAqEQ,YAAY;EACZ,cAAc;A3BuqItB;;A2B7uIA;EAwEM,uBAAuB;A3ByqI7B;;A2BjvIA;EA0EM,yBAAyB;A3B2qI/B;;A2BrvIA;EA4EM,eAAe;A3B6qIrB;;A2BzvIA;EAgFU,sBAAsB;A3B6qIhC;;A2B7vIA;EAkFQ,uBAAuB;A3B+qI/B;;A2BjwIA;EAoFQ,gBAAgB;A3BirIxB;;ACrsIE;E0BhEF;IAuFM,aAAa;E3BmrIjB;AACF;;A2BlrIA;EAEI,kBAAkB;A3BorItB;;ACntIE;E0B6BF;IAII,qBAAqB;E3BurIvB;AACF;;ACrtIE;E0ByBF;IAMI,aAAa;IACb,YAAY;IACZ,cAAc;I1B0Bd,oB0BzBsC;IACtC,iBAAiB;E3B2rInB;E2BrsIF;IAYM,kB5BhGU;I4BiGV,oBAAoB;E3B4rIxB;E2BzsIF;IAeM,oBAAoB;E3B6rIxB;E2B5sIF;IAiBM,kB5BvGU;I4BwGV,oBAAoB;E3B8rIxB;E2BhtIF;IAoBM,iB5B3GS;I4B4GT,oBAAoB;E3B+rIxB;AACF;;A2B9rIA;EAEI,gBAAgB;A3BgsIpB;;AClvIE;E0BgDF;IAII,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;E3BmsIhB;E2B1sIF;IASM,gBAAgB;E3BosIpB;E2B7sIF;IAWM,cAAc;E3BqsIlB;E2BhtIF;IAaQ,YAAY;E3BssIlB;E2BntIF;I1BWI,qB0BI2C;E3BusI7C;AACF;;A2BtsIA;EACE,sBAAsB;EACtB,WAAW;EACX,e5BhIW;E4BiIX,kBAAkB;EAClB,mBAAmB;A3BysIrB;;A2B9sIA;;;EAaU,c5BxKoB;AC+2I9B;;A2BptIA;;;EAeQ,kB5B3IQ;ACs1IhB;;A2B1tIA;;;EAiBQ,kB5B/IQ;AC81IhB;;A2BhuIA;;;EAmBQ,iB5BlJO;ACq2If;;A2BtuIA;EAqBM,c5B7KwB;E4B8KxB,a7BjLgB;E6BkLhB,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,Y7BrLgB;E6BsLhB,UAAU;A3BqtIhB;;A2BhvIA;;EA+BM,mB7B1LgB;AEg5ItB;;A2BrvIA;EAiCM,OAAO;A3BwtIb;;A2BzvIA;;EAqCM,oB7BhMgB;AEy5ItB;;A2B9vIA;EAuCM,QAAQ;A3B2tId;;A2BlwIA;EA2CM,6BAA6B;E1BzC/B,c0B0C+B;EAC7B,YAAY;EACZ,UAAU;A3B2tIhB;;A2BzwIA;EAgDM,kB5B5KU;ACy4IhB;;A2B7wIA;EAkDM,kB5BhLU;AC+4IhB;;A2BjxIA;EAoDM,iB5BnLS;ACo5If;;A4Bv7IA,qBAAA;ACWA;EAGE,e9BuBW;E8BtBX,mBAAmB;A7B86IrB;;A6Bl7IA;EAMI,mBAAmB;EACnB,c9BI8B;E8BH9B,aAAa;EACb,uBAAuB;EACvB,iBAduC;A7B87I3C;;A6B17IA;EAYM,c9BjBwB;ACm8I9B;;A6B97IA;EAcI,mBAAmB;EACnB,aAAa;A7Bo7IjB;;A6Bn8IA;E5BiJI,e4BhIoC;A7Bs7IxC;;A6Bv8IA;EAoBQ,c9BzBsB;E8B0BtB,eAAe;EACf,oBAAoB;A7Bu7I5B;;A6B78IA;EAwBM,c9B1BwB;E8B2BxB,iBAAiB;A7By7IvB;;A6Bl9IA;;EA4BI,uBAAuB;EACvB,aAAa;EACb,eAAe;EACf,2BAA2B;A7B27I/B;;A6B19IA;E5BiJI,mB4B/GuC;A7B47I3C;;A6B99IA;E5BiJI,kB4B7GuC;A7B87I3C;;A6Bl+IA;;EAyCM,uBAAuB;A7B87I7B;;A6Bv+IA;;EA6CM,yBAAyB;A7B+7I/B;;A6B5+IA;EAgDI,kB9BrBY;ACq9IhB;;A6Bh/IA;EAkDI,kB9BzBY;AC29IhB;;A6Bp/IA;EAoDI,iB9B5BW;ACg+If;;A6Bx/IA;EAwDM,iBAAiB;A7Bo8IvB;;A6B5/IA;EA2DM,iBAAiB;A7Bq8IvB;;A6BhgJA;EA8DM,iBAAiB;A7Bs8IvB;;A6BpgJA;EAiEM,iBAAiB;A7Bu8IvB;;A8B7/IA;EACE,uB/BR6B;E+BS7B,sBAnBmB;EAoBnB,0F/BvB2B;E+BwB3B,c/BnB4B;E+BoB5B,eAAe;EACf,kBAAkB;A9BggJpB;;A8B7/IE;EACE,+BA3BiB;EA4BjB,gCA5BiB;A9B4hJrB;;A8B//IE;EACE,kCA9BiB;EA+BjB,mCA/BiB;A9BiiJrB;;A8BhgJA;EAEE,6BAjCwC;EAkCxC,oBAAoB;EACpB,kD/BxC2B;E+ByC3B,aAAa;A9BkgJf;;A8BhgJA;EACE,mBAAmB;EACnB,c/BzC4B;E+B0C5B,aAAa;EACb,YAAY;EACZ,gB/BNe;E+BOf,qBA1CgC;A9B6iJlC;;A8BzgJA;EAQI,uBAAuB;A9BqgJ3B;;A8BngJA;E7BgBE,qBAAqB;EACrB,wBAAwB;EACxB,gBAAgB;EAChB,gBAAgB;EAChB,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,cAAc;EACd,SAAS;EACT,UAAU;E6BvBV,mBAAmB;EACnB,eAAe;EACf,aAAa;EACb,uBAAuB;EACvB,qBApDgC;A9BmkJlC;;A8B7gJA;EACE,cAAc;EACd,kBAAkB;A9BghJpB;;A8BlhJA;EAKM,+BA/De;EAgEf,gCAhEe;A9BilJrB;;A8BvhJA;EASM,kCAnEe;EAoEf,mCApEe;A9BslJrB;;A8BhhJA;EAEE,6BAhEyC;EAiEzC,eAhE2B;A9BklJ7B;;A8BhhJA;EAEE,6BAlEwC;EAmExC,6B/BxE6B;E+ByE7B,oBAAoB;EACpB,aAAa;A9BkhJf;;A8BhhJA;EACE,mBAAmB;EACnB,aAAa;EACb,aAAa;EACb,YAAY;EACZ,cAAc;EACd,uBAAuB;EACvB,gBA5E2B;A9B+lJ7B;;A8B1hJA;E7BqEI,+BFjJ2B;AC0mJ/B;;A8BjhJA;EAEI,qB/BtDkB;ACykJtB;;A+BpmJA;EACE,oBAAoB;EACpB,kBAAkB;EAClB,mBAAmB;A/BumJrB;;A+B1mJA;EAOM,cAAc;A/BumJpB;;A+B9mJA;EAUM,UAAU;EACV,QAAQ;A/BwmJd;;A+BnnJA;EAcM,YAAY;EACZ,mBA9BuB;EA+BvB,oBAAoB;EACpB,SAAS;A/BymJf;;A+BvmJA;EACE,aAAa;E9B2HX,O8B1HqB;EACvB,gBAzC6B;EA0C7B,gBAtC2B;EAuC3B,kBAAkB;EAClB,SAAS;EACT,WApCqB;A/B8oJvB;;A+BxmJA;EACE,uBhCnC6B;EgCoC7B,kBhCkBU;EgCjBV,0FhClD2B;EgCmD3B,sBA9CsC;EA+CtC,mBA9CmC;A/BypJrC;;Ae7oJgB;EgBqCd,chClD4B;EgCmD5B,cAAc;EACd,mBAAmB;EACnB,gBAAgB;EAChB,sBAAsB;EACtB,kBAAkB;A/B4mJpB;;A+B1mJA;;E9B4FI,mB8B1FmC;EACrC,mBAAmB;EACnB,mBAAmB;EACnB,WAAW;A/B6mJb;;A+BlnJA;;EAOI,4BhC1D0B;EgC2D1B,chCtEyB;ACsrJ7B;;A+BxnJA;;EAUI,yBhCpD8B;EgCqD9B,WrBOY;AV4mJhB;;A+BjnJA;EACE,yBhCnE6B;EgCoE7B,YAAY;EACZ,cAAc;EACd,WAAW;EACX,gBAAgB;A/BonJlB;;AgClsJA;EAEE,mBAAmB;EACnB,8BAA8B;AhCosJhC;;AgCvsJA;EAKI,kBjC4DQ;AC0oJZ;;AgC3sJA;EAOI,qBAAqB;EACrB,mBAAmB;AhCwsJvB;;AgChtJA;EAWI,aAAa;AhCysJjB;;AgCptJA;;EAcM,aAAa;AhC2sJnB;;AgCztJA;EAgBM,aAAa;AhC6sJnB;;AgC7tJA;EAmBQ,gBAAgB;E/BqIpB,qB+B1JuC;AhCouJ3C;;AgCluJA;EAsBQ,YAAY;AhCgtJpB;;ACzoJE;E+B7FF;IAyBI,aAAa;EhCktJf;EgC3uJF;IA4BQ,YAAY;EhCktJlB;AACF;;AgCjtJA;EACE,mBAAmB;EACnB,aAAa;EACb,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,uBAAuB;AhCotJzB;;AgC1tJA;;EASI,gBAAgB;AhCstJpB;;ACpqJE;E+B3DF;IAaM,sBA7CqC;EhCowJzC;AACF;;AgCttJA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AhCytJhB;;AgC7tJA;;EAQM,YAAY;AhC0tJlB;;AClrJE;E+BhDF;;I/B2GI,qB+B1JuC;EhCuxJzC;AACF;;AgC3tJA;EACE,mBAAmB;EACnB,2BAA2B;AhC8tJ7B;;AClsJE;E+B9BF;IAMM,kBAAkB;EhC+tJtB;AACF;;ACpsJE;E+BlCF;IAQI,aAAa;EhCmuJf;AACF;;AgCluJA;EACE,mBAAmB;EACnB,yBAAyB;AhCquJ3B;;AC/sJE;E+BxBF;IAKI,aAAa;EhCuuJf;AACF;;AiC3yJA;EACE,uBAAuB;EACvB,aAAa;EACb,mBAAmB;AjC8yJrB;;AiCjzJA;EAKI,sBAV2B;AjC0zJ/B;;AiCrzJA;EAOI,8ClCR0B;EkCS1B,aAAa;EACb,oBAb2B;AjC+zJ/B;;AiC3zJA;;EAYM,qBAfgC;AjCm0JtC;;AiCh0JA;EAcM,mBAhBwB;AjCs0J9B;;AiCp0JA;EAgBQ,kBAlBsB;AjC00J9B;;AiCx0JA;EAkBI,8ClCnB0B;EkCoB1B,gBA1BgB;EA2BhB,iBA3BgB;AjCq1JpB;;AiC90JA;EAwBM,kBA9BsB;EA+BtB,mBA/BsB;AjCy1J5B;;AiCxzJA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AjC2zJhB;;AiCzzJA;EhCgHI,kBgCxJgB;AjCq2JpB;;AiC1zJA;EhC6GI,iBgCxJgB;AjCy2JpB;;AiC3zJA;EACE,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,mBAAmB;AjC8zJrB;;ACvxJE;EgC3CF;IAQI,gBAAgB;EjC+zJlB;AACF;;AkCt2JA;EACE,enCgBW;ACy1Jb;;AkC12JA;EAII,kBnCcY;AC41JhB;;AkC92JA;EAMI,kBnCUY;ACk2JhB;;AkCl3JA;EAQI,iBnCOW;ACu2Jf;;AkC52JA;EACE,iBArB0B;AlCo4J5B;;AkCh3JA;EAGI,kBnCmCc;EmClCd,cnC3B0B;EmC4B1B,cAAc;EACd,qBAzBiC;AlC04JrC;;AkCv3JA;EAQM,4BnCzBwB;EmC0BxB,cnCjCwB;ACo5J9B;;AkC53JA;EAYM,yBnCpB4B;EmCqB5B,WxBuCU;AV60JhB;;AkCj4JA;EjC8HI,8BFlJ0B;EmCqCxB,cAnC0B;EjCgJ5B,oBiC/IkC;AlCw5JtC;;AkCn3JA;EACE,cnC3C4B;EmC4C5B,iBApC2B;EAqC3B,qBApC+B;EAqC/B,yBAAyB;AlCs3J3B;;AkC13JA;EAMI,eAtCoB;AlC85JxB;;AkC93JA;EAQI,kBAxCoB;AlCk6JxB;;AmC75JA;EAEE,4BpCZ4B;EoCa5B,kBpC2CU;EoC1CV,epCUW;ACq5Jb;;AmCn6JA;EAMI,mBAAmB;AnCi6JvB;;AmCv6JA;EAQI,mBAAmB;EACnB,0BAA0B;AnCm6J9B;;AmC56JA;EAYI,kBpCGY;ACi6JhB;;AmCh7JA;EAcI,kBpCDY;ACu6JhB;;AmCp7JA;EAgBI,iBpCJW;AC46Jf;;AmCx7JA;EAsCM,uBAH+C;AnCy5JrD;;AmC57JA;EAwCQ,uBpChDuB;EoCiDvB,cpC9DqB;ACs9J7B;;AmCj8JA;EA2CQ,mBpCnDuB;AC68J/B;;AmCr8JA;EAsCM,yBAH+C;AnCs6JrD;;AmCz8JA;EAwCQ,yBpC7DqB;EoC8DrB,YpCjDuB;ACs9J/B;;AmC98JA;EA2CQ,qBpChEqB;ACu+J7B;;AmCl9JA;EAsCM,yBAH+C;AnCm7JrD;;AmCt9JA;EAwCQ,4BpClDsB;EoCmDtB,yBzBgBa;AVk6JrB;;AmC39JA;EA2CQ,wBpCrDsB;ACy+J9B;;AmC/9JA;EAsCM,yBAH+C;AnCg8JrD;;AmCn+JA;EAwCQ,yBpCzDsB;EoC0DtB,WzBkBQ;AV66JhB;;AmCx+JA;EA2CQ,qBpC5DsB;AC6/J9B;;AmC5+JA;EAsCM,yBzB4B0C;AV86JhD;;AmCh/JA;EAwCQ,yBpC3C0B;EoC4C1B,WzBkBQ;AV07JhB;;AmCr/JA;EA2CQ,qBpC9C0B;EoC+C1B,czB+B6D;AV+6JrE;;AmC1/JA;EAsCM,yBzB4B0C;AV47JhD;;AmC9/JA;EAwCQ,yBpCzC0B;EoC0C1B,WzBkBQ;AVw8JhB;;AmCngKA;EA2CQ,qBpC5C0B;EoC6C1B,czB+B6D;AV67JrE;;AmCxgKA;EAsCM,yBzB4B0C;AV08JhD;;AmC5gKA;EAwCQ,yBpC1C0B;EoC2C1B,WzBkBQ;AVs9JhB;;AmCjhKA;EA2CQ,qBpC7C0B;EoC8C1B,czB+B6D;AV28JrE;;AmCthKA;EAsCM,yBzB4B0C;AVw9JhD;;AmC1hKA;EAwCQ,yBpC5C0B;EoC6C1B,WzBkBQ;AVo+JhB;;AmC/hKA;EA2CQ,qBpC/C0B;EoCgD1B,czB+B6D;AVy9JrE;;AmCpiKA;EAsCM,yBzB4B0C;AVs+JhD;;AmCxiKA;EAwCQ,yBpC7C0B;EoC8C1B,yBzBgBa;AVo/JrB;;AmC7iKA;EA2CQ,qBpChD0B;EoCiD1B,czB+B6D;AVu+JrE;;AmCljKA;EAsCM,yBzB4B0C;AVo/JhD;;AmCtjKA;EAwCQ,yBpCvCyB;EoCwCzB,WzBkBQ;AVggKhB;;AmC3jKA;EA2CQ,qBpC1CyB;EoC2CzB,czB+B6D;AVq/JrE;;AmClhKA;EACE,mBAAmB;EACnB,yBpChE4B;EoCiE5B,0BAAgE;EAChE,WzBSc;EyBRd,aAAa;EACb,gBpC/Be;EoCgCf,8BAA8B;EAC9B,iBAAiB;EACjB,mBAtEiC;EAuEjC,kBAAkB;AnCqhKpB;;AmC/hKA;EAYI,YAAY;EACZ,cAAc;ElC0Ed,mBkCzEsC;AnCuhK1C;;AmCriKA;EAgBI,eAjEgC;EAkEhC,yBAAyB;EACzB,0BAA0B;AnCyhK9B;;AmCvhKA;EACE,qBpChF4B;EoCiF5B,kBpCtBU;EoCuBV,mBAAmB;EACnB,uBAjFmC;EAkFnC,cpCvF4B;EoCwF5B,qBAjFiC;AnC2mKnC;;AmChiKA;;EASI,uBpCnF2B;AC+mK/B;;AmCriKA;EAWI,6BAlFgD;AnCgnKpD;;AoChmKA;EAEE,mBAAmB;EACnB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,eAAe;EACf,WAxCU;ApC0oKZ;;AoC1mKA;EAWI,aAAa;ApCmmKjB;;AoCjmKA;EAEE,wCrC/C2B;ACkpK7B;;AoCjmKA;;EAEE,cA9CgC;EA+ChC,+BAA0D;EAC1D,cAAc;EACd,kBAAkB;EAClB,WAAW;ApComKb;;ACxkKE;EmClCF;;IASI,cAAc;IACd,8BAA0D;IAC1D,YAxDuB;EpC+pKzB;AACF;;AoCtmKA;EAEE,gBAAgB;EAChB,YAxD2B;EAyD3B,eAAe;EnCgGb,WmCxJoB;EA0DtB,SAzDoB;EA0DpB,WA5D2B;ApCoqK7B;;AoCtmKA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAAgD;EAChD,gBAAgB;EAChB,uBAAuB;ApCymKzB;;AoCvmKA;;EAEE,mBAAmB;EACnB,4BrCtE4B;EqCuE5B,aAAa;EACb,cAAc;EACd,2BAA2B;EAC3B,aApE4B;EAqE5B,kBAAkB;ApC0mKpB;;AoCxmKA;EACE,gCrCjF4B;EqCkF5B,2BrCtBgB;EqCuBhB,4BrCvBgB;ACkoKlB;;AoCzmKA;EACE,crC1F4B;EqC2F5B,YAAY;EACZ,cAAc;EACd,iBrChEa;EqCiEb,cA7E8B;ApCyrKhC;;AoC1mKA;EACE,8BrCjCgB;EqCkChB,+BrClCgB;EqCmChB,6BrC/F4B;AC4sK9B;;AoChnKA;EnCsDI,mBmChDuC;ApC8mK3C;;AoC5mKA;EnChDE,iCAAiC;EmCkDjC,uBrCjG6B;EqCkG7B,YAAY;EACZ,cAAc;EACd,cAAc;EACd,aAtF4B;ApCqsK9B;;AqCzqKA;EACE,uBtC5C6B;EsC6C7B,mBAvDqB;EAwDrB,kBAAkB;EAClB,WAtDW;ArCkuKb;;AqChrKA;EASM,uBtCpDyB;EsCqDzB,ctClEuB;AC6uK7B;;AqCrrKA;;EAcU,ctCtEmB;ACkvK7B;;AqC1rKA;;;;EAoBY,yB3B+BqB;E2B9BrB,ctC7EiB;AC0vK7B;;AqClsKA;EAwBY,qBtChFiB;AC8vK7B;;AqCtsKA;EA0BQ,ctClFqB;ACkwK7B;;AC/qKE;EoC3BF;;;;IAgCY,ctCxFiB;EC0wK3B;EqCltKF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,ctC/Fe;ECuxK3B;EqC/tKF;;IA0Cc,qBtClGe;EC2xK3B;EqCnuKF;;;IA8CU,yB3BKuB;I2BJvB,ctCvGmB;ECiyK3B;EqCzuKF;IAmDc,uBtC9FiB;IsC+FjB,ctC5Ge;ECqyK3B;AACF;;AqC9uKA;EASM,yBtCjEuB;EsCkEvB,YtCrDyB;AC8xK/B;;AqCnvKA;;EAcU,YtCzDqB;ACmyK/B;;AqCxvKA;;;;EAoBY,uB3B+BqB;E2B9BrB,YtChEmB;AC2yK/B;;AqChwKA;EAwBY,mBtCnEmB;AC+yK/B;;AqCpwKA;EA0BQ,YtCrEuB;ACmzK/B;;AC7uKE;EoC3BF;;;;IAgCY,YtC3EmB;EC2zK7B;EqChxKF;;;;;;;;;;IAsCc,uB3BamB;I2BZnB,YtClFiB;ECw0K7B;EqC7xKF;;IA0Cc,mBtCrFiB;EC40K7B;EqCjyKF;;;IA8CU,uB3BKuB;I2BJvB,YtC1FqB;ECk1K7B;EqCvyKF;IAmDc,yBtC3Ge;IsC4Gf,YtC/FiB;ECs1K7B;AACF;;AqC5yKA;EASM,4BtCtDwB;EsCuDxB,yB3BYe;AV2xKrB;;AqCjzKA;;EAcU,yB3BQW;AVgyKrB;;AqCtzKA;;;;EAoBY,yB3B+BqB;E2B9BrB,yB3BCS;AVwyKrB;;AqC9zKA;EAwBY,gC3BFS;AV4yKrB;;AqCl0KA;EA0BQ,yB3BJa;AVgzKrB;;AC3yKE;EoC3BF;;;;IAgCY,yB3BVS;EVwzKnB;EqC90KF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,yB3BjBO;EVq0KnB;EqC31KF;;IA0Cc,gC3BpBO;EVy0KnB;EqC/1KF;;;IA8CU,yB3BKuB;I2BJvB,yB3BzBW;EV+0KnB;EqCr2KF;IAmDc,4BtChGgB;IsCiGhB,yB3B9BO;EVm1KnB;AACF;;AqC12KA;EASM,yBtC7DwB;EsC8DxB,W3BcU;AVu1KhB;;AqC/2KA;;EAcU,W3BUM;AV41KhB;;AqCp3KA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVo2KhB;;AqC53KA;EAwBY,kB3BAI;AVw2KhB;;AqCh4KA;EA0BQ,W3BFQ;AV42KhB;;ACz2KE;EoC3BF;;;;IAgCY,W3BRI;EVo3Kd;EqC54KF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EVi4Kd;EqCz5KF;;IA0Cc,kB3BlBE;EVq4Kd;EqC75KF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EV24Kd;EqCn6KF;IAmDc,yBtCvGgB;IsCwGhB,W3B5BE;EV+4Kd;AACF;;AqCx6KA;EASM,yBtC/C4B;EsCgD5B,W3BcU;AVq5KhB;;AqC76KA;;EAcU,W3BUM;AV05KhB;;AqCl7KA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVk6KhB;;AqC17KA;EAwBY,kB3BAI;AVs6KhB;;AqC97KA;EA0BQ,W3BFQ;AV06KhB;;ACv6KE;EoC3BF;;;;IAgCY,W3BRI;EVk7Kd;EqC18KF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EV+7Kd;EqCv9KF;;IA0Cc,kB3BlBE;EVm8Kd;EqC39KF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVy8Kd;EqCj+KF;IAmDc,yBtCzFoB;IsC0FpB,W3B5BE;EV68Kd;AACF;;AqCt+KA;EASM,yBtC7C4B;EsC8C5B,W3BcU;AVm9KhB;;AqC3+KA;;EAcU,W3BUM;AVw9KhB;;AqCh/KA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVg+KhB;;AqCx/KA;EAwBY,kB3BAI;AVo+KhB;;AqC5/KA;EA0BQ,W3BFQ;AVw+KhB;;ACr+KE;EoC3BF;;;;IAgCY,W3BRI;EVg/Kd;EqCxgLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EV6/Kd;EqCrhLF;;IA0Cc,kB3BlBE;EVigLd;EqCzhLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVugLd;EqC/hLF;IAmDc,yBtCvFoB;IsCwFpB,W3B5BE;EV2gLd;AACF;;AqCpiLA;EASM,yBtC9C4B;EsC+C5B,W3BcU;AVihLhB;;AqCziLA;;EAcU,W3BUM;AVshLhB;;AqC9iLA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AV8hLhB;;AqCtjLA;EAwBY,kB3BAI;AVkiLhB;;AqC1jLA;EA0BQ,W3BFQ;AVsiLhB;;ACniLE;EoC3BF;;;;IAgCY,W3BRI;EV8iLd;EqCtkLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EV2jLd;EqCnlLF;;IA0Cc,kB3BlBE;EV+jLd;EqCvlLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVqkLd;EqC7lLF;IAmDc,yBtCxFoB;IsCyFpB,W3B5BE;EVykLd;AACF;;AqClmLA;EASM,yBtChD4B;EsCiD5B,W3BcU;AV+kLhB;;AqCvmLA;;EAcU,W3BUM;AVolLhB;;AqC5mLA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AV4lLhB;;AqCpnLA;EAwBY,kB3BAI;AVgmLhB;;AqCxnLA;EA0BQ,W3BFQ;AVomLhB;;ACjmLE;EoC3BF;;;;IAgCY,W3BRI;EV4mLd;EqCpoLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EVynLd;EqCjpLF;;IA0Cc,kB3BlBE;EV6nLd;EqCrpLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EVmoLd;EqC3pLF;IAmDc,yBtC1FoB;IsC2FpB,W3B5BE;EVuoLd;AACF;;AqChqLA;EASM,yBtCjD4B;EsCkD5B,yB3BYe;AV+oLrB;;AqCrqLA;;EAcU,yB3BQW;AVopLrB;;AqC1qLA;;;;EAoBY,yB3B+BqB;E2B9BrB,yB3BCS;AV4pLrB;;AqClrLA;EAwBY,gC3BFS;AVgqLrB;;AqCtrLA;EA0BQ,yB3BJa;AVoqLrB;;AC/pLE;EoC3BF;;;;IAgCY,yB3BVS;EV4qLnB;EqClsLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,yB3BjBO;EVyrLnB;EqC/sLF;;IA0Cc,gC3BpBO;EV6rLnB;EqCntLF;;;IA8CU,yB3BKuB;I2BJvB,yB3BzBW;EVmsLnB;EqCztLF;IAmDc,yBtC3FoB;IsC4FpB,yB3B9BO;EVusLnB;AACF;;AqC9tLA;EASM,yBtC3C2B;EsC4C3B,W3BcU;AV2sLhB;;AqCnuLA;;EAcU,W3BUM;AVgtLhB;;AqCxuLA;;;;EAoBY,yB3B+BqB;E2B9BrB,W3BGI;AVwtLhB;;AqChvLA;EAwBY,kB3BAI;AV4tLhB;;AqCpvLA;EA0BQ,W3BFQ;AVguLhB;;AC7tLE;EoC3BF;;;;IAgCY,W3BRI;EVwuLd;EqChwLF;;;;;;;;;;IAsCc,yB3BamB;I2BZnB,W3BfE;EVqvLd;EqC7wLF;;IA0Cc,kB3BlBE;EVyvLd;EqCjxLF;;;IA8CU,yB3BKuB;I2BJvB,W3BvBM;EV+vLd;EqCvxLF;IAmDc,yBtCrFmB;IsCsFnB,W3B5BE;EVmwLd;AACF;;AqC5xLA;EAsDI,oBAAoB;EACpB,aAAa;EACb,mBA7GmB;EA8GnB,WAAW;ArC0uLf;;AqCnyLA;EA2DI,gCtCxG0B;ACo1L9B;;AqCvyLA;EALE,OAAO;EACP,eAAe;EACf,QAAQ;EACR,WA/CiB;ArC+1LnB;;AqC9yLA;EAgEI,SAAS;ArCkvLb;;AqClzLA;EAkEM,iCtC/GwB;ACm2L9B;;AqCtzLA;EAoEI,MAAM;ArCsvLV;;AqCpvLA;;EAGI,oBA9HmB;ArCo3LvB;;AqCzvLA;;EAKI,uBAhImB;ArCy3LvB;;AqCvvLA;;EAEE,oBAAoB;EACpB,aAAa;EACb,cAAc;EACd,mBAvIqB;ArCi4LvB;;AqCxvLA;EAIM,6BAA6B;ArCwvLnC;;AqCtvLA;EpCtFE,iCAAiC;EoCwFjC,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;ArCyvLpB;;AqCvvLA;EAEE,ctCrJ4B;EEoB5B,eAAe;EACf,cAAc;EACd,eoCxBqB;EpCyBrB,kBAAkB;EAClB,coC1BqB;EpCuJnB,iBoCEkC;ArC6vLtC;;AC33LE;EACE,8BAA8B;EAC9B,cAAc;EACd,WAAW;EACX,qBAAqB;EACrB,kBAAkB;EAClB,wBAAwB;EACxB,yBFiCQ;EEhCR,yDAAyD;EACzD,oCF0Ba;EEzBb,WAAW;AD83Lf;;AC73LI;EACE,oBAAoB;ADg4L1B;;AC/3LI;EACE,oBAAoB;ADk4L1B;;ACj4LI;EACE,oBAAoB;ADo4L1B;;ACn4LE;EACE,qCAAiC;ADs4LrC;;ACl4LM;EACE,wCAAwC;ADq4LhD;;ACp4LM;EACE,UAAU;ADu4LlB;;ACt4LM;EACE,0CAA0C;ADy4LlD;;AqCpyLA;EACE,aAAa;ArCuyLf;;AqCryLA;;EAEE,ctC9J4B;EsC+J5B,cAAc;EACd,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;ArCwyLpB;;AqC9yLA;;EASM,qBAAqB;EACrB,sBAAsB;ArC0yL5B;;AqCxyLA;;EAEE,eAAe;ArC2yLjB;;AqC7yLA;;;;;EAOI,yBtCxK0B;EsCyK1B,ctCjK8B;AC+8LlC;;AqC5yLA;EACE,YAAY;EACZ,cAAc;ArC+yLhB;;AqCjzLA;EAII,mBA7KgC;ArC89LpC;;AqCrzLA;EAMI,UAAU;ArCmzLd;;AqCzzLA;EAQI,YAAY;EACZ,cAAc;ArCqzLlB;;AqC9zLA;EAWI,oCAAoC;EACpC,mBAhMmB;EAiMnB,kCAAkC;ArCuzLtC;;AqCp0LA;EAgBM,6BArLyC;EAsLzC,4BtCpL4B;AC4+LlC;;AqCz0LA;EAmBM,6BArL0C;EAsL1C,4BtCvL4B;EsCwL5B,0BArLuC;EAsLvC,wBArLqC;EAsLrC,ctC1L4B;EsC2L5B,kCAAwE;ArC0zL9E;;AqCxzLA;EACE,YAAY;EACZ,cAAc;ArC2zLhB;;AqCzzLA;EpC3DI,oBoC4DoC;ArC4zLxC;;AqC7zLA;EAII,qBtCrM8B;EsCsM9B,oBAAoB;EpCxDpB,coCyD6B;ArC6zLjC;;AqC3zLA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,mBAAmB;ArC8zLrB;;AqCj0LA;EAKI,oBAAoB;EACpB,qBAAqB;ArCg0LzB;;AqC9zLA;EACE,4BtC3N4B;EsC4N5B,YAAY;EACZ,aAAa;EACb,WA/LyB;EAgMzB,gBAAgB;ArCi0LlB;;ACp9LE;EoC/BF;IAsLI,cAAc;ErCk0LhB;EqCj0LA;;IAGI,mBAAmB;IACnB,aAAa;ErCk0LjB;EqCj0LA;IAEI,aAAa;ErCk0LjB;EqC15LF;IA0FI,uBtC3O2B;IsC4O3B,4CtCzPyB;IsC0PzB,iBAAiB;ErCm0LnB;EqCt0LA;IAKI,cAAc;ErCo0LlB;EqCl0LA;IA3MA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErC+jMjB;EqCx0LA;IAKI,SAAS;ErCs0Lb;EqC30LA;IAOM,4CtCrQqB;EC4kM3B;EqC90LA;IASI,MAAM;ErCw0LV;EqCj1LA;IpClMA,iCAAiC;IoCgN3B,iCAA2C;IAC3C,cAAc;ErCu0LpB;EqCt0LA;;IAGI,oBA9QiB;ErCqlMrB;EqC10LA;;IAKI,uBAhRiB;ErCylMrB;AACF;;AC1gME;EoCmMA;;;;IAIE,oBAAoB;IACpB,aAAa;ErC20Lf;EqC9iMF;IAqOI,mBA1RmB;ErCsmMrB;EqC70LA;IAGI,kBA1R0B;ErCumM9B;EqCh1LA;;IAMM,mBAAmB;ErC80LzB;EqCp1LA;;IASM,kBtClOI;ECijMV;EqCx1LA;;;;IAgBQ,wCAAwC;ErC80LhD;EqC91LA;IAuBU,wCAAwC;ErC00LlD;EqCj2LA;IA4BU,4BtC7SkB;IsC8SlB,ctCzTiB;ECioM3B;EqCr2LA;IA+BU,4BtChTkB;IsCiTlB,ctCxSsB;ECinMhC;EqC7+LF;IAsKI,aAAa;ErC00Lf;EqCv+LF;;IAgKI,mBAAmB;IACnB,aAAa;ErC20Lf;EqCt9LF;IA8IM,oBAAoB;ErC20LxB;EqC70LA;IAKM,oDAAoD;ErC20L1D;EqCh1LA;IAOM,gCtClUsB;IsCmUtB,0BAAkE;IAClE,gBAAgB;IAChB,YAAY;IACZ,4CtC9UqB;IsC+UrB,SAAS;ErC40Lf;EqCx1LA;IAkBM,cAAc;ErCy0LpB;EqCx0LM;IAEE,UAAU;IACV,oBAAoB;IACpB,wBAAwB;ErCy0LhC;EqCrgMF;IA8LI,YAAY;IACZ,cAAc;ErC00LhB;EqCz0LA;IACE,2BAA2B;IpCrM3B,kBoCsMoC;ErC20LtC;EqC10LA;IACE,yBAAyB;IpCxMzB,iBoCyMoC;ErC40LtC;EqCl9LF;IAwII,uBtCxV2B;IsCyV3B,8BtClSc;IsCmSd,+BtCnSc;IsCoSd,6BtChW0B;IsCiW1B,2CtCzWyB;IsC0WzB,aAAa;IACb,mBAAmB;IpCzMnB,OoC0MuB;IACvB,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,WAjVkB;ErC8pMpB;EqCh+LF;IAqJM,sBAAsB;IACtB,mBAAmB;ErC80LvB;EqC71LA;IpC1ME,mBoC2NuC;ErC+0LzC;EqCh2LA;IAoBM,4BtC7WsB;IsC8WtB,ctCzXqB;ECwsM3B;EqCp2LA;IAuBM,4BtChXsB;IsCiXtB,ctCxW0B;ECwrMhC;EqC/0LE;IAEE,kBtC3TY;IsC4TZ,gBAAgB;IAChB,4EtCjYuB;IsCkYvB,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,wBAA8C;IAC9C,2BAA2B;IAC3B,yBtCjUM;IsCkUN,uCAAuC;ErCg1L3C;EqCp3LA;IAsCI,UAAU;IACV,QAAQ;ErCi1LZ;EqCv/LF;IAwKI,cAAc;ErCk1LhB;EqCj1LA;;IpCpPE,qBoCuPyC;ErCk1L3C;EqCr1LA;;IpCpPE,sBoCyPyC;ErCo1L3C;EqCl1LA;IAlWA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;ErCsuMjB;EqCx1LA;IAKI,SAAS;ErCs1Lb;EqC31LA;IAOM,4CtC5ZqB;ECmvM3B;EqC91LA;IASI,MAAM;ErCw1LV;EqCv1LA;;IAGI,oBA/ZiB;ErCuvMrB;EqC31LA;;IAKI,uBAjaiB;ErC2vMrB;EqC/1LA;;IAOI,oBAA4D;ErC41LhE;EqCn2LA;;IASI,uBAA+D;ErC81LnE;EqC51LA;;IAGI,ctC7auB;EC0wM3B;EqCh2LA;;IAKI,6BAla2C;ErCiwM/C;EqC91LA;IAKM,yBtCzasB;ECqwM5B;AACF;;AqCz1LA;EAEI,iCAA2C;ArC21L/C;;AsCnvMA;EAEE,evCFW;EuCGX,gBAnC0B;AtCwxM5B;;AsCxvMA;EAMI,kBvCLY;AC2vMhB;;AsC5vMA;EAQI,kBvCTY;ACiwMhB;;AsChwMA;EAUI,iBvCZW;ACswMf;;AsCpwMA;;EAcM,iBAAiB;EACjB,kBAAkB;EAClB,qBvCkBiB;ACyuMvB;;AsC3wMA;EAkBM,qBvCgBiB;AC6uMvB;;AsC3vMA;;EAEE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,kBAAkB;AtC8vMpB;;AsC5vMA;;;;EAME,cA9D6B;EA+D7B,uBAAuB;EACvB,eA/D8B;EAgE9B,mBA/DkC;EAgElC,oBA/DmC;EAgEnC,kBAAkB;AtC6vMpB;;AsC3vMA;;;EAGE,qBvCtE4B;EuCuE5B,cvC3E4B;EuC4E5B,gBxC3EoB;AEy0MtB;;AsCnwMA;;;EAOI,qBvC3E0B;EuC4E1B,cvC/E0B;ACi1M9B;;AsC1wMA;;;EAUI,qBvCjE8B;ACu0MlC;;AsChxMA;;;EAYI,iDvCvFyB;ACi2M7B;;AsCtxMA;;;EAcI,yBvCjF0B;EuCkF1B,qBvClF0B;EuCmF1B,gBAAgB;EAChB,cvCtF0B;EuCuF1B,YAAY;AtC8wMhB;;AsC5wMA;;EAEE,oBAtFkC;EAuFlC,qBAtFmC;EAuFnC,mBAAmB;AtC+wMrB;;AsC7wMA;EAEI,yBvCnF8B;EuCoF9B,qBvCpF8B;EuCqF9B,W5BzBY;AVwyMhB;;AsC7wMA;EACE,cvCrG4B;EuCsG5B,oBAAoB;AtCgxMtB;;AsC9wMA;EACE,eAAe;AtCixMjB;;AsClxMA;EAGI,gBAAgB;AtCmxMpB;;AC1yME;EqCxDF;IAmFI,eAAe;EtCoxMjB;EsC3yMF;;IA0BI,YAAY;IACZ,cAAc;EtCqxMhB;EsChyMF;IAcM,YAAY;IACZ,cAAc;EtCqxMlB;AACF;;ACrzME;EqCgBF;IAmBI,YAAY;IACZ,cAAc;IACd,2BAA2B;IAC3B,QAAQ;EtCuxMV;EsC91MF;;;;IA4EI,gBAAgB;IAChB,aAAa;EtCwxMf;EsCvxMA;IACE,QAAQ;EtCyxMV;EsCxxMA;IACE,QAAQ;EtC0xMV;EsCt4MF;IA8GI,8BAA8B;IAC9B,gBAAgB;IAChB,aAAa;EtC2xMf;EsC9xMA;IAMM,QAAQ;EtC2xMd;EsCjyMA;IAQM,uBAAuB;IACvB,QAAQ;EtC4xMd;EsCryMA;IAWM,QAAQ;EtC6xMd;EsCxyMA;IAcM,QAAQ;EtC6xMd;EsC3yMA;IAgBM,QAAQ;EtC8xMd;EsC9yMA;IAkBM,yBAAyB;IACzB,QAAQ;EtC+xMd;AACF;;AuCr6MA;EACE,kBxCqCgB;EwCpChB,0FxChC2B;EwCiC3B,exCEW;ACs6Mb;;AuC36MA;EAKI,qBxCWkB;AC+5MtB;;AuC/6MA;EAYQ,uBxC7BuB;EwC8BvB,cxC3CqB;ACk9M7B;;AuCp7MA;EAeQ,0BxChCuB;ACy8M/B;;AuCx7MA;EAiBQ,YxClCuB;AC68M/B;;AuC57MA;EAYQ,yBxC1CqB;EwC2CrB,YxC9BuB;ACk9M/B;;AuCj8MA;EAeQ,4BxC7CqB;ACm+M7B;;AuCr8MA;EAiBQ,cxC/CqB;ACu+M7B;;AuCz8MA;EAYQ,4BxC/BsB;EwCgCtB,yB7BmCa;AV85MrB;;AuC98MA;EAeQ,+BxClCsB;ACq+M9B;;AuCl9MA;EAiBQ,iBxCpCsB;ACy+M9B;;AuCt9MA;EAYQ,yBxCtCsB;EwCuCtB,W7BqCQ;AVy6MhB;;AuC39MA;EAeQ,4BxCzCsB;ACy/M9B;;AuC/9MA;EAiBQ,cxC3CsB;AC6/M9B;;AuCn+MA;EAYQ,yBxCxB0B;EwCyB1B,W7BqCQ;AVs7MhB;;AuCx+MA;EAeQ,4BxC3B0B;ACw/MlC;;AuC5+MA;EAiBQ,cxC7B0B;AC4/MlC;;AuCh/MA;EAYQ,yBxCtB0B;EwCuB1B,W7BqCQ;AVm8MhB;;AuCr/MA;EAeQ,4BxCzB0B;ACmgNlC;;AuCz/MA;EAiBQ,cxC3B0B;ACugNlC;;AuC7/MA;EAYQ,yBxCvB0B;EwCwB1B,W7BqCQ;AVg9MhB;;AuClgNA;EAeQ,4BxC1B0B;ACihNlC;;AuCtgNA;EAiBQ,cxC5B0B;ACqhNlC;;AuC1gNA;EAYQ,yBxCzB0B;EwC0B1B,W7BqCQ;AV69MhB;;AuC/gNA;EAeQ,4BxC5B0B;ACgiNlC;;AuCnhNA;EAiBQ,cxC9B0B;ACoiNlC;;AuCvhNA;EAYQ,yBxC1B0B;EwC2B1B,yB7BmCa;AV4+MrB;;AuC5hNA;EAeQ,4BxC7B0B;AC8iNlC;;AuChiNA;EAiBQ,cxC/B0B;ACkjNlC;;AuCpiNA;EAYQ,yBxCpByB;EwCqBzB,W7BqCQ;AVu/MhB;;AuCziNA;EAeQ,4BxCvByB;ACqjNjC;;AuC7iNA;EAiBQ,cxCzByB;ACyjNjC;;AuC9hNA;;EAGI,gCxC3C2B;AC2kN/B;;AuC9hNA;EACE,yBxC9C6B;EwC+C7B,0BAA8C;EAC9C,cxCrD4B;EwCsD5B,iBAhDyB;EAiDzB,gBxCjBe;EwCkBf,iBArD8B;EAsD9B,mBArDgC;AvCslNlC;;AuC/hNA;EACE,qBAAqB;EACrB,aAAa;EACb,kBArD4B;EAsD5B,uBAAuB;AvCkiNzB;;AuCtiNA;EAMI,gCxC7D0B;EwC8D1B,mBAAmB;EACnB,cAAc;AvCoiNlB;;AuC5iNA;EAWM,4BxCrEwB;EwCsExB,cxCvEwB;AC4mN9B;;AuCniNA;EAEI,cxC1E0B;AC+mN9B;;AuCviNA;EAIM,cxC7D4B;AComNlC;;AuCriNA;EACE,mBAAmB;EACnB,cxCjF4B;EwCkF5B,aAAa;EACb,2BAA2B;EAC3B,qBAAqB;AvCwiNvB;;AuC7iNA;EtCuEI,oBsChEsC;AvC0iN1C;;AuCjjNA;EASI,YAAY;EACZ,cAAc;EACd,WAAW;AvC4iNf;;AuCvjNA;EAaI,eAAe;AvC8iNnB;;AuC3jNA;EAeI,0BxC9E8B;EwC+E9B,cxC/F0B;AC+oN9B;;AuChkNA;EAkBM,cxCjF4B;ACmoNlC;;AuCpkNA;EAoBI,8BxCnCc;EwCoCd,+BxCpCc;ACwlNlB;;AuCljNA;;EAEE,eAAe;AvCqjNjB;;AuCvjNA;;EAII,4BxCnG0B;AC2pN9B;;AuCtjNA;EtChGE,qBAAqB;EACrB,esCgGgB;EtC/FhB,WsC+FqB;EtC9FrB,gBsC8FqB;EtC7FrB,kBAAkB;EAClB,mBAAmB;EACnB,UsC2FqB;EACrB,cxC5G4B;EEoJ1B,oBsCvCoC;AvC+jNxC;;AuClkNA;EAKI,kBAAkB;EAClB,oBAAoB;AvCikNxB;;AwC3pNA;EvCgCE,iCAAiC;EuC5BjC,oBAAoB;EACpB,aAAa;EACb,ezCCW;EyCAX,8BAA8B;EAC9B,gBAAgB;EAChB,gBAAgB;EAChB,mBAAmB;AxC4pNrB;;AwCtqNA;EAYI,mBAAmB;EACnB,4BzCjC0B;EyCkC1B,0BAzC4B;EA0C5B,wBAzC0B;EA0C1B,czCvC0B;EyCwC1B,aAAa;EACb,uBAAuB;EACvB,mBAA6C;EAC7C,kBAxCyB;EAyCzB,mBAAmB;AxC8pNvB;;AwCnrNA;EAuBM,4BzC/CwB;EyCgDxB,czChDwB;ACgtN9B;;AwCxrNA;EA0BI,cAAc;AxCkqNlB;;AwC5rNA;EA6BQ,4BzCrC0B;EyCsC1B,czCtC0B;ACysNlC;;AwCjsNA;EAgCI,mBAAmB;EACnB,4BzCrD0B;EyCsD1B,0BA7D4B;EA8D5B,wBA7D0B;EA8D1B,aAAa;EACb,YAAY;EACZ,cAAc;EACd,2BAA2B;AxCqqN/B;;AwC5sNA;EAyCM,qBAAqB;AxCuqN3B;;AwChtNA;EA2CM,UAAU;EACV,uBAAuB;EACvB,oBAAoB;EACpB,qBAAqB;AxCyqN3B;;AwCvtNA;EAgDM,yBAAyB;EACzB,oBAAoB;AxC2qN1B;;AwC5tNA;EvC8HI,mBuC1EuC;AxC4qN3C;;AwChuNA;EvC8HI,kBuCxEuC;AxC8qN3C;;AwCpuNA;EA0DM,uBAAuB;AxC8qN7B;;AwCxuNA;EA6DM,yBAAyB;AxC+qN/B;;AwC5uNA;EAiEM,6BAA6B;EAE3B,0BAAkE;AxC8qN1E;;AwCjvNA;EAuEQ,4BzCxFsB;EyCyFtB,4BzC5FsB;AC0wN9B;;AwCtvNA;EA4EU,uBzC3FqB;EyC4FrB,qBzCjGoB;EyCkGpB,2CAA2E;AxC8qNrF;;AwC5vNA;EAiFM,YAAY;EACZ,cAAc;AxC+qNpB;;AwCjwNA;EAqFM,qBzCzGwB;EyC0GxB,mBA/F+B;EAgG/B,iBA/F6B;EAgG7B,gBAAgB;EAChB,kBAAkB;AxCgrNxB;;AwCzwNA;EA2FQ,4BzC5GsB;EyC6GtB,qBzCjHsB;EyCkHtB,UAAU;AxCkrNlB;;AwC/wNA;EvC8HI,iBuC9BuE;AxCmrN3E;;AwCnxNA;EAmGU,2BzC5DE;EyC6DF,8BzC7DE;ACivNZ;;AwCxxNA;EA0GU,4BzCnEE;EyCoEF,+BzCpEE;ACsvNZ;;AwC7xNA;EAiHU,yBzCzHwB;EyC0HxB,qBzC1HwB;EyC2HxB,W9B/DM;E8BgEN,UAAU;AxCgrNpB;;AwCpyNA;EAsHM,mBAAmB;AxCkrNzB;;AwCxyNA;EA2HY,iCzClFW;EyCmFX,8BzCnFW;EyCoFX,oBAAoB;AxCirNhC;;AwC9yNA;EAoIY,kCzC3FW;EyC4FX,+BzC5FW;EyC6FX,qBAAqB;AxC8qNjC;;AwCpzNA;EA6II,kBzCrIY;ACgzNhB;;AwCxzNA;EA+II,kBzCzIY;ACszNhB;;AwC5zNA;EAiJI,iBzC5IW;AC2zNf;;AyC91NA,eAAA;ACIA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,gBAPkB;A1Cq2NpB;;A0C71NE;EACE,UAAU;EACV,YAAY;A1Cg2NhB;;A0C/1NE;EACE,UAAU;EACV,WAAW;A1Ck2Nf;;A0Cj2NE;EACE,UAAU;EACV,UAAU;A1Co2Nd;;A0Cn2NE;EACE,UAAU;EACV,eAAe;A1Cs2NnB;;A0Cr2NE;EACE,UAAU;EACV,UAAU;A1Cw2Nd;;A0Cv2NE;EACE,UAAU;EACV,eAAe;A1C02NnB;;A0Cz2NE;EACE,UAAU;EACV,UAAU;A1C42Nd;;A0C32NE;EACE,UAAU;EACV,UAAU;A1C82Nd;;A0C72NE;EACE,UAAU;EACV,UAAU;A1Cg3Nd;;A0C/2NE;EACE,UAAU;EACV,UAAU;A1Ck3Nd;;A0Cj3NE;EACE,UAAU;EACV,UAAU;A1Co3Nd;;A0Cn3NE;EzCiHE,gByChHmC;A1Cs3NvC;;A0Cr3NE;EzC+GE,qByC9GwC;A1Cw3N5C;;A0Cv3NE;EzC6GE,gByC5GmC;A1C03NvC;;A0Cz3NE;EzC2GE,qByC1GwC;A1C43N5C;;A0C33NE;EzCyGE,gByCxGmC;A1C83NvC;;A0C73NE;EzCuGE,gByCtGmC;A1Cg4NvC;;A0C/3NE;EzCqGE,gByCpGmC;A1Ck4NvC;;A0Cj4NE;EzCmGE,gByClGmC;A1Co4NvC;;A0Cn4NE;EzCiGE,gByChGmC;A1Cs4NvC;;A0Cp4NI;EACE,UAAU;EACV,SAAiC;A1Cu4NvC;;A0Ct4NI;EzC2FA,eyC1F4D;A1Cy4NhE;;A0C74NI;EACE,UAAU;EACV,eAAiC;A1Cg5NvC;;A0C/4NI;EzC2FA,qByC1F4D;A1Ck5NhE;;A0Ct5NI;EACE,UAAU;EACV,gBAAiC;A1Cy5NvC;;A0Cx5NI;EzC2FA,sByC1F4D;A1C25NhE;;A0C/5NI;EACE,UAAU;EACV,UAAiC;A1Ck6NvC;;A0Cj6NI;EzC2FA,gByC1F4D;A1Co6NhE;;A0Cx6NI;EACE,UAAU;EACV,gBAAiC;A1C26NvC;;A0C16NI;EzC2FA,sByC1F4D;A1C66NhE;;A0Cj7NI;EACE,UAAU;EACV,gBAAiC;A1Co7NvC;;A0Cn7NI;EzC2FA,sByC1F4D;A1Cs7NhE;;A0C17NI;EACE,UAAU;EACV,UAAiC;A1C67NvC;;A0C57NI;EzC2FA,gByC1F4D;A1C+7NhE;;A0Cn8NI;EACE,UAAU;EACV,gBAAiC;A1Cs8NvC;;A0Cr8NI;EzC2FA,sByC1F4D;A1Cw8NhE;;A0C58NI;EACE,UAAU;EACV,gBAAiC;A1C+8NvC;;A0C98NI;EzC2FA,sByC1F4D;A1Ci9NhE;;A0Cr9NI;EACE,UAAU;EACV,UAAiC;A1Cw9NvC;;A0Cv9NI;EzC2FA,gByC1F4D;A1C09NhE;;A0C99NI;EACE,UAAU;EACV,gBAAiC;A1Ci+NvC;;A0Ch+NI;EzC2FA,sByC1F4D;A1Cm+NhE;;A0Cv+NI;EACE,UAAU;EACV,gBAAiC;A1C0+NvC;;A0Cz+NI;EzC2FA,sByC1F4D;A1C4+NhE;;A0Ch/NI;EACE,UAAU;EACV,WAAiC;A1Cm/NvC;;A0Cl/NI;EzC2FA,iByC1F4D;A1Cq/NhE;;AC19NE;EyCzFF;IAiEM,UAAU;IACV,YAAY;E1Cu/NhB;E0CzjOF;IAoEM,UAAU;IACV,WAAW;E1Cw/Nf;E0C7jOF;IAuEM,UAAU;IACV,UAAU;E1Cy/Nd;E0CjkOF;IA0EM,UAAU;IACV,eAAe;E1C0/NnB;E0CrkOF;IA6EM,UAAU;IACV,UAAU;E1C2/Nd;E0CzkOF;IAgFM,UAAU;IACV,eAAe;E1C4/NnB;E0C7kOF;IAmFM,UAAU;IACV,UAAU;E1C6/Nd;E0CjlOF;IAsFM,UAAU;IACV,UAAU;E1C8/Nd;E0CrlOF;IAyFM,UAAU;IACV,UAAU;E1C+/Nd;E0CzlOF;IA4FM,UAAU;IACV,UAAU;E1CggOd;E0C7lOF;IA+FM,UAAU;IACV,UAAU;E1CigOd;E0CjmOF;IzCwJI,gByCtDqC;E1CkgOvC;E0CpmOF;IzCwJI,qByCpD0C;E1CmgO5C;E0CvmOF;IzCwJI,gByClDqC;E1CogOvC;E0C1mOF;IzCwJI,qByChD0C;E1CqgO5C;E0C7mOF;IzCwJI,gByC9CqC;E1CsgOvC;E0ChnOF;IzCwJI,gByC5CqC;E1CugOvC;E0CnnOF;IzCwJI,gByC1CqC;E1CwgOvC;E0CtnOF;IzCwJI,gByCxCqC;E1CygOvC;E0CznOF;IzCwJI,gByCtCqC;E1C0gOvC;E0C5nOF;IAqHQ,UAAU;IACV,SAAiC;E1C0gOvC;E0ChoOF;IzCwJI,eyChC8D;E1C2gOhE;E0CnoOF;IAqHQ,UAAU;IACV,eAAiC;E1CihOvC;E0CvoOF;IzCwJI,qByChC8D;E1CkhOhE;E0C1oOF;IAqHQ,UAAU;IACV,gBAAiC;E1CwhOvC;E0C9oOF;IzCwJI,sByChC8D;E1CyhOhE;E0CjpOF;IAqHQ,UAAU;IACV,UAAiC;E1C+hOvC;E0CrpOF;IzCwJI,gByChC8D;E1CgiOhE;E0CxpOF;IAqHQ,UAAU;IACV,gBAAiC;E1CsiOvC;E0C5pOF;IzCwJI,sByChC8D;E1CuiOhE;E0C/pOF;IAqHQ,UAAU;IACV,gBAAiC;E1C6iOvC;E0CnqOF;IzCwJI,sByChC8D;E1C8iOhE;E0CtqOF;IAqHQ,UAAU;IACV,UAAiC;E1CojOvC;E0C1qOF;IzCwJI,gByChC8D;E1CqjOhE;E0C7qOF;IAqHQ,UAAU;IACV,gBAAiC;E1C2jOvC;E0CjrOF;IzCwJI,sByChC8D;E1C4jOhE;E0CprOF;IAqHQ,UAAU;IACV,gBAAiC;E1CkkOvC;E0CxrOF;IzCwJI,sByChC8D;E1CmkOhE;E0C3rOF;IAqHQ,UAAU;IACV,UAAiC;E1CykOvC;E0C/rOF;IzCwJI,gByChC8D;E1C0kOhE;E0ClsOF;IAqHQ,UAAU;IACV,gBAAiC;E1CglOvC;E0CtsOF;IzCwJI,sByChC8D;E1CilOhE;E0CzsOF;IAqHQ,UAAU;IACV,gBAAiC;E1CulOvC;E0C7sOF;IzCwJI,sByChC8D;E1CwlOhE;E0ChtOF;IAqHQ,UAAU;IACV,WAAiC;E1C8lOvC;E0CptOF;IzCwJI,iByChC8D;E1C+lOhE;AACF;;AC3nOE;EyC7FF;IA4HM,UAAU;IACV,YAAY;E1CimOhB;E0C9tOF;IAgIM,UAAU;IACV,WAAW;E1CimOf;E0CluOF;IAoIM,UAAU;IACV,UAAU;E1CimOd;E0CtuOF;IAwIM,UAAU;IACV,eAAe;E1CimOnB;E0C1uOF;IA4IM,UAAU;IACV,UAAU;E1CimOd;E0C9uOF;IAgJM,UAAU;IACV,eAAe;E1CimOnB;E0ClvOF;IAoJM,UAAU;IACV,UAAU;E1CimOd;E0CtvOF;IAwJM,UAAU;IACV,UAAU;E1CimOd;E0C1vOF;IA4JM,UAAU;IACV,UAAU;E1CimOd;E0C9vOF;IAgKM,UAAU;IACV,UAAU;E1CimOd;E0ClwOF;IAoKM,UAAU;IACV,UAAU;E1CimOd;E0CtwOF;IzCwJI,gByCgBqC;E1CimOvC;E0CzwOF;IzCwJI,qByCmB0C;E1CimO5C;E0C5wOF;IzCwJI,gByCsBqC;E1CimOvC;E0C/wOF;IzCwJI,qByCyB0C;E1CimO5C;E0ClxOF;IzCwJI,gByC4BqC;E1CimOvC;E0CrxOF;IzCwJI,gByC+BqC;E1CimOvC;E0CxxOF;IzCwJI,gByCkCqC;E1CimOvC;E0C3xOF;IzCwJI,gByCqCqC;E1CimOvC;E0C9xOF;IzCwJI,gByCwCqC;E1CimOvC;E0CjyOF;IAoMQ,UAAU;IACV,SAAiC;E1CgmOvC;E0CryOF;IzCwJI,eyCgD8D;E1CgmOhE;E0CxyOF;IAoMQ,UAAU;IACV,eAAiC;E1CumOvC;E0C5yOF;IzCwJI,qByCgD8D;E1CumOhE;E0C/yOF;IAoMQ,UAAU;IACV,gBAAiC;E1C8mOvC;E0CnzOF;IzCwJI,sByCgD8D;E1C8mOhE;E0CtzOF;IAoMQ,UAAU;IACV,UAAiC;E1CqnOvC;E0C1zOF;IzCwJI,gByCgD8D;E1CqnOhE;E0C7zOF;IAoMQ,UAAU;IACV,gBAAiC;E1C4nOvC;E0Cj0OF;IzCwJI,sByCgD8D;E1C4nOhE;E0Cp0OF;IAoMQ,UAAU;IACV,gBAAiC;E1CmoOvC;E0Cx0OF;IzCwJI,sByCgD8D;E1CmoOhE;E0C30OF;IAoMQ,UAAU;IACV,UAAiC;E1C0oOvC;E0C/0OF;IzCwJI,gByCgD8D;E1C0oOhE;E0Cl1OF;IAoMQ,UAAU;IACV,gBAAiC;E1CipOvC;E0Ct1OF;IzCwJI,sByCgD8D;E1CipOhE;E0Cz1OF;IAoMQ,UAAU;IACV,gBAAiC;E1CwpOvC;E0C71OF;IzCwJI,sByCgD8D;E1CwpOhE;E0Ch2OF;IAoMQ,UAAU;IACV,UAAiC;E1C+pOvC;E0Cp2OF;IzCwJI,gByCgD8D;E1C+pOhE;E0Cv2OF;IAoMQ,UAAU;IACV,gBAAiC;E1CsqOvC;E0C32OF;IzCwJI,sByCgD8D;E1CsqOhE;E0C92OF;IAoMQ,UAAU;IACV,gBAAiC;E1C6qOvC;E0Cl3OF;IzCwJI,sByCgD8D;E1C6qOhE;E0Cr3OF;IAoMQ,UAAU;IACV,WAAiC;E1CorOvC;E0Cz3OF;IzCwJI,iByCgD8D;E1CorOhE;AACF;;ACxxOE;EyCrGF;IA2MM,UAAU;IACV,YAAY;E1CurOhB;E0Cn4OF;IA8MM,UAAU;IACV,WAAW;E1CwrOf;E0Cv4OF;IAiNM,UAAU;IACV,UAAU;E1CyrOd;E0C34OF;IAoNM,UAAU;IACV,eAAe;E1C0rOnB;E0C/4OF;IAuNM,UAAU;IACV,UAAU;E1C2rOd;E0Cn5OF;IA0NM,UAAU;IACV,eAAe;E1C4rOnB;E0Cv5OF;IA6NM,UAAU;IACV,UAAU;E1C6rOd;E0C35OF;IAgOM,UAAU;IACV,UAAU;E1C8rOd;E0C/5OF;IAmOM,UAAU;IACV,UAAU;E1C+rOd;E0Cn6OF;IAsOM,UAAU;IACV,UAAU;E1CgsOd;E0Cv6OF;IAyOM,UAAU;IACV,UAAU;E1CisOd;E0C36OF;IzCwJI,gByCoFqC;E1CksOvC;E0C96OF;IzCwJI,qByCsF0C;E1CmsO5C;E0Cj7OF;IzCwJI,gByCwFqC;E1CosOvC;E0Cp7OF;IzCwJI,qByC0F0C;E1CqsO5C;E0Cv7OF;IzCwJI,gByC4FqC;E1CssOvC;E0C17OF;IzCwJI,gByC8FqC;E1CusOvC;E0C77OF;IzCwJI,gByCgGqC;E1CwsOvC;E0Ch8OF;IzCwJI,gByCkGqC;E1CysOvC;E0Cn8OF;IzCwJI,gByCoGqC;E1C0sOvC;E0Ct8OF;IA+PQ,UAAU;IACV,SAAiC;E1C0sOvC;E0C18OF;IzCwJI,eyC0G8D;E1C2sOhE;E0C78OF;IA+PQ,UAAU;IACV,eAAiC;E1CitOvC;E0Cj9OF;IzCwJI,qByC0G8D;E1CktOhE;E0Cp9OF;IA+PQ,UAAU;IACV,gBAAiC;E1CwtOvC;E0Cx9OF;IzCwJI,sByC0G8D;E1CytOhE;E0C39OF;IA+PQ,UAAU;IACV,UAAiC;E1C+tOvC;E0C/9OF;IzCwJI,gByC0G8D;E1CguOhE;E0Cl+OF;IA+PQ,UAAU;IACV,gBAAiC;E1CsuOvC;E0Ct+OF;IzCwJI,sByC0G8D;E1CuuOhE;E0Cz+OF;IA+PQ,UAAU;IACV,gBAAiC;E1C6uOvC;E0C7+OF;IzCwJI,sByC0G8D;E1C8uOhE;E0Ch/OF;IA+PQ,UAAU;IACV,UAAiC;E1CovOvC;E0Cp/OF;IzCwJI,gByC0G8D;E1CqvOhE;E0Cv/OF;IA+PQ,UAAU;IACV,gBAAiC;E1C2vOvC;E0C3/OF;IzCwJI,sByC0G8D;E1C4vOhE;E0C9/OF;IA+PQ,UAAU;IACV,gBAAiC;E1CkwOvC;E0ClgPF;IzCwJI,sByC0G8D;E1CmwOhE;E0CrgPF;IA+PQ,UAAU;IACV,UAAiC;E1CywOvC;E0CzgPF;IzCwJI,gByC0G8D;E1C0wOhE;E0C5gPF;IA+PQ,UAAU;IACV,gBAAiC;E1CgxOvC;E0ChhPF;IzCwJI,sByC0G8D;E1CixOhE;E0CnhPF;IA+PQ,UAAU;IACV,gBAAiC;E1CuxOvC;E0CvhPF;IzCwJI,sByC0G8D;E1CwxOhE;E0C1hPF;IA+PQ,UAAU;IACV,WAAiC;E1C8xOvC;E0C9hPF;IzCwJI,iByC0G8D;E1C+xOhE;AACF;;ACz7OE;EyCzGF;IAqQM,UAAU;IACV,YAAY;E1CkyOhB;E0CxiPF;IAwQM,UAAU;IACV,WAAW;E1CmyOf;E0C5iPF;IA2QM,UAAU;IACV,UAAU;E1CoyOd;E0ChjPF;IA8QM,UAAU;IACV,eAAe;E1CqyOnB;E0CpjPF;IAiRM,UAAU;IACV,UAAU;E1CsyOd;E0CxjPF;IAoRM,UAAU;IACV,eAAe;E1CuyOnB;E0C5jPF;IAuRM,UAAU;IACV,UAAU;E1CwyOd;E0ChkPF;IA0RM,UAAU;IACV,UAAU;E1CyyOd;E0CpkPF;IA6RM,UAAU;IACV,UAAU;E1C0yOd;E0CxkPF;IAgSM,UAAU;IACV,UAAU;E1C2yOd;E0C5kPF;IAmSM,UAAU;IACV,UAAU;E1C4yOd;E0ChlPF;IzCwJI,gByC8IqC;E1C6yOvC;E0CnlPF;IzCwJI,qByCgJ0C;E1C8yO5C;E0CtlPF;IzCwJI,gByCkJqC;E1C+yOvC;E0CzlPF;IzCwJI,qByCoJ0C;E1CgzO5C;E0C5lPF;IzCwJI,gByCsJqC;E1CizOvC;E0C/lPF;IzCwJI,gByCwJqC;E1CkzOvC;E0ClmPF;IzCwJI,gByC0JqC;E1CmzOvC;E0CrmPF;IzCwJI,gByC4JqC;E1CozOvC;E0CxmPF;IzCwJI,gByC8JqC;E1CqzOvC;E0C3mPF;IAyTQ,UAAU;IACV,SAAiC;E1CqzOvC;E0C/mPF;IzCwJI,eyCoK8D;E1CszOhE;E0ClnPF;IAyTQ,UAAU;IACV,eAAiC;E1C4zOvC;E0CtnPF;IzCwJI,qByCoK8D;E1C6zOhE;E0CznPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cm0OvC;E0C7nPF;IzCwJI,sByCoK8D;E1Co0OhE;E0ChoPF;IAyTQ,UAAU;IACV,UAAiC;E1C00OvC;E0CpoPF;IzCwJI,gByCoK8D;E1C20OhE;E0CvoPF;IAyTQ,UAAU;IACV,gBAAiC;E1Ci1OvC;E0C3oPF;IzCwJI,sByCoK8D;E1Ck1OhE;E0C9oPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cw1OvC;E0ClpPF;IzCwJI,sByCoK8D;E1Cy1OhE;E0CrpPF;IAyTQ,UAAU;IACV,UAAiC;E1C+1OvC;E0CzpPF;IzCwJI,gByCoK8D;E1Cg2OhE;E0C5pPF;IAyTQ,UAAU;IACV,gBAAiC;E1Cs2OvC;E0ChqPF;IzCwJI,sByCoK8D;E1Cu2OhE;E0CnqPF;IAyTQ,UAAU;IACV,gBAAiC;E1C62OvC;E0CvqPF;IzCwJI,sByCoK8D;E1C82OhE;E0C1qPF;IAyTQ,UAAU;IACV,UAAiC;E1Co3OvC;E0C9qPF;IzCwJI,gByCoK8D;E1Cq3OhE;E0CjrPF;IAyTQ,UAAU;IACV,gBAAiC;E1C23OvC;E0CrrPF;IzCwJI,sByCoK8D;E1C43OhE;E0CxrPF;IAyTQ,UAAU;IACV,gBAAiC;E1Ck4OvC;E0C5rPF;IzCwJI,sByCoK8D;E1Cm4OhE;E0C/rPF;IAyTQ,UAAU;IACV,WAAiC;E1Cy4OvC;E0CnsPF;IzCwJI,iByCoK8D;E1C04OhE;AACF;;AC/kPI;EyCxHJ;IA+TM,UAAU;IACV,YAAY;E1C64OhB;E0C7sPF;IAkUM,UAAU;IACV,WAAW;E1C84Of;E0CjtPF;IAqUM,UAAU;IACV,UAAU;E1C+4Od;E0CrtPF;IAwUM,UAAU;IACV,eAAe;E1Cg5OnB;E0CztPF;IA2UM,UAAU;IACV,UAAU;E1Ci5Od;E0C7tPF;IA8UM,UAAU;IACV,eAAe;E1Ck5OnB;E0CjuPF;IAiVM,UAAU;IACV,UAAU;E1Cm5Od;E0CruPF;IAoVM,UAAU;IACV,UAAU;E1Co5Od;E0CzuPF;IAuVM,UAAU;IACV,UAAU;E1Cq5Od;E0C7uPF;IA0VM,UAAU;IACV,UAAU;E1Cs5Od;E0CjvPF;IA6VM,UAAU;IACV,UAAU;E1Cu5Od;E0CrvPF;IzCwJI,gByCwMqC;E1Cw5OvC;E0CxvPF;IzCwJI,qByC0M0C;E1Cy5O5C;E0C3vPF;IzCwJI,gByC4MqC;E1C05OvC;E0C9vPF;IzCwJI,qByC8M0C;E1C25O5C;E0CjwPF;IzCwJI,gByCgNqC;E1C45OvC;E0CpwPF;IzCwJI,gByCkNqC;E1C65OvC;E0CvwPF;IzCwJI,gByCoNqC;E1C85OvC;E0C1wPF;IzCwJI,gByCsNqC;E1C+5OvC;E0C7wPF;IzCwJI,gByCwNqC;E1Cg6OvC;E0ChxPF;IAmXQ,UAAU;IACV,SAAiC;E1Cg6OvC;E0CpxPF;IzCwJI,eyC8N8D;E1Ci6OhE;E0CvxPF;IAmXQ,UAAU;IACV,eAAiC;E1Cu6OvC;E0C3xPF;IzCwJI,qByC8N8D;E1Cw6OhE;E0C9xPF;IAmXQ,UAAU;IACV,gBAAiC;E1C86OvC;E0ClyPF;IzCwJI,sByC8N8D;E1C+6OhE;E0CryPF;IAmXQ,UAAU;IACV,UAAiC;E1Cq7OvC;E0CzyPF;IzCwJI,gByC8N8D;E1Cs7OhE;E0C5yPF;IAmXQ,UAAU;IACV,gBAAiC;E1C47OvC;E0ChzPF;IzCwJI,sByC8N8D;E1C67OhE;E0CnzPF;IAmXQ,UAAU;IACV,gBAAiC;E1Cm8OvC;E0CvzPF;IzCwJI,sByC8N8D;E1Co8OhE;E0C1zPF;IAmXQ,UAAU;IACV,UAAiC;E1C08OvC;E0C9zPF;IzCwJI,gByC8N8D;E1C28OhE;E0Cj0PF;IAmXQ,UAAU;IACV,gBAAiC;E1Ci9OvC;E0Cr0PF;IzCwJI,sByC8N8D;E1Ck9OhE;E0Cx0PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cw9OvC;E0C50PF;IzCwJI,sByC8N8D;E1Cy9OhE;E0C/0PF;IAmXQ,UAAU;IACV,UAAiC;E1C+9OvC;E0Cn1PF;IzCwJI,gByC8N8D;E1Cg+OhE;E0Ct1PF;IAmXQ,UAAU;IACV,gBAAiC;E1Cs+OvC;E0C11PF;IzCwJI,sByC8N8D;E1Cu+OhE;E0C71PF;IAmXQ,UAAU;IACV,gBAAiC;E1C6+OvC;E0Cj2PF;IzCwJI,sByC8N8D;E1C8+OhE;E0Cp2PF;IAmXQ,UAAU;IACV,WAAiC;E1Co/OvC;E0Cx2PF;IzCwJI,iByC8N8D;E1Cq/OhE;AACF;;ACruPI;EyCvIJ;IAyXM,UAAU;IACV,YAAY;E1Cw/OhB;E0Cl3PF;IA4XM,UAAU;IACV,WAAW;E1Cy/Of;E0Ct3PF;IA+XM,UAAU;IACV,UAAU;E1C0/Od;E0C13PF;IAkYM,UAAU;IACV,eAAe;E1C2/OnB;E0C93PF;IAqYM,UAAU;IACV,UAAU;E1C4/Od;E0Cl4PF;IAwYM,UAAU;IACV,eAAe;E1C6/OnB;E0Ct4PF;IA2YM,UAAU;IACV,UAAU;E1C8/Od;E0C14PF;IA8YM,UAAU;IACV,UAAU;E1C+/Od;E0C94PF;IAiZM,UAAU;IACV,UAAU;E1CggPd;E0Cl5PF;IAoZM,UAAU;IACV,UAAU;E1CigPd;E0Ct5PF;IAuZM,UAAU;IACV,UAAU;E1CkgPd;E0C15PF;IzCwJI,gByCkQqC;E1CmgPvC;E0C75PF;IzCwJI,qByCoQ0C;E1CogP5C;E0Ch6PF;IzCwJI,gByCsQqC;E1CqgPvC;E0Cn6PF;IzCwJI,qByCwQ0C;E1CsgP5C;E0Ct6PF;IzCwJI,gByC0QqC;E1CugPvC;E0Cz6PF;IzCwJI,gByC4QqC;E1CwgPvC;E0C56PF;IzCwJI,gByC8QqC;E1CygPvC;E0C/6PF;IzCwJI,gByCgRqC;E1C0gPvC;E0Cl7PF;IzCwJI,gByCkRqC;E1C2gPvC;E0Cr7PF;IA6aQ,UAAU;IACV,SAAiC;E1C2gPvC;E0Cz7PF;IzCwJI,eyCwR8D;E1C4gPhE;E0C57PF;IA6aQ,UAAU;IACV,eAAiC;E1CkhPvC;E0Ch8PF;IzCwJI,qByCwR8D;E1CmhPhE;E0Cn8PF;IA6aQ,UAAU;IACV,gBAAiC;E1CyhPvC;E0Cv8PF;IzCwJI,sByCwR8D;E1C0hPhE;E0C18PF;IA6aQ,UAAU;IACV,UAAiC;E1CgiPvC;E0C98PF;IzCwJI,gByCwR8D;E1CiiPhE;E0Cj9PF;IA6aQ,UAAU;IACV,gBAAiC;E1CuiPvC;E0Cr9PF;IzCwJI,sByCwR8D;E1CwiPhE;E0Cx9PF;IA6aQ,UAAU;IACV,gBAAiC;E1C8iPvC;E0C59PF;IzCwJI,sByCwR8D;E1C+iPhE;E0C/9PF;IA6aQ,UAAU;IACV,UAAiC;E1CqjPvC;E0Cn+PF;IzCwJI,gByCwR8D;E1CsjPhE;E0Ct+PF;IA6aQ,UAAU;IACV,gBAAiC;E1C4jPvC;E0C1+PF;IzCwJI,sByCwR8D;E1C6jPhE;E0C7+PF;IA6aQ,UAAU;IACV,gBAAiC;E1CmkPvC;E0Cj/PF;IzCwJI,sByCwR8D;E1CokPhE;E0Cp/PF;IA6aQ,UAAU;IACV,UAAiC;E1C0kPvC;E0Cx/PF;IzCwJI,gByCwR8D;E1C2kPhE;E0C3/PF;IA6aQ,UAAU;IACV,gBAAiC;E1CilPvC;E0C//PF;IzCwJI,sByCwR8D;E1CklPhE;E0ClgQF;IA6aQ,UAAU;IACV,gBAAiC;E1CwlPvC;E0CtgQF;IzCwJI,sByCwR8D;E1CylPhE;E0CzgQF;IA6aQ,UAAU;IACV,WAAiC;E1C+lPvC;E0C7gQF;IzCwJI,iByCwR8D;E1CgmPhE;AACF;;A0C/lPA;EzC1RI,qByC1JgB;EzC0JhB,sByC1JgB;EAublB,oBAvbkB;A1CyhQpB;;A0CrmPA;EAKI,uBAzbgB;A1C6hQpB;;A0CzmPA;EAOI,qCAA4C;A1CsmPhD;;A0C7mPA;EAUI,uBAAuB;A1CumP3B;;A0CjnPA;EzC1RI,cyCsSiC;EzCtSjC,eyCuSiC;EACjC,aAAa;A1CymPjB;;A0CvnPA;EAgBM,SAAS;EACT,qBAAqB;A1C2mP3B;;A0C5nPA;EAmBM,qBAAqB;A1C6mP3B;;A0ChoPA;EAqBM,gBAAgB;A1C+mPtB;;A0CpoPA;EAuBI,aAAa;A1CinPjB;;A0CxoPA;EAyBI,eAAe;A1CmnPnB;;A0C5oPA;EA2BI,mBAAmB;A1CqnPvB;;ACr+PE;EyCqVF;IA+BM,aAAa;E1CsnPjB;AACF;;AC/9PE;EyCyUF;IAmCM,aAAa;E1CwnPjB;AACF;;A0CtnPE;EACE,oBAAY;EzCjUZ,wCyCkU2D;EzClU3D,yCyCmU2D;A1CynP/D;;A0C5nPE;EAKI,8BAA8B;EAC9B,+BAA+B;A1C2nPrC;;A0CjoPE;EASM,iBAAY;A1C4nPpB;;ACpgQE;EyC+XA;IAYQ,iBAAY;E1C8nPpB;AACF;;ACtgQE;EyC2XA;IAeQ,iBAAY;E1CioPpB;AACF;;ACxgQE;EyCuXA;IAkBQ,iBAAY;E1CooPpB;AACF;;AC1gQE;EyCmXA;IAqBQ,iBAAY;E1CuoPpB;AACF;;AC5gQE;EyC+WA;IAwBQ,iBAAY;E1C0oPpB;AACF;;AC7gQI;EyC0WF;IA2BQ,iBAAY;E1C6oPpB;AACF;;ACzgQI;EyCgWF;IA8BQ,iBAAY;E1CgpPpB;AACF;;AC1gQI;EyC2VF;IAiCQ,iBAAY;E1CmpPpB;AACF;;ACtgQI;EyCiVF;IAoCQ,iBAAY;E1CspPpB;AACF;;A0C3rPE;EASM,oBAAY;A1CsrPpB;;AC9jQE;EyC+XA;IAYQ,oBAAY;E1CwrPpB;AACF;;AChkQE;EyC2XA;IAeQ,oBAAY;E1C2rPpB;AACF;;AClkQE;EyCuXA;IAkBQ,oBAAY;E1C8rPpB;AACF;;ACpkQE;EyCmXA;IAqBQ,oBAAY;E1CisPpB;AACF;;ACtkQE;EyC+WA;IAwBQ,oBAAY;E1CosPpB;AACF;;ACvkQI;EyC0WF;IA2BQ,oBAAY;E1CusPpB;AACF;;ACnkQI;EyCgWF;IA8BQ,oBAAY;E1C0sPpB;AACF;;ACpkQI;EyC2VF;IAiCQ,oBAAY;E1C6sPpB;AACF;;AChkQI;EyCiVF;IAoCQ,oBAAY;E1CgtPpB;AACF;;A0CrvPE;EASM,mBAAY;A1CgvPpB;;ACxnQE;EyC+XA;IAYQ,mBAAY;E1CkvPpB;AACF;;AC1nQE;EyC2XA;IAeQ,mBAAY;E1CqvPpB;AACF;;AC5nQE;EyCuXA;IAkBQ,mBAAY;E1CwvPpB;AACF;;AC9nQE;EyCmXA;IAqBQ,mBAAY;E1C2vPpB;AACF;;AChoQE;EyC+WA;IAwBQ,mBAAY;E1C8vPpB;AACF;;ACjoQI;EyC0WF;IA2BQ,mBAAY;E1CiwPpB;AACF;;AC7nQI;EyCgWF;IA8BQ,mBAAY;E1CowPpB;AACF;;AC9nQI;EyC2VF;IAiCQ,mBAAY;E1CuwPpB;AACF;;AC1nQI;EyCiVF;IAoCQ,mBAAY;E1C0wPpB;AACF;;A0C/yPE;EASM,oBAAY;A1C0yPpB;;AClrQE;EyC+XA;IAYQ,oBAAY;E1C4yPpB;AACF;;ACprQE;EyC2XA;IAeQ,oBAAY;E1C+yPpB;AACF;;ACtrQE;EyCuXA;IAkBQ,oBAAY;E1CkzPpB;AACF;;ACxrQE;EyCmXA;IAqBQ,oBAAY;E1CqzPpB;AACF;;AC1rQE;EyC+WA;IAwBQ,oBAAY;E1CwzPpB;AACF;;AC3rQI;EyC0WF;IA2BQ,oBAAY;E1C2zPpB;AACF;;ACvrQI;EyCgWF;IA8BQ,oBAAY;E1C8zPpB;AACF;;ACxrQI;EyC2VF;IAiCQ,oBAAY;E1Ci0PpB;AACF;;ACprQI;EyCiVF;IAoCQ,oBAAY;E1Co0PpB;AACF;;A0Cz2PE;EASM,iBAAY;A1Co2PpB;;AC5uQE;EyC+XA;IAYQ,iBAAY;E1Cs2PpB;AACF;;AC9uQE;EyC2XA;IAeQ,iBAAY;E1Cy2PpB;AACF;;AChvQE;EyCuXA;IAkBQ,iBAAY;E1C42PpB;AACF;;AClvQE;EyCmXA;IAqBQ,iBAAY;E1C+2PpB;AACF;;ACpvQE;EyC+WA;IAwBQ,iBAAY;E1Ck3PpB;AACF;;ACrvQI;EyC0WF;IA2BQ,iBAAY;E1Cq3PpB;AACF;;ACjvQI;EyCgWF;IA8BQ,iBAAY;E1Cw3PpB;AACF;;AClvQI;EyC2VF;IAiCQ,iBAAY;E1C23PpB;AACF;;AC9uQI;EyCiVF;IAoCQ,iBAAY;E1C83PpB;AACF;;A0Cn6PE;EASM,oBAAY;A1C85PpB;;ACtyQE;EyC+XA;IAYQ,oBAAY;E1Cg6PpB;AACF;;ACxyQE;EyC2XA;IAeQ,oBAAY;E1Cm6PpB;AACF;;AC1yQE;EyCuXA;IAkBQ,oBAAY;E1Cs6PpB;AACF;;AC5yQE;EyCmXA;IAqBQ,oBAAY;E1Cy6PpB;AACF;;AC9yQE;EyC+WA;IAwBQ,oBAAY;E1C46PpB;AACF;;AC/yQI;EyC0WF;IA2BQ,oBAAY;E1C+6PpB;AACF;;AC3yQI;EyCgWF;IA8BQ,oBAAY;E1Ck7PpB;AACF;;AC5yQI;EyC2VF;IAiCQ,oBAAY;E1Cq7PpB;AACF;;ACxyQI;EyCiVF;IAoCQ,oBAAY;E1Cw7PpB;AACF;;A0C79PE;EASM,mBAAY;A1Cw9PpB;;ACh2QE;EyC+XA;IAYQ,mBAAY;E1C09PpB;AACF;;ACl2QE;EyC2XA;IAeQ,mBAAY;E1C69PpB;AACF;;ACp2QE;EyCuXA;IAkBQ,mBAAY;E1Cg+PpB;AACF;;ACt2QE;EyCmXA;IAqBQ,mBAAY;E1Cm+PpB;AACF;;ACx2QE;EyC+WA;IAwBQ,mBAAY;E1Cs+PpB;AACF;;ACz2QI;EyC0WF;IA2BQ,mBAAY;E1Cy+PpB;AACF;;ACr2QI;EyCgWF;IA8BQ,mBAAY;E1C4+PpB;AACF;;ACt2QI;EyC2VF;IAiCQ,mBAAY;E1C++PpB;AACF;;ACl2QI;EyCiVF;IAoCQ,mBAAY;E1Ck/PpB;AACF;;A0CvhQE;EASM,oBAAY;A1CkhQpB;;AC15QE;EyC+XA;IAYQ,oBAAY;E1CohQpB;AACF;;AC55QE;EyC2XA;IAeQ,oBAAY;E1CuhQpB;AACF;;AC95QE;EyCuXA;IAkBQ,oBAAY;E1C0hQpB;AACF;;ACh6QE;EyCmXA;IAqBQ,oBAAY;E1C6hQpB;AACF;;ACl6QE;EyC+WA;IAwBQ,oBAAY;E1CgiQpB;AACF;;ACn6QI;EyC0WF;IA2BQ,oBAAY;E1CmiQpB;AACF;;AC/5QI;EyCgWF;IA8BQ,oBAAY;E1CsiQpB;AACF;;ACh6QI;EyC2VF;IAiCQ,oBAAY;E1CyiQpB;AACF;;AC55QI;EyCiVF;IAoCQ,oBAAY;E1C4iQpB;AACF;;A0CjlQE;EASM,iBAAY;A1C4kQpB;;ACp9QE;EyC+XA;IAYQ,iBAAY;E1C8kQpB;AACF;;ACt9QE;EyC2XA;IAeQ,iBAAY;E1CilQpB;AACF;;ACx9QE;EyCuXA;IAkBQ,iBAAY;E1ColQpB;AACF;;AC19QE;EyCmXA;IAqBQ,iBAAY;E1CulQpB;AACF;;AC59QE;EyC+WA;IAwBQ,iBAAY;E1C0lQpB;AACF;;AC79QI;EyC0WF;IA2BQ,iBAAY;E1C6lQpB;AACF;;ACz9QI;EyCgWF;IA8BQ,iBAAY;E1CgmQpB;AACF;;AC19QI;EyC2VF;IAiCQ,iBAAY;E1CmmQpB;AACF;;ACt9QI;EyCiVF;IAoCQ,iBAAY;E1CsmQpB;AACF;;A2CnmRA;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,+BAAuB;EAAvB,4BAAuB;EAAvB,uBAAuB;A3CsmRzB;;A2C5mRA;EASI,qBAA+B;EAC/B,sBAAgC;EAChC,oBAA8B;A3CumRlC;;A2ClnRA;EAaM,uBAAiC;A3CymRvC;;A2CtnRA;EAeM,sBAjBgB;A3C4nRtB;;A2C1nRA;EAiBI,oBAAoB;A3C6mRxB;;A2C9nRA;EAmBI,gBArBkB;A3CooRtB;;A2CloRA;EAqBI,sBAAsB;A3CinR1B;;A2CtoRA;EAuBM,gCAAgC;A3CmnRtC;;AC7iRE;E0C7FF;IA2BM,aAAa;E3ConRjB;E2C/oRF;IA8BQ,UAAU;IACV,eAA8B;E3ConRpC;E2CnpRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwnRpC;E2CvpRF;IA8BQ,UAAU;IACV,UAA8B;E3C4nRpC;E2C3pRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgoRpC;E2C/pRF;IA8BQ,UAAU;IACV,gBAA8B;E3CooRpC;E2CnqRF;IA8BQ,UAAU;IACV,UAA8B;E3CwoRpC;E2CvqRF;IA8BQ,UAAU;IACV,gBAA8B;E3C4oRpC;E2C3qRF;IA8BQ,UAAU;IACV,gBAA8B;E3CgpRpC;E2C/qRF;IA8BQ,UAAU;IACV,UAA8B;E3CopRpC;E2CnrRF;IA8BQ,UAAU;IACV,gBAA8B;E3CwpRpC;E2CvrRF;IA8BQ,UAAU;IACV,gBAA8B;E3C4pRpC;E2C3rRF;IA8BQ,UAAU;IACV,WAA8B;E3CgqRpC;AACF;;A4CpsRA,kBAAA;ACIE;EACE,uBAAwB;A7CosR5B;;A6CnsRE;EAGI,yBAA0C;A7CosRhD;;A6CnsRE;EACE,kCAAmC;A7CssRvC;;A6C7sRE;EACE,yBAAwB;A7CgtR5B;;A6C/sRE;EAGI,uBAA0C;A7CgtRhD;;A6C/sRE;EACE,oCAAmC;A7CktRvC;;A6CztRE;EACE,4BAAwB;A7C4tR5B;;A6C3tRE;EAGI,yBAA0C;A7C4tRhD;;A6C3tRE;EACE,uCAAmC;A7C8tRvC;;A6CruRE;EACE,yBAAwB;A7CwuR5B;;A6CvuRE;EAGI,yBAA0C;A7CwuRhD;;A6CvuRE;EACE,oCAAmC;A7C0uRvC;;A6CjvRE;EACE,yBAAwB;A7CovR5B;;A6CnvRE;EAGI,yBAA0C;A7CovRhD;;A6CnvRE;EACE,oCAAmC;A7CsvRvC;;A6CjvRI;EACE,yBAA8B;A7CovRpC;;A6CnvRI;EAGI,yBAAgD;A7CovRxD;;A6CnvRI;EACE,oCAAyC;A7CsvR/C;;A6CpvRI;EACE,yBAA6B;A7CuvRnC;;A6CtvRI;EAGI,yBAAgD;A7CuvRxD;;A6CtvRI;EACE,oCAAwC;A7CyvR9C;;A6CrxRE;EACE,yBAAwB;A7CwxR5B;;A6CvxRE;EAGI,yBAA0C;A7CwxRhD;;A6CvxRE;EACE,oCAAmC;A7C0xRvC;;A6CrxRI;EACE,yBAA8B;A7CwxRpC;;A6CvxRI;EAGI,yBAAgD;A7CwxRxD;;A6CvxRI;EACE,oCAAyC;A7C0xR/C;;A6CxxRI;EACE,yBAA6B;A7C2xRnC;;A6C1xRI;EAGI,yBAAgD;A7C2xRxD;;A6C1xRI;EACE,oCAAwC;A7C6xR9C;;A6CzzRE;EACE,yBAAwB;A7C4zR5B;;A6C3zRE;EAGI,yBAA0C;A7C4zRhD;;A6C3zRE;EACE,oCAAmC;A7C8zRvC;;A6CzzRI;EACE,yBAA8B;A7C4zRpC;;A6C3zRI;EAGI,yBAAgD;A7C4zRxD;;A6C3zRI;EACE,oCAAyC;A7C8zR/C;;A6C5zRI;EACE,yBAA6B;A7C+zRnC;;A6C9zRI;EAGI,yBAAgD;A7C+zRxD;;A6C9zRI;EACE,oCAAwC;A7Ci0R9C;;A6C71RE;EACE,yBAAwB;A7Cg2R5B;;A6C/1RE;EAGI,yBAA0C;A7Cg2RhD;;A6C/1RE;EACE,oCAAmC;A7Ck2RvC;;A6C71RI;EACE,yBAA8B;A7Cg2RpC;;A6C/1RI;EAGI,yBAAgD;A7Cg2RxD;;A6C/1RI;EACE,oCAAyC;A7Ck2R/C;;A6Ch2RI;EACE,yBAA6B;A7Cm2RnC;;A6Cl2RI;EAGI,yBAAgD;A7Cm2RxD;;A6Cl2RI;EACE,oCAAwC;A7Cq2R9C;;A6Cj4RE;EACE,yBAAwB;A7Co4R5B;;A6Cn4RE;EAGI,yBAA0C;A7Co4RhD;;A6Cn4RE;EACE,oCAAmC;A7Cs4RvC;;A6Cj4RI;EACE,yBAA8B;A7Co4RpC;;A6Cn4RI;EAGI,yBAAgD;A7Co4RxD;;A6Cn4RI;EACE,oCAAyC;A7Cs4R/C;;A6Cp4RI;EACE,yBAA6B;A7Cu4RnC;;A6Ct4RI;EAGI,yBAAgD;A7Cu4RxD;;A6Ct4RI;EACE,oCAAwC;A7Cy4R9C;;A6Cr6RE;EACE,yBAAwB;A7Cw6R5B;;A6Cv6RE;EAGI,yBAA0C;A7Cw6RhD;;A6Cv6RE;EACE,oCAAmC;A7C06RvC;;A6Cr6RI;EACE,yBAA8B;A7Cw6RpC;;A6Cv6RI;EAGI,yBAAgD;A7Cw6RxD;;A6Cv6RI;EACE,oCAAyC;A7C06R/C;;A6Cx6RI;EACE,yBAA6B;A7C26RnC;;A6C16RI;EAGI,yBAAgD;A7C26RxD;;A6C16RI;EACE,oCAAwC;A7C66R9C;;A6C16RE;EACE,yBAAwB;A7C66R5B;;A6C56RE;EACE,oCAAmC;A7C+6RvC;;A6Cl7RE;EACE,yBAAwB;A7Cq7R5B;;A6Cp7RE;EACE,oCAAmC;A7Cu7RvC;;A6C17RE;EACE,yBAAwB;A7C67R5B;;A6C57RE;EACE,oCAAmC;A7C+7RvC;;A6Cl8RE;EACE,yBAAwB;A7Cq8R5B;;A6Cp8RE;EACE,oCAAmC;A7Cu8RvC;;A6C18RE;EACE,yBAAwB;A7C68R5B;;A6C58RE;EACE,oCAAmC;A7C+8RvC;;A6Cl9RE;EACE,yBAAwB;A7Cq9R5B;;A6Cp9RE;EACE,oCAAmC;A7Cu9RvC;;A6C19RE;EACE,yBAAwB;A7C69R5B;;A6C59RE;EACE,oCAAmC;A7C+9RvC;;A6Cl+RE;EACE,4BAAwB;A7Cq+R5B;;A6Cp+RE;EACE,uCAAmC;A7Cu+RvC;;A6C1+RE;EACE,yBAAwB;A7C6+R5B;;A6C5+RE;EACE,oCAAmC;A7C++RvC;;A8CnhSE;EACE,8BAAiC;A9CshSrC;;A8CvhSE;EACE,sCAAiC;A9C0hSrC;;A8C3hSE;EACE,iCAAiC;A9C8hSrC;;A8C/hSE;EACE,yCAAiC;A9CkiSrC;;A8C9hSE;EACE,4BAA4B;A9CiiShC;;A8CliSE;EACE,0BAA4B;A9CqiShC;;A8CtiSE;EACE,kCAA4B;A9CyiShC;;A8CriSE;EACE,sCAAkC;A9CwiStC;;A8CziSE;EACE,oCAAkC;A9C4iStC;;A8C7iSE;EACE,kCAAkC;A9CgjStC;;A8CjjSE;EACE,yCAAkC;A9CojStC;;A8CrjSE;EACE,wCAAkC;A9CwjStC;;A8CzjSE;EACE,wCAAkC;A9C4jStC;;A8C7jSE;EACE,iCAAkC;A9CgkStC;;A8CjkSE;EACE,+BAAkC;A9CokStC;;A8CrkSE;EACE,gCAAkC;A9CwkStC;;A8CzkSE;EACE,iCAAkC;A9C4kStC;;A8CxkSE;EACE,oCAAgC;A9C2kSpC;;A8C5kSE;EACE,kCAAgC;A9C+kSpC;;A8ChlSE;EACE,gCAAgC;A9CmlSpC;;A8CplSE;EACE,uCAAgC;A9CulSpC;;A8CxlSE;EACE,sCAAgC;A9C2lSpC;;A8C5lSE;EACE,sCAAgC;A9C+lSpC;;A8ChmSE;EACE,iCAAgC;A9CmmSpC;;A8CpmSE;EACE,+BAAgC;A9CumSpC;;A8CxmSE;EACE,6BAAgC;A9C2mSpC;;A8C5mSE;EACE,kCAAgC;A9C+mSpC;;A8C3mSE;EACE,+BAA8B;A9C8mSlC;;A8C/mSE;EACE,kCAA8B;A9CknSlC;;A8CnnSE;EACE,gCAA8B;A9CsnSlC;;A8CvnSE;EACE,8BAA8B;A9C0nSlC;;A8C3nSE;EACE,gCAA8B;A9C8nSlC;;A8C/nSE;EACE,6BAA8B;A9CkoSlC;;A8CnoSE;EACE,2BAA8B;A9CsoSlC;;A8CvoSE;EACE,kCAA8B;A9C0oSlC;;A8C3oSE;EACE,gCAA8B;A9C8oSlC;;A8C1oSE;EACE,2BAA6B;A9C6oSjC;;A8C9oSE;EACE,iCAA6B;A9CipSjC;;A8ClpSE;EACE,+BAA6B;A9CqpSjC;;A8CtpSE;EACE,6BAA6B;A9CypSjC;;A8C1pSE;EACE,+BAA6B;A9C6pSjC;;A8C9pSE;EACE,8BAA6B;A9CiqSjC;;A8C5pSI;EACE,uBAAqC;A9C+pS3C;;A8ChqSI;EACE,uBAAqC;A9CmqS3C;;A8CpqSI;EACE,uBAAqC;A9CuqS3C;;A8CxqSI;EACE,uBAAqC;A9C2qS3C;;A8C5qSI;EACE,uBAAqC;A9C+qS3C;;A8ChrSI;EACE,uBAAqC;A9CmrS3C;;A8CprSI;EACE,yBAAqC;A9CurS3C;;A8CxrSI;EACE,yBAAqC;A9C2rS3C;;A8C5rSI;EACE,yBAAqC;A9C+rS3C;;A8ChsSI;EACE,yBAAqC;A9CmsS3C;;A8CpsSI;EACE,yBAAqC;A9CusS3C;;A8CxsSI;EACE,yBAAqC;A9C2sS3C;;AC1uSE;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AD6uSlB;;A+C9uSA;EACE,sBAAsB;A/CivSxB;;A+C/uSA;EACE,uBAAuB;A/CkvSzB;;AgDzvSA;EACE,2BAA2B;AhD4vS7B;;AgD1vSA;EACE,2BAA2B;AhD6vS7B;;AgD3vSA;EACE,0BAA0B;EAC1B,8BAA8B;AhD8vShC;;AiDxwSA;EACE,2BAA2B;AjD2wS7B;;AkDvwSA;EACE,6BAA6B;AlD0wS/B;;AmDhxSA;EACE,oBAAoB;AnDmxStB;;AmDjxSA;EACE,qBAAqB;AnDoxSvB;;AmDzwSI;EACE,oBAA+B;AnD4wSrC;;AmDzwSM;EACE,wBAA8C;AnD4wStD;;AmD7wSM;EACE,0BAA8C;AnDgxStD;;AmDjxSM;EACE,2BAA8C;AnDoxStD;;AmDrxSM;EACE,yBAA8C;AnDwxStD;;AmDrxSM;EACE,yBAAyC;EACzC,0BAA2C;AnDwxSnD;;AmDrxSM;EACE,wBAAuC;EACvC,2BAA6C;AnDwxSrD;;AmDvySI;EACE,0BAA+B;AnD0ySrC;;AmDvySM;EACE,8BAA8C;AnD0yStD;;AmD3ySM;EACE,gCAA8C;AnD8yStD;;AmD/ySM;EACE,iCAA8C;AnDkzStD;;AmDnzSM;EACE,+BAA8C;AnDszStD;;AmDnzSM;EACE,+BAAyC;EACzC,gCAA2C;AnDszSnD;;AmDnzSM;EACE,8BAAuC;EACvC,iCAA6C;AnDszSrD;;AmDr0SI;EACE,yBAA+B;AnDw0SrC;;AmDr0SM;EACE,6BAA8C;AnDw0StD;;AmDz0SM;EACE,+BAA8C;AnD40StD;;AmD70SM;EACE,gCAA8C;AnDg1StD;;AmDj1SM;EACE,8BAA8C;AnDo1StD;;AmDj1SM;EACE,8BAAyC;EACzC,+BAA2C;AnDo1SnD;;AmDj1SM;EACE,6BAAuC;EACvC,gCAA6C;AnDo1SrD;;AmDn2SI;EACE,0BAA+B;AnDs2SrC;;AmDn2SM;EACE,8BAA8C;AnDs2StD;;AmDv2SM;EACE,gCAA8C;AnD02StD;;AmD32SM;EACE,iCAA8C;AnD82StD;;AmD/2SM;EACE,+BAA8C;AnDk3StD;;AmD/2SM;EACE,+BAAyC;EACzC,gCAA2C;AnDk3SnD;;AmD/2SM;EACE,8BAAuC;EACvC,iCAA6C;AnDk3SrD;;AmDj4SI;EACE,uBAA+B;AnDo4SrC;;AmDj4SM;EACE,2BAA8C;AnDo4StD;;AmDr4SM;EACE,6BAA8C;AnDw4StD;;AmDz4SM;EACE,8BAA8C;AnD44StD;;AmD74SM;EACE,4BAA8C;AnDg5StD;;AmD74SM;EACE,4BAAyC;EACzC,6BAA2C;AnDg5SnD;;AmD74SM;EACE,2BAAuC;EACvC,8BAA6C;AnDg5SrD;;AmD/5SI;EACE,yBAA+B;AnDk6SrC;;AmD/5SM;EACE,6BAA8C;AnDk6StD;;AmDn6SM;EACE,+BAA8C;AnDs6StD;;AmDv6SM;EACE,gCAA8C;AnD06StD;;AmD36SM;EACE,8BAA8C;AnD86StD;;AmD36SM;EACE,8BAAyC;EACzC,+BAA2C;AnD86SnD;;AmD36SM;EACE,6BAAuC;EACvC,gCAA6C;AnD86SrD;;AmD77SI;EACE,uBAA+B;AnDg8SrC;;AmD77SM;EACE,2BAA8C;AnDg8StD;;AmDj8SM;EACE,6BAA8C;AnDo8StD;;AmDr8SM;EACE,8BAA8C;AnDw8StD;;AmDz8SM;EACE,4BAA8C;AnD48StD;;AmDz8SM;EACE,4BAAyC;EACzC,6BAA2C;AnD48SnD;;AmDz8SM;EACE,2BAAuC;EACvC,8BAA6C;AnD48SrD;;AmD39SI;EACE,uBAA+B;AnD89SrC;;AmD39SM;EACE,2BAA8C;AnD89StD;;AmD/9SM;EACE,6BAA8C;AnDk+StD;;AmDn+SM;EACE,8BAA8C;AnDs+StD;;AmDv+SM;EACE,4BAA8C;AnD0+StD;;AmDv+SM;EACE,4BAAyC;EACzC,6BAA2C;AnD0+SnD;;AmDv+SM;EACE,2BAAuC;EACvC,8BAA6C;AnD0+SrD;;AmDz/SI;EACE,qBAA+B;AnD4/SrC;;AmDz/SM;EACE,yBAA8C;AnD4/StD;;AmD7/SM;EACE,2BAA8C;AnDggTtD;;AmDjgTM;EACE,4BAA8C;AnDogTtD;;AmDrgTM;EACE,0BAA8C;AnDwgTtD;;AmDrgTM;EACE,0BAAyC;EACzC,2BAA2C;AnDwgTnD;;AmDrgTM;EACE,yBAAuC;EACvC,4BAA6C;AnDwgTrD;;AmDvhTI;EACE,2BAA+B;AnD0hTrC;;AmDvhTM;EACE,+BAA8C;AnD0hTtD;;AmD3hTM;EACE,iCAA8C;AnD8hTtD;;AmD/hTM;EACE,kCAA8C;AnDkiTtD;;AmDniTM;EACE,gCAA8C;AnDsiTtD;;AmDniTM;EACE,gCAAyC;EACzC,iCAA2C;AnDsiTnD;;AmDniTM;EACE,+BAAuC;EACvC,kCAA6C;AnDsiTrD;;AmDrjTI;EACE,0BAA+B;AnDwjTrC;;AmDrjTM;EACE,8BAA8C;AnDwjTtD;;AmDzjTM;EACE,gCAA8C;AnD4jTtD;;AmD7jTM;EACE,iCAA8C;AnDgkTtD;;AmDjkTM;EACE,+BAA8C;AnDokTtD;;AmDjkTM;EACE,+BAAyC;EACzC,gCAA2C;AnDokTnD;;AmDjkTM;EACE,8BAAuC;EACvC,iCAA6C;AnDokTrD;;AmDnlTI;EACE,2BAA+B;AnDslTrC;;AmDnlTM;EACE,+BAA8C;AnDslTtD;;AmDvlTM;EACE,iCAA8C;AnD0lTtD;;AmD3lTM;EACE,kCAA8C;AnD8lTtD;;AmD/lTM;EACE,gCAA8C;AnDkmTtD;;AmD/lTM;EACE,gCAAyC;EACzC,iCAA2C;AnDkmTnD;;AmD/lTM;EACE,+BAAuC;EACvC,kCAA6C;AnDkmTrD;;AmDjnTI;EACE,wBAA+B;AnDonTrC;;AmDjnTM;EACE,4BAA8C;AnDonTtD;;AmDrnTM;EACE,8BAA8C;AnDwnTtD;;AmDznTM;EACE,+BAA8C;AnD4nTtD;;AmD7nTM;EACE,6BAA8C;AnDgoTtD;;AmD7nTM;EACE,6BAAyC;EACzC,8BAA2C;AnDgoTnD;;AmD7nTM;EACE,4BAAuC;EACvC,+BAA6C;AnDgoTrD;;AmD/oTI;EACE,0BAA+B;AnDkpTrC;;AmD/oTM;EACE,8BAA8C;AnDkpTtD;;AmDnpTM;EACE,gCAA8C;AnDspTtD;;AmDvpTM;EACE,iCAA8C;AnD0pTtD;;AmD3pTM;EACE,+BAA8C;AnD8pTtD;;AmD3pTM;EACE,+BAAyC;EACzC,gCAA2C;AnD8pTnD;;AmD3pTM;EACE,8BAAuC;EACvC,iCAA6C;AnD8pTrD;;AmD7qTI;EACE,wBAA+B;AnDgrTrC;;AmD7qTM;EACE,4BAA8C;AnDgrTtD;;AmDjrTM;EACE,8BAA8C;AnDorTtD;;AmDrrTM;EACE,+BAA8C;AnDwrTtD;;AmDzrTM;EACE,6BAA8C;AnD4rTtD;;AmDzrTM;EACE,6BAAyC;EACzC,8BAA2C;AnD4rTnD;;AmDzrTM;EACE,4BAAuC;EACvC,+BAA6C;AnD4rTrD;;AmD3sTI;EACE,wBAA+B;AnD8sTrC;;AmD3sTM;EACE,4BAA8C;AnD8sTtD;;AmD/sTM;EACE,8BAA8C;AnDktTtD;;AmDntTM;EACE,+BAA8C;AnDstTtD;;AmDvtTM;EACE,6BAA8C;AnD0tTtD;;AmDvtTM;EACE,6BAAyC;EACzC,8BAA2C;AnD0tTnD;;AmDvtTM;EACE,4BAAuC;EACvC,+BAA6C;AnD0tTrD;;AoDnvTI;EACE,0BAA2B;ApDsvTjC;;AoDvvTI;EACE,4BAA2B;ApD0vTjC;;AoD3vTI;EACE,0BAA2B;ApD8vTjC;;AoD/vTI;EACE,4BAA2B;ApDkwTjC;;AoDnwTI;EACE,6BAA2B;ApDswTjC;;AoDvwTI;EACE,0BAA2B;ApD0wTjC;;AoD3wTI;EACE,6BAA2B;ApD8wTjC;;ACvrTE;EmDxFE;IACE,0BAA2B;EpDmxT/B;EoDpxTE;IACE,4BAA2B;EpDsxT/B;EoDvxTE;IACE,0BAA2B;EpDyxT/B;EoD1xTE;IACE,4BAA2B;EpD4xT/B;EoD7xTE;IACE,6BAA2B;EpD+xT/B;EoDhyTE;IACE,0BAA2B;EpDkyT/B;EoDnyTE;IACE,6BAA2B;EpDqyT/B;AACF;;AC3sTE;EmD5FE;IACE,0BAA2B;EpD2yT/B;EoD5yTE;IACE,4BAA2B;EpD8yT/B;EoD/yTE;IACE,0BAA2B;EpDizT/B;EoDlzTE;IACE,4BAA2B;EpDozT/B;EoDrzTE;IACE,6BAA2B;EpDuzT/B;EoDxzTE;IACE,0BAA2B;EpD0zT/B;EoD3zTE;IACE,6BAA2B;EpD6zT/B;AACF;;AC3tTE;EmDpGE;IACE,0BAA2B;EpDm0T/B;EoDp0TE;IACE,4BAA2B;EpDs0T/B;EoDv0TE;IACE,0BAA2B;EpDy0T/B;EoD10TE;IACE,4BAA2B;EpD40T/B;EoD70TE;IACE,6BAA2B;EpD+0T/B;EoDh1TE;IACE,0BAA2B;EpDk1T/B;EoDn1TE;IACE,6BAA2B;EpDq1T/B;AACF;;AC/uTE;EmDxGE;IACE,0BAA2B;EpD21T/B;EoD51TE;IACE,4BAA2B;EpD81T/B;EoD/1TE;IACE,0BAA2B;EpDi2T/B;EoDl2TE;IACE,4BAA2B;EpDo2T/B;EoDr2TE;IACE,6BAA2B;EpDu2T/B;EoDx2TE;IACE,0BAA2B;EpD02T/B;EoD32TE;IACE,6BAA2B;EpD62T/B;AACF;;ACxvTI;EmDvHA;IACE,0BAA2B;EpDm3T/B;EoDp3TE;IACE,4BAA2B;EpDs3T/B;EoDv3TE;IACE,0BAA2B;EpDy3T/B;EoD13TE;IACE,4BAA2B;EpD43T/B;EoD73TE;IACE,6BAA2B;EpD+3T/B;EoDh4TE;IACE,0BAA2B;EpDk4T/B;EoDn4TE;IACE,6BAA2B;EpDq4T/B;AACF;;ACjwTI;EmDtIA;IACE,0BAA2B;EpD24T/B;EoD54TE;IACE,4BAA2B;EpD84T/B;EoD/4TE;IACE,0BAA2B;EpDi5T/B;EoDl5TE;IACE,4BAA2B;EpDo5T/B;EoDr5TE;IACE,6BAA2B;EpDu5T/B;EoDx5TE;IACE,0BAA2B;EpD05T/B;EoD35TE;IACE,6BAA2B;EpD65T/B;AACF;;AoDr4TE;EACE,6BAAqC;ApDw4TzC;;AoDz4TE;EACE,8BAAqC;ApD44TzC;;AoD74TE;EACE,2BAAqC;ApDg5TzC;;AoDj5TE;EACE,4BAAqC;ApDo5TzC;;ACv1TE;EmDzDE;IACE,6BAAqC;EpDo5TzC;AACF;;ACz1TE;EmD1DE;IACE,6BAAqC;EpDu5TzC;AACF;;AC31TE;EmD3DE;IACE,6BAAqC;EpD05TzC;AACF;;AC71TE;EmD5DE;IACE,6BAAqC;EpD65TzC;AACF;;AC/1TE;EmD7DE;IACE,6BAAqC;EpDg6TzC;AACF;;ACh2TI;EmD/DA;IACE,6BAAqC;EpDm6TzC;AACF;;AC51TI;EmDtEA;IACE,6BAAqC;EpDs6TzC;AACF;;AC71TI;EmDxEA;IACE,6BAAqC;EpDy6TzC;AACF;;ACz1TI;EmD/EA;IACE,6BAAqC;EpD46TzC;AACF;;AC74TE;EmDzDE;IACE,8BAAqC;EpD08TzC;AACF;;AC/4TE;EmD1DE;IACE,8BAAqC;EpD68TzC;AACF;;ACj5TE;EmD3DE;IACE,8BAAqC;EpDg9TzC;AACF;;ACn5TE;EmD5DE;IACE,8BAAqC;EpDm9TzC;AACF;;ACr5TE;EmD7DE;IACE,8BAAqC;EpDs9TzC;AACF;;ACt5TI;EmD/DA;IACE,8BAAqC;EpDy9TzC;AACF;;ACl5TI;EmDtEA;IACE,8BAAqC;EpD49TzC;AACF;;ACn5TI;EmDxEA;IACE,8BAAqC;EpD+9TzC;AACF;;AC/4TI;EmD/EA;IACE,8BAAqC;EpDk+TzC;AACF;;ACn8TE;EmDzDE;IACE,2BAAqC;EpDggUzC;AACF;;ACr8TE;EmD1DE;IACE,2BAAqC;EpDmgUzC;AACF;;ACv8TE;EmD3DE;IACE,2BAAqC;EpDsgUzC;AACF;;ACz8TE;EmD5DE;IACE,2BAAqC;EpDygUzC;AACF;;AC38TE;EmD7DE;IACE,2BAAqC;EpD4gUzC;AACF;;AC58TI;EmD/DA;IACE,2BAAqC;EpD+gUzC;AACF;;ACx8TI;EmDtEA;IACE,2BAAqC;EpDkhUzC;AACF;;ACz8TI;EmDxEA;IACE,2BAAqC;EpDqhUzC;AACF;;ACr8TI;EmD/EA;IACE,2BAAqC;EpDwhUzC;AACF;;ACz/TE;EmDzDE;IACE,4BAAqC;EpDsjUzC;AACF;;AC3/TE;EmD1DE;IACE,4BAAqC;EpDyjUzC;AACF;;AC7/TE;EmD3DE;IACE,4BAAqC;EpD4jUzC;AACF;;AC//TE;EmD5DE;IACE,4BAAqC;EpD+jUzC;AACF;;ACjgUE;EmD7DE;IACE,4BAAqC;EpDkkUzC;AACF;;AClgUI;EmD/DA;IACE,4BAAqC;EpDqkUzC;AACF;;AC9/TI;EmDtEA;IACE,4BAAqC;EpDwkUzC;AACF;;AC//TI;EmDxEA;IACE,4BAAqC;EpD2kUzC;AACF;;AC3/TI;EmD/EA;IACE,4BAAqC;EpD8kUzC;AACF;;AoD7kUA;EACE,qCAAqC;ApDglUvC;;AoD9kUA;EACE,oCAAoC;ApDilUtC;;AoD/kUA;EACE,oCAAoC;ApDklUtC;;AoDhlUA;EACE,6BAA6B;ApDmlU/B;;AoDjlUA;EACE,qCAAqC;ApDolUvC;;AoDllUA;EACE,2BAAqC;ApDqlUvC;;AoDplUA;EACE,2BAAsC;ApDulUxC;;AoDtlUA;EACE,2BAAsC;ApDylUxC;;AoDxlUA;EACE,2BAAwC;ApD2lU1C;;AoD1lUA;EACE,2BAAoC;ApD6lUtC;;AoD3lUA;EACE,+LAAuC;ApD8lUzC;;AoD5lUA;EACE,+LAAyC;ApD+lU3C;;AoD7lUA;EACE,+LAA0C;ApDgmU5C;;AoD9lUA;EACE,iCAAyC;ApDimU3C;;AoD/lUA;EACE,iCAAoC;ApDkmUtC;;AqDnsUE;EACE,yBAA+B;ArDssUnC;;AC/mUE;EoDrFE;IACE,yBAA+B;ErDwsUnC;AACF;;ACjnUE;EoDtFE;IACE,yBAA+B;ErD2sUnC;AACF;;ACnnUE;EoDvFE;IACE,yBAA+B;ErD8sUnC;AACF;;ACrnUE;EoDxFE;IACE,yBAA+B;ErDitUnC;AACF;;ACvnUE;EoDzFE;IACE,yBAA+B;ErDotUnC;AACF;;ACxnUI;EoD3FA;IACE,yBAA+B;ErDutUnC;AACF;;ACpnUI;EoDlGA;IACE,yBAA+B;ErD0tUnC;AACF;;ACrnUI;EoDpGA;IACE,yBAA+B;ErD6tUnC;AACF;;ACjnUI;EoD3GA;IACE,yBAA+B;ErDguUnC;AACF;;AqD7vUE;EACE,wBAA+B;ArDgwUnC;;ACzqUE;EoDrFE;IACE,wBAA+B;ErDkwUnC;AACF;;AC3qUE;EoDtFE;IACE,wBAA+B;ErDqwUnC;AACF;;AC7qUE;EoDvFE;IACE,wBAA+B;ErDwwUnC;AACF;;AC/qUE;EoDxFE;IACE,wBAA+B;ErD2wUnC;AACF;;ACjrUE;EoDzFE;IACE,wBAA+B;ErD8wUnC;AACF;;AClrUI;EoD3FA;IACE,wBAA+B;ErDixUnC;AACF;;AC9qUI;EoDlGA;IACE,wBAA+B;ErDoxUnC;AACF;;AC/qUI;EoDpGA;IACE,wBAA+B;ErDuxUnC;AACF;;AC3qUI;EoD3GA;IACE,wBAA+B;ErD0xUnC;AACF;;AqDvzUE;EACE,0BAA+B;ArD0zUnC;;ACnuUE;EoDrFE;IACE,0BAA+B;ErD4zUnC;AACF;;ACruUE;EoDtFE;IACE,0BAA+B;ErD+zUnC;AACF;;ACvuUE;EoDvFE;IACE,0BAA+B;ErDk0UnC;AACF;;ACzuUE;EoDxFE;IACE,0BAA+B;ErDq0UnC;AACF;;AC3uUE;EoDzFE;IACE,0BAA+B;ErDw0UnC;AACF;;AC5uUI;EoD3FA;IACE,0BAA+B;ErD20UnC;AACF;;ACxuUI;EoDlGA;IACE,0BAA+B;ErD80UnC;AACF;;ACzuUI;EoDpGA;IACE,0BAA+B;ErDi1UnC;AACF;;ACruUI;EoD3GA;IACE,0BAA+B;ErDo1UnC;AACF;;AqDj3UE;EACE,gCAA+B;ArDo3UnC;;AC7xUE;EoDrFE;IACE,gCAA+B;ErDs3UnC;AACF;;AC/xUE;EoDtFE;IACE,gCAA+B;ErDy3UnC;AACF;;ACjyUE;EoDvFE;IACE,gCAA+B;ErD43UnC;AACF;;ACnyUE;EoDxFE;IACE,gCAA+B;ErD+3UnC;AACF;;ACryUE;EoDzFE;IACE,gCAA+B;ErDk4UnC;AACF;;ACtyUI;EoD3FA;IACE,gCAA+B;ErDq4UnC;AACF;;AClyUI;EoDlGA;IACE,gCAA+B;ErDw4UnC;AACF;;ACnyUI;EoDpGA;IACE,gCAA+B;ErD24UnC;AACF;;AC/xUI;EoD3GA;IACE,gCAA+B;ErD84UnC;AACF;;AqD36UE;EACE,+BAA+B;ArD86UnC;;ACv1UE;EoDrFE;IACE,+BAA+B;ErDg7UnC;AACF;;ACz1UE;EoDtFE;IACE,+BAA+B;ErDm7UnC;AACF;;AC31UE;EoDvFE;IACE,+BAA+B;ErDs7UnC;AACF;;AC71UE;EoDxFE;IACE,+BAA+B;ErDy7UnC;AACF;;AC/1UE;EoDzFE;IACE,+BAA+B;ErD47UnC;AACF;;ACh2UI;EoD3FA;IACE,+BAA+B;ErD+7UnC;AACF;;AC51UI;EoDlGA;IACE,+BAA+B;ErDk8UnC;AACF;;AC71UI;EoDpGA;IACE,+BAA+B;ErDq8UnC;AACF;;ACz1UI;EoD3GA;IACE,+BAA+B;ErDw8UnC;AACF;;AqDv8UA;EACE,wBAAwB;ArD08U1B;;AqDx8UA;EACE,uBAAuB;EACvB,iCAAiC;EACjC,yBAAyB;EACzB,2BAA2B;EAC3B,qBAAqB;EACrB,6BAA6B;EAC7B,8BAA8B;EAC9B,wBAAwB;ArD28U1B;;AC55UE;EoD5CA;IACE,wBAAwB;ErD48U1B;AACF;;AC95UE;EoD5CA;IACE,wBAAwB;ErD88U1B;AACF;;ACh6UE;EoD5CA;IACE,wBAAwB;ErDg9U1B;AACF;;ACl6UE;EoD5CA;IACE,wBAAwB;ErDk9U1B;AACF;;ACp6UE;EoD5CA;IACE,wBAAwB;ErDo9U1B;AACF;;ACr6UI;EoD7CF;IACE,wBAAwB;ErDs9U1B;AACF;;ACj6UI;EoDnDF;IACE,wBAAwB;ErDw9U1B;AACF;;ACl6UI;EoDpDF;IACE,wBAAwB;ErD09U1B;AACF;;AC95UI;EoD1DF;IACE,wBAAwB;ErD49U1B;AACF;;AqD39UA;EACE,6BAA6B;ArD89U/B;;ACt9UE;EoDLA;IACE,6BAA6B;ErD+9U/B;AACF;;ACx9UE;EoDLA;IACE,6BAA6B;ErDi+U/B;AACF;;AC19UE;EoDLA;IACE,6BAA6B;ErDm+U/B;AACF;;AC59UE;EoDLA;IACE,6BAA6B;ErDq+U/B;AACF;;AC99UE;EoDLA;IACE,6BAA6B;ErDu+U/B;AACF;;AC/9UI;EoDNF;IACE,6BAA6B;ErDy+U/B;AACF;;AC39UI;EoDZF;IACE,6BAA6B;ErD2+U/B;AACF;;AC59UI;EoDbF;IACE,6BAA6B;ErD6+U/B;AACF;;ACx9UI;EoDnBF;IACE,6BAA6B;ErD++U/B;AACF;;AsDzmVA,iBAAA;ACWA;EACE,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AvDkmVhC;;AuDtmVA;EAMI,gBAAgB;AvDomVpB;;AuD1mVA;EASM,mBAAmB;AvDqmVzB;;AuD9mVA;EAeM,uBxDXyB;EwDYzB,cxDzBuB;AC4nV7B;;AuDnnVA;;EAmBQ,cAAc;AvDqmVtB;;AuDxnVA;EAqBQ,cxD9BqB;ACqoV7B;;AuD5nVA;EAuBQ,4BxDhCqB;ACyoV7B;;AuDhoVA;;EA0BU,cxDnCmB;AC8oV7B;;ACviVE;EsD9FF;IA6BU,uBxDzBqB;ECsoV7B;AACF;;AuD3oVA;;EAgCQ,4BxDzCqB;ACypV7B;;AuDhpVA;;;EAqCU,yB7C6DuB;E6C5DvB,cxD/CmB;ACgqV7B;;AuDvpVA;EAyCU,cxDlDmB;EwDmDnB,YAAY;AvDknVtB;;AuD5pVA;EA4CY,UAAU;AvDonVtB;;AuDhqVA;EA+CY,uBAAwB;EACxB,UAAU;AvDqnVtB;;AuDrqVA;EAoDY,cxD7DiB;ACkrV7B;;AuDzqVA;EAsDc,uCxD/De;ACsrV7B;;AuD7qVA;EA0Dc,yBxDnEe;EwDoEf,qBxDpEe;EwDqEf,YxDxDiB;AC+qV/B;;AuDnrVA;EAkEU,4EAAyG;AvDqnVnH;;ACrmVE;EsDlFF;IAqEc,4EAAyG;EvDunVrH;AACF;;AuD7rVA;EAeM,yBxDxBuB;EwDyBvB,YxDZyB;AC8rV/B;;AuDlsVA;;EAmBQ,cAAc;AvDorVtB;;AuDvsVA;EAqBQ,YxDjBuB;ACusV/B;;AuD3sVA;EAuBQ,+BxDnBuB;AC2sV/B;;AuD/sVA;;EA0BU,YxDtBqB;ACgtV/B;;ACtnVE;EsD9FF;IA6BU,yBxDtCmB;ECkuV3B;AACF;;AuD1tVA;;EAgCQ,+BxD5BuB;AC2tV/B;;AuD/tVA;;;EAqCU,uB7C6DuB;E6C5DvB,YxDlCqB;ACkuV/B;;AuDtuVA;EAyCU,YxDrCqB;EwDsCrB,YAAY;AvDisVtB;;AuD3uVA;EA4CY,UAAU;AvDmsVtB;;AuD/uVA;EA+CY,yBAAwB;EACxB,UAAU;AvDosVtB;;AuDpvVA;EAoDY,YxDhDmB;ACovV/B;;AuDxvVA;EAsDc,uCxD/De;ACqwV7B;;AuD5vVA;EA0Dc,uBxDtDiB;EwDuDjB,mBxDvDiB;EwDwDjB,cxDrEe;AC2wV7B;;AuDlwVA;EAkEU,8EAAyG;AvDosVnH;;ACprVE;EsDlFF;IAqEc,8EAAyG;EvDssVrH;AACF;;AuD5wVA;EAeM,4BxDbwB;EwDcxB,yB7CqDe;AV4sVrB;;AuDjxVA;;EAmBQ,cAAc;AvDmwVtB;;AuDtxVA;EAqBQ,yB7CgDa;AVqtVrB;;AuD1xVA;EAuBQ,yB7C8Ca;AVytVrB;;AuD9xVA;;EA0BU,yB7C2CW;AV8tVrB;;ACrsVE;EsD9FF;IA6BU,4BxD3BoB;ECsyV5B;AACF;;AuDzyVA;;EAgCQ,yB7CqCa;AVyuVrB;;AuD9yVA;;;EAqCU,yB7C6DuB;E6C5DvB,yB7C+BW;AVgvVrB;;AuDrzVA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvDgxVtB;;AuD1zVA;EA4CY,UAAU;AvDkxVtB;;AuD9zVA;EA+CY,4BAAwB;EACxB,UAAU;AvDmxVtB;;AuDn0VA;EAoDY,yB7CiBS;AVkwVrB;;AuDv0VA;EAsDc,uCxD/De;ACo1V7B;;AuD30VA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,iBxD1DgB;AC+0V9B;;AuDj1VA;EAkEU,iFAAyG;AvDmxVnH;;ACnwVE;EsDlFF;IAqEc,iFAAyG;EvDqxVrH;AACF;;AuD31VA;EAeM,yBxDpBwB;EwDqBxB,W7CuDU;AVyxVhB;;AuDh2VA;;EAmBQ,cAAc;AvDk1VtB;;AuDr2VA;EAqBQ,W7CkDQ;AVkyVhB;;AuDz2VA;EAuBQ,+B7CgDQ;AVsyVhB;;AuD72VA;;EA0BU,W7C6CM;AV2yVhB;;ACpxVE;EsD9FF;IA6BU,yBxDlCoB;EC43V5B;AACF;;AuDx3VA;;EAgCQ,+B7CuCQ;AVszVhB;;AuD73VA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV6zVhB;;AuDp4VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD+1VtB;;AuDz4VA;EA4CY,UAAU;AvDi2VtB;;AuD74VA;EA+CY,yBAAwB;EACxB,UAAU;AvDk2VtB;;AuDl5VA;EAoDY,W7CmBI;AV+0VhB;;AuDt5VA;EAsDc,uCxD/De;ACm6V7B;;AuD15VA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjEgB;ACq6V9B;;AuDh6VA;EAkEU,gFAAyG;AvDk2VnH;;ACl1VE;EsDlFF;IAqEc,gFAAyG;EvDo2VrH;AACF;;AuD16VA;EAeM,yBxDN4B;EwDO5B,W7CuDU;AVw2VhB;;AuD/6VA;;EAmBQ,cAAc;AvDi6VtB;;AuDp7VA;EAqBQ,W7CkDQ;AVi3VhB;;AuDx7VA;EAuBQ,+B7CgDQ;AVq3VhB;;AuD57VA;;EA0BU,W7C6CM;AV03VhB;;ACn2VE;EsD9FF;IA6BU,yBxDpBwB;EC67VhC;AACF;;AuDv8VA;;EAgCQ,+B7CuCQ;AVq4VhB;;AuD58VA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV44VhB;;AuDn9VA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD86VtB;;AuDx9VA;EA4CY,UAAU;AvDg7VtB;;AuD59VA;EA+CY,yBAAwB;EACxB,UAAU;AvDi7VtB;;AuDj+VA;EAoDY,W7CmBI;AV85VhB;;AuDr+VA;EAsDc,uCxD/De;ACk/V7B;;AuDz+VA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDnDoB;ACs+VlC;;AuD/+VA;EAkEU,gFAAyG;AvDi7VnH;;ACj6VE;EsDlFF;IAqEc,gFAAyG;EvDm7VrH;AACF;;AuDz/VA;EAeM,yBxDJ4B;EwDK5B,W7CuDU;AVu7VhB;;AuD9/VA;;EAmBQ,cAAc;AvDg/VtB;;AuDngWA;EAqBQ,W7CkDQ;AVg8VhB;;AuDvgWA;EAuBQ,+B7CgDQ;AVo8VhB;;AuD3gWA;;EA0BU,W7C6CM;AVy8VhB;;ACl7VE;EsD9FF;IA6BU,yBxDlBwB;EC0gWhC;AACF;;AuDthWA;;EAgCQ,+B7CuCQ;AVo9VhB;;AuD3hWA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV29VhB;;AuDliWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD6/VtB;;AuDviWA;EA4CY,UAAU;AvD+/VtB;;AuD3iWA;EA+CY,yBAAwB;EACxB,UAAU;AvDggWtB;;AuDhjWA;EAoDY,W7CmBI;AV6+VhB;;AuDpjWA;EAsDc,uCxD/De;ACikW7B;;AuDxjWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDjDoB;ACmjWlC;;AuD9jWA;EAkEU,gFAAyG;AvDggWnH;;ACh/VE;EsDlFF;IAqEc,gFAAyG;EvDkgWrH;AACF;;AuDxkWA;EAeM,yBxDL4B;EwDM5B,W7CuDU;AVsgWhB;;AuD7kWA;;EAmBQ,cAAc;AvD+jWtB;;AuDllWA;EAqBQ,W7CkDQ;AV+gWhB;;AuDtlWA;EAuBQ,+B7CgDQ;AVmhWhB;;AuD1lWA;;EA0BU,W7C6CM;AVwhWhB;;ACjgWE;EsD9FF;IA6BU,yBxDnBwB;EC0lWhC;AACF;;AuDrmWA;;EAgCQ,+B7CuCQ;AVmiWhB;;AuD1mWA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AV0iWhB;;AuDjnWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD4kWtB;;AuDtnWA;EA4CY,UAAU;AvD8kWtB;;AuD1nWA;EA+CY,yBAAwB;EACxB,UAAU;AvD+kWtB;;AuD/nWA;EAoDY,W7CmBI;AV4jWhB;;AuDnoWA;EAsDc,uCxD/De;ACgpW7B;;AuDvoWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDlDoB;ACmoWlC;;AuD7oWA;EAkEU,gFAAyG;AvD+kWnH;;AC/jWE;EsDlFF;IAqEc,gFAAyG;EvDilWrH;AACF;;AuDvpWA;EAeM,yBxDP4B;EwDQ5B,W7CuDU;AVqlWhB;;AuD5pWA;;EAmBQ,cAAc;AvD8oWtB;;AuDjqWA;EAqBQ,W7CkDQ;AV8lWhB;;AuDrqWA;EAuBQ,+B7CgDQ;AVkmWhB;;AuDzqWA;;EA0BU,W7C6CM;AVumWhB;;AChlWE;EsD9FF;IA6BU,yBxDrBwB;EC2qWhC;AACF;;AuDprWA;;EAgCQ,+B7CuCQ;AVknWhB;;AuDzrWA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AVynWhB;;AuDhsWA;EAyCU,W7C8BM;E6C7BN,YAAY;AvD2pWtB;;AuDrsWA;EA4CY,UAAU;AvD6pWtB;;AuDzsWA;EA+CY,yBAAwB;EACxB,UAAU;AvD8pWtB;;AuD9sWA;EAoDY,W7CmBI;AV2oWhB;;AuDltWA;EAsDc,uCxD/De;AC+tW7B;;AuDttWA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxDpDoB;ACotWlC;;AuD5tWA;EAkEU,gFAAyG;AvD8pWnH;;AC9oWE;EsDlFF;IAqEc,gFAAyG;EvDgqWrH;AACF;;AuDtuWA;EAeM,yBxDR4B;EwDS5B,yB7CqDe;AVsqWrB;;AuD3uWA;;EAmBQ,cAAc;AvD6tWtB;;AuDhvWA;EAqBQ,yB7CgDa;AV+qWrB;;AuDpvWA;EAuBQ,yB7C8Ca;AVmrWrB;;AuDxvWA;;EA0BU,yB7C2CW;AVwrWrB;;AC/pWE;EsD9FF;IA6BU,yBxDtBwB;EC2vWhC;AACF;;AuDnwWA;;EAgCQ,yB7CqCa;AVmsWrB;;AuDxwWA;;;EAqCU,yB7C6DuB;E6C5DvB,yB7C+BW;AV0sWrB;;AuD/wWA;EAyCU,yB7C4BW;E6C3BX,YAAY;AvD0uWtB;;AuDpxWA;EA4CY,UAAU;AvD4uWtB;;AuDxxWA;EA+CY,yBAAwB;EACxB,UAAU;AvD6uWtB;;AuD7xWA;EAoDY,yB7CiBS;AV4tWrB;;AuDjyWA;EAsDc,uCxD/De;AC8yW7B;;AuDryWA;EA0Dc,oC7CWO;E6CVP,gC7CUO;E6CTP,cxDrDoB;ACoyWlC;;AuD3yWA;EAkEU,gFAAyG;AvD6uWnH;;AC7tWE;EsDlFF;IAqEc,gFAAyG;EvD+uWrH;AACF;;AuDrzWA;EAeM,yBxDF2B;EwDG3B,W7CuDU;AVmvWhB;;AuD1zWA;;EAmBQ,cAAc;AvD4yWtB;;AuD/zWA;EAqBQ,W7CkDQ;AV4vWhB;;AuDn0WA;EAuBQ,+B7CgDQ;AVgwWhB;;AuDv0WA;;EA0BU,W7C6CM;AVqwWhB;;AC9uWE;EsD9FF;IA6BU,yBxDhBuB;ECo0W/B;AACF;;AuDl1WA;;EAgCQ,+B7CuCQ;AVgxWhB;;AuDv1WA;;;EAqCU,yB7C6DuB;E6C5DvB,W7CiCM;AVuxWhB;;AuD91WA;EAyCU,W7C8BM;E6C7BN,YAAY;AvDyzWtB;;AuDn2WA;EA4CY,UAAU;AvD2zWtB;;AuDv2WA;EA+CY,yBAAwB;EACxB,UAAU;AvD4zWtB;;AuD52WA;EAoDY,W7CmBI;AVyyWhB;;AuDh3WA;EAsDc,uCxD/De;AC63W7B;;AuDp3WA;EA0Dc,sB7CaE;E6CZF,kB7CYE;E6CXF,cxD/CmB;AC62WjC;;AuD13WA;EAkEU,gFAAyG;AvD4zWnH;;AC5yWE;EsDlFF;IAqEc,gFAAyG;EvD8zWrH;AACF;;AuDp4WA;EAyEM,eAhF0B;AvD+4WhC;;AClzWE;EsDtFF;IA6EQ,oBAnF8B;EvDm5WpC;AACF;;ACxzWE;EsDtFF;IAiFQ,mBAtF4B;EvDw5WlC;AACF;;AuDp5WA;EAsFM,mBAAmB;EACnB,aAAa;AvDk0WnB;;AuDz5WA;EAyFQ,YAAY;EACZ,cAAc;AvDo0WtB;;AuD95WA;EA4FI,gBAAgB;AvDs0WpB;;AuDl6WA;EA8FI,iBAAiB;AvDw0WrB;;AuDp0WA;EAEE,gBAAgB;AvDs0WlB;;AuDx0WA;EAII,SAAS;EACT,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,qCAAqC;AvDw0WzC;;AuDj1WA;EAYI,YAAY;AvDy0WhB;;ACr2WE;EsDgBF;IAeI,aAAa;EvD20Wf;AACF;;AuD10WA;EACE,kBAAkB;AvD60WpB;;AC/2WE;EsDiCF;IAKM,aAAa;EvD80WjB;EuDn1WF;IAOQ,sBAAsB;EvD+0W5B;AACF;;ACp3WE;EsD6BF;IASI,aAAa;IACb,uBAAuB;EvDm1WzB;EuD71WF;ItD8BI,oBsDlBwC;EvDo1W1C;AACF;;AuDj1WA;;EAEE,YAAY;EACZ,cAAc;AvDo1WhB;;AuDl1WA;EACE,YAAY;EACZ,cAAc;EACd,oBApJ6B;AvDy+W/B;;AC14WE;EsDkDF;IAKI,kBArJgC;EvD6+WlC;AACF;;AwD1+WA;EACE,oBAN2B;AxDm/W7B;;ACx4WE;EuDtGF;IAII,kBAR+B;ExDu/WjC;EwDn/WF;IAOM,oBAV8B;ExDy/WlC;EwDt/WF;IASM,mBAX4B;ExD2/WhC;AACF;;AyD3/WA;EACE,yB1DO4B;E0DN5B,yBAJ+B;AzDkgXjC","file":"bulma.css"} \ No newline at end of file diff --git a/pagetop/static/theme/favicon.png b/pagetop/static/theme/favicon.png new file mode 100644 index 00000000..7d38ea4a Binary files /dev/null and b/pagetop/static/theme/favicon.png differ diff --git a/pagetop/static/theme/icons/bootstrap-icons.css b/pagetop/static/theme/icons/bootstrap-icons.css new file mode 100644 index 00000000..9a7d8ae2 --- /dev/null +++ b/pagetop/static/theme/icons/bootstrap-icons.css @@ -0,0 +1,1705 @@ +@font-face { + font-family: "bootstrap-icons"; + src: url("bootstrap-icons.woff2?ver=1.8.2") format("woff2"), + url("bootstrap-icons.woff?ver=1.8.2") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-display: block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-1::before { content: "\f2a5"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-1::before { content: "\f68a"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-1::before { content: "\f68d"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-1::before { content: "\f690"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-1::before { content: "\f695"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-1::before { content: "\f698"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-mortorboard-fill::before { content: "\f6a2"; } +.bi-mortorboard::before { content: "\f6a3"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-1::before { content: "\f6b6"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash-1::before { content: "\f6c2"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport-1::before { content: "\f6e0"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-ssd-fill::before { content: "\f6ed"; } +.bi-ssd::before { content: "\f6ee"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt-1::before { content: "\f759"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls-1::before { content: "\f769"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } diff --git a/pagetop/static/theme/icons/bootstrap-icons.woff b/pagetop/static/theme/icons/bootstrap-icons.woff new file mode 100644 index 00000000..4cd66b71 Binary files /dev/null and b/pagetop/static/theme/icons/bootstrap-icons.woff differ diff --git a/pagetop/static/theme/icons/bootstrap-icons.woff2 b/pagetop/static/theme/icons/bootstrap-icons.woff2 new file mode 100644 index 00000000..de01cad9 Binary files /dev/null and b/pagetop/static/theme/icons/bootstrap-icons.woff2 differ diff --git a/pagetop/tests/health_check.rs b/pagetop/tests/health_check.rs index 0c309bea..dd980796 100644 --- a/pagetop/tests/health_check.rs +++ b/pagetop/tests/health_check.rs @@ -1,7 +1,8 @@ -use pagetop::core::server; - -fn spawn_app() { - let server = server::run(None).expect("Failed to bind address"); +async fn spawn_app() { + let server = pagetop::Application::prepare(None) + .await? + .run()? + .expect("Failed to prepare server"); let _ = tokio::spawn(server); }