diff --git a/404.html b/404.html index e8344bc..1cd63ec 100644 --- a/404.html +++ b/404.html @@ -17,8 +17,8 @@ - - + + diff --git a/CODE_OF_CONDUCT.html b/CODE_OF_CONDUCT.html index dfd6fba..68c819a 100644 --- a/CODE_OF_CONDUCT.html +++ b/CODE_OF_CONDUCT.html @@ -1,5 +1,5 @@ -Contributor Covenant Code of Conduct • nflseedR +Contributor Covenant Code of Conduct • nflseedR Skip to contents diff --git a/CONTRIBUTING.html b/CONTRIBUTING.html index 6bb0b20..6e480dc 100644 --- a/CONTRIBUTING.html +++ b/CONTRIBUTING.html @@ -1,5 +1,5 @@ -Contributing • nflseedR +Contributing • nflseedR Skip to contents diff --git a/LICENSE-text.html b/LICENSE-text.html index 6644f6e..7652cc2 100644 --- a/LICENSE-text.html +++ b/LICENSE-text.html @@ -1,5 +1,5 @@ -License • nflseedR +License • nflseedR Skip to contents diff --git a/LICENSE.html b/LICENSE.html index c9fef18..081c660 100644 --- a/LICENSE.html +++ b/LICENSE.html @@ -1,5 +1,5 @@ -MIT License • nflseedR +MIT License • nflseedR Skip to contents diff --git a/articles/index.html b/articles/index.html index 57a3c8e..0ea4b9d 100644 --- a/articles/index.html +++ b/articles/index.html @@ -1,5 +1,5 @@ -Articles • nflseedR +Articles • nflseedR Skip to contents diff --git a/articles/nflseedR.html b/articles/nflseedR.html index ea5357b..2e84332 100644 --- a/articles/nflseedR.html +++ b/articles/nflseedR.html @@ -17,8 +17,8 @@ - - + + @@ -142,6 +142,8 @@

Using In-Simulation Functions
 library(nflseedR)
+#> Error in get(paste0(generic, ".", class), envir = get_method_env()) : 
+#>   object 'type_sum.accel' not found
 library(dplyr, warn.conflicts = FALSE)
 options(digits = 3)
 options(warn = -1)
@@ -151,18 +153,18 @@

Load Sharpe Games
 games <- nflseedR::load_sharpe_games()
 games %>% dplyr::slice_tail(n = 20) %>% knitr::kable()
- +
-++--+@@ -173,26 +175,26 @@

Load Sharpe Games

-+++-----+++@@ -250,52 +252,52 @@

Load Sharpe Games -

+ - - + + - + - - + + - + - - - + + - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + @@ -322,23 +324,23 @@

Load Sharpe Games6702

- - - - - - - - + + + + + + + + - - - - + + + + @@ -346,52 +348,52 @@

Load Sharpe GamesLincoln Financial Field

- + - + - + - - + + - + - - + + - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + @@ -418,23 +420,23 @@

Load Sharpe Games6704

- - - - - - - - + + + + + + + + - - - - + + + + @@ -1256,24 +1258,24 @@

Find Division Ranks
 div_standings <- nflseedR::compute_division_ranks(games, .debug = TRUE)
-#>  11:48:17 | Calculating team data
-#>  11:48:17 | Calculating head to head
-#>  11:48:17 | Calculating division rank #1
-#>  11:48:17 | DIV (2): Head-to-head
-#>  11:48:17 | DIV (2): Division Record
-#>  11:48:17 | Calculating division rank #2
-#>  11:48:17 | DIV (3): Head-to-head
-#>  11:48:17 | DIV (3): Division Record
-#>  11:48:17 | DIV (3): Common Record
-#>  11:48:17 | DIV (2): Head-to-head
-#>  11:48:17 | DIV (2): Division Record
-#>  11:48:17 | DIV (2): Common Record
-#>  11:48:17 | DIV (2): Conference Record
-#>  11:48:17 | Calculating division rank #3
-#>  11:48:17 | DIV (2): Head-to-head
-#>  11:48:17 | DIV (2): Division Record
-#>  11:48:17 | DIV (2): Common Record
-#>  11:48:17 | Calculating division rank #4
+#>  14:58:28 | Calculating team data
+#>  14:58:28 | Calculating head to head
+#>  14:58:28 | Calculating division rank #1
+#>  14:58:28 | DIV (2): Head-to-head
+#>  14:58:28 | DIV (2): Division Record
+#>  14:58:28 | Calculating division rank #2
+#>  14:58:28 | DIV (3): Head-to-head
+#>  14:58:28 | DIV (3): Division Record
+#>  14:58:28 | DIV (3): Common Record
+#>  14:58:28 | DIV (2): Head-to-head
+#>  14:58:29 | DIV (2): Division Record
+#>  14:58:29 | DIV (2): Common Record
+#>  14:58:29 | DIV (2): Conference Record
+#>  14:58:29 | Calculating division rank #3
+#>  14:58:29 | DIV (2): Head-to-head
+#>  14:58:29 | DIV (2): Division Record
+#>  14:58:29 | DIV (2): Common Record
+#>  14:58:29 | Calculating division rank #4
 dplyr::glimpse(div_standings)
 #> List of 2
 #>  $ standings: tibble [64 × 16] (S3: tbl_df/tbl/data.frame)
@@ -1847,16 +1849,16 @@ 

Find Conference Seedings
 seeds <- div_standings %>% 
   nflseedR::compute_conference_seeds(h2h = .$h2h, playoff_seeds = 6, .debug = TRUE)
-#>  11:48:17 | Calculating seed #1
-#>  11:48:17 | CONF (3): Head-to-head Sweep
-#>  11:48:17 | Calculating seed #2
-#>  11:48:17 | CONF (2): Head-to-head Sweep
-#>  11:48:17 | CONF (2): Conference Record
-#>  11:48:17 | Calculating seed #3
-#>  11:48:17 | Calculating seed #4
-#>  11:48:17 | Calculating seed #5
-#>  11:48:17 | Calculating seed #6
-#>  11:48:17 | CONF (2): Best-in-division reduction
+#>  14:58:29 | Calculating seed #1
+#>  14:58:29 | CONF (3): Head-to-head Sweep
+#>  14:58:29 | Calculating seed #2
+#>  14:58:29 | CONF (2): Head-to-head Sweep
+#>  14:58:29 | CONF (2): Conference Record
+#>  14:58:29 | Calculating seed #3
+#>  14:58:29 | Calculating seed #4
+#>  14:58:29 | Calculating seed #5
+#>  14:58:29 | Calculating seed #6
+#>  14:58:29 | CONF (2): Best-in-division reduction
 dplyr::glimpse(seeds)
 #> List of 2
 #>  $ standings: tibble [64 × 17] (S3: tbl_df/tbl/data.frame)
@@ -2455,42 +2457,42 @@ 

Find Draft Order
 draft <- seeds %>% 
   nflseedR::compute_draft_order(games = games, h2h = .$h2h, .debug = TRUE)
-#>  11:48:18 | Calculating draft order #32
-#>  11:48:18 | Calculating draft order #31
-#>  11:48:18 | Calculating draft order #30
-#>  11:48:18 | Calculating draft order #29
-#>  11:48:18 | Calculating draft order #28
-#>  11:48:18 | Calculating draft order #27
-#>  11:48:18 | Calculating draft order #26
-#>  11:48:18 | Calculating draft order #25
-#>  11:48:18 | Calculating draft order #24
-#>  11:48:18 | Calculating draft order #23
-#>  11:48:18 | Calculating draft order #22
-#>  11:48:18 | Calculating draft order #21
-#>  11:48:18 | Calculating draft order #20
-#>  11:48:18 | Calculating draft order #19
-#>  11:48:18 | Calculating draft order #18
-#>  11:48:18 | Calculating draft order #17
-#>  11:48:18 | Calculating draft order #16
-#>  11:48:18 | Calculating draft order #15
-#>  11:48:18 | Calculating draft order #14
-#>  11:48:18 | Calculating draft order #13
-#>  11:48:18 | Calculating draft order #12
-#>  11:48:18 | Calculating draft order #11
-#>  11:48:18 | Calculating draft order #10
-#>  11:48:18 | DRAFT: Divisional Rank
-#>  11:48:18 | DRAFT: Conference Rank
-#>  11:48:18 | CONF (2): Best-in-division reduction
-#>  11:48:18 | CONF (2): Head-to-head Sweep
-#>  11:48:18 | Calculating draft order #9
-#>  11:48:18 | Calculating draft order #8
-#>  11:48:18 | Calculating draft order #7
-#>  11:48:18 | Calculating draft order #6
-#>  11:48:18 | Calculating draft order #5
-#>  11:48:18 | Calculating draft order #4
-#>  11:48:18 | Calculating draft order #3
-#>  11:48:18 | Calculating draft order #2
-#>  11:48:18 | Calculating draft order #1
+#>  14:58:30 | Calculating draft order #32
+#>  14:58:30 | Calculating draft order #31
+#>  14:58:30 | Calculating draft order #30
+#>  14:58:30 | Calculating draft order #29
+#>  14:58:30 | Calculating draft order #28
+#>  14:58:30 | Calculating draft order #27
+#>  14:58:30 | Calculating draft order #26
+#>  14:58:30 | Calculating draft order #25
+#>  14:58:30 | Calculating draft order #24
+#>  14:58:30 | Calculating draft order #23
+#>  14:58:30 | Calculating draft order #22
+#>  14:58:30 | Calculating draft order #21
+#>  14:58:30 | Calculating draft order #20
+#>  14:58:30 | Calculating draft order #19
+#>  14:58:30 | Calculating draft order #18
+#>  14:58:30 | Calculating draft order #17
+#>  14:58:30 | Calculating draft order #16
+#>  14:58:30 | Calculating draft order #15
+#>  14:58:30 | Calculating draft order #14
+#>  14:58:30 | Calculating draft order #13
+#>  14:58:30 | Calculating draft order #12
+#>  14:58:30 | Calculating draft order #11
+#>  14:58:30 | Calculating draft order #10
+#>  14:58:30 | DRAFT: Divisional Rank
+#>  14:58:30 | DRAFT: Conference Rank
+#>  14:58:30 | CONF (2): Best-in-division reduction
+#>  14:58:30 | CONF (2): Head-to-head Sweep
+#>  14:58:30 | Calculating draft order #9
+#>  14:58:30 | Calculating draft order #8
+#>  14:58:30 | Calculating draft order #7
+#>  14:58:30 | Calculating draft order #6
+#>  14:58:30 | Calculating draft order #5
+#>  14:58:30 | Calculating draft order #4
+#>  14:58:30 | Calculating draft order #3
+#>  14:58:30 | Calculating draft order #2
+#>  14:58:30 | Calculating draft order #1
 dplyr::glimpse(draft)
 #> Rows: 64
 #> Columns: 18
@@ -2509,7 +2511,7 @@ 

Find Draft Order#> $ sov <dbl> 0.281, 0.415, 0.466, 0.401, 0.438, 0.381, 0.388, 0.438, 0.… #> $ sos <dbl> 0.480, 0.500, 0.496, 0.512, 0.496, 0.438, 0.508, 0.465, 0.… #> $ div_rank <dbl> 4, 2, 1, 3, 1, 2, 4, 3, 1, 2, 4, 3, 1, 4, 3, 2, 3, 2, 4, 1… -#> $ seed <dbl> NA, NA, 2, NA, 4, 6, NA, NA, 3, 5, NA, NA, 1, NA, NA, NA, … +#> $ seed <dbl> NA, NA, 2, NA, 4, 6, NA, NA, 3, 5, NA, NA, 1, NA, NA, NA, … #> $ exit <dbl> 17, 17, 20, 17, 22, 18, 17, 17, 19, 18, 17, 17, 19, 17, 17… #> $ draft_order <dbl> 8, 12, 29, 9, 32, 21, 6, 17, 27, 24, 2, 10, 28, 1, 3, 11, …

As this is the final step, the function diff --git a/articles/nflsim.html b/articles/nflsim.html index fdd6beb..de0f4ac 100644 --- a/articles/nflsim.html +++ b/articles/nflsim.html @@ -17,8 +17,8 @@ - - + + @@ -101,6 +101,8 @@

Running a Simulation
 library(nflseedR)
+#> Error in get(paste0(generic, ".", class), envir = get_method_env()) : 
+#>   object 'type_sum.accel' not found
 library(dplyr, warn.conflicts = FALSE)
 options(digits = 3)

Note: For this guide, we’ll set an initial random seed of @@ -117,11 +119,11 @@

Running a Simulation= TRUE, simulations = 100 ) -#> 11:48:21 | Loading games data -#> 11:48:22 | Beginning simulation of 100 seasons in 1 round -#> 11:48:35 | Combining simulation data -#> 11:48:35 | Aggregating across simulations -#> 11:48:35 | DONE!

+#> 14:58:33 | Loading games data +#> 14:58:34 | Beginning simulation of 100 seasons in 1 round +#> 14:58:47 | Combining simulation data +#> 14:58:47 | Aggregating across simulations +#> 14:58:47 | DONE!

The output contains a lot of pre-aggregated information, as well as the individual results from each game of each simulation. For example, let’s look at the overall results for the Bears:

@@ -469,11 +471,11 @@

Use Your Own Model= TRUE, simulations = 100 ) -#> 11:48:35 | Loading games data -#> 11:48:35 | Beginning simulation of 100 seasons in 1 round -#> 11:48:47 | Combining simulation data -#> 11:48:47 | Aggregating across simulations -#> 11:48:47 | DONE! +#> 14:58:47 | Loading games data +#> 14:58:47 | Beginning simulation of 100 seasons in 1 round +#> 14:58:59 | Combining simulation data +#> 14:58:59 | Aggregating across simulations +#> 14:58:59 | DONE! sims2$overall %>% dplyr::arrange(team) %>% utils::head() %>% knitr::kable()

2024_17_ATL_WAS2024_17_MIA_CLE 2024 REG 17 2024-12-29 Sunday13:00ATL16:05MIA NAWASCLE NA Home NA NA NA202412290459755202412291159762 NA202412290was202412290cle NA401671842669674016718776703 7NANANANANANANANA10-250205-5.5-110-11040.5-110-110 0 outdoors grass NA NA00-003621200-0031503Tua TagovailoaJameis WinstonMike McDanielKevin Stefanski NANANANARaheem MorrisDan QuinnNAWAS00FedExFieldCLE00FirstEnergy Stadium
2024_17_DAL_PHI7 7NANANANANANANANA270-3407.0-105-11542.5-110-110 1 outdoors grass NA NANANANANA00-003366200-0036389Cooper RushJalen Hurts Mike McCarthy Nick Sirianni NA
2024_17_MIA_CLE2024_17_ATL_WAS 2024 REG 17 2024-12-29 Sunday 20:20MIAATL NACLEWAS NA Home NA NA NA202412291159762202412290459755 NA202412290cle202412290was NA40167187767034016718426696 710NANANANANANANANA7170-2055.0-110-11047.0-110-110 0 outdoors grass NA NA00-003991700-0039910Michael Penix Jr.Jayden DanielsRaheem MorrisDan Quinn NANANANAMike McDanielKevin StefanskiNACLE00FirstEnergy StadiumWAS00FedExField
2024_17_DET_SF8 8NANANANANANANANA-198164-4.0-110-11051.5-110-110 0 outdoors grass NA NANANANANA00-003310600-0037834Jared GoffBrock Purdy Dan Campbell Kyle Shanahan NA
@@ -765,11 +767,11 @@

Adding In Your Own Data best = "CHI", worst = "GB" ) -#> 11:48:47 | Loading games data -#> 11:48:47 | Beginning simulation of 100 seasons in 1 round -#> 11:48:58 | Combining simulation data -#> 11:48:58 | Aggregating across simulations -#> 11:48:59 | DONE! +#> 14:58:59 | Loading games data +#> 14:58:59 | Beginning simulation of 100 seasons in 1 round +#> 14:59:11 | Combining simulation data +#> 14:59:11 | Aggregating across simulations +#> 14:59:11 | DONE!

Now let nflseedR summarize the simulation for you by using summary() with the nflseedR simulation object. This will print a gt table.

@@ -1809,9 +1811,9 @@

Passing Data in from One Week fresh_season = TRUE, test_week = 3 ) -#> 11:49:00 | Loading games data -#> 11:49:00 | Beginning simulation of 1000 seasons in 1 round -#> 11:49:01 | Aborting and returning your `process_games` function's results +#> 14:59:12 | Loading games data +#> 14:59:12 | Beginning simulation of 1000 seasons in 1 round +#> 14:59:13 | Aborting and returning your `process_games` function's results #> from Week 3

Let’s look at the Bears’ Elo after Week 3 in the top handful of simulations:

@@ -1889,7 +1891,7 @@

Passing Data in from One Week filter(sim == 1) %>% filter(away_team == "CHI" | home_team == "CHI") #> ── nflverse games and schedules ──────────────────────────────────────────────── -#> Data updated: 2024-10-15 11:49:00 UTC +#> Data updated: 2024-12-23 14:59:12 UTC #> # A tibble: 16 × 9 #> sim game_type week away_team home_team away_rest home_rest location result #> <dbl> <chr> <int> <chr> <chr> <int> <int> <chr> <int> diff --git a/articles/tiebreaker.html b/articles/tiebreaker.html index 0adaaa8..ba06aef 100644 --- a/articles/tiebreaker.html +++ b/articles/tiebreaker.html @@ -17,8 +17,8 @@ - - + + @@ -139,10 +139,11 @@

Two ClubsOther Tie-Breaking Procedures) +among conference teams in points scored and points allowed in all +games. +
  • Best combined ranking (see Other Tie-Breaking Procedures) +among all teams in points scored and points allowed in all games.
  • Best net points in common games.
  • Best net points in all games.
  • Best net touchdowns in all games.
  • @@ -166,10 +167,11 @@

    Three or More ClubsOther Tie-Breaking Procedures) +among conference teams in points scored and points allowed in all +games. +
  • Best combined ranking (see Other Tie-Breaking Procedures) +among all teams in points scored and points allowed in all games.
  • Best net points in common games.
  • Best net points in all games.
  • Best net touchdowns in all games.
  • @@ -214,10 +216,11 @@

    Two ClubsOther Tie-Breaking Procedures) +among conference teams in points scored and points allowed in all +games. +
  • Best combined ranking (see Other Tie-Breaking Procedures) +among all teams in points scored and points allowed in all games.
  • Best net points in conference games.
  • Best net points in all games.
  • Best net touchdowns in all games.
  • @@ -252,10 +255,11 @@

    Three or More ClubsOther Tie-Breaking Procedures) +among conference teams in points scored and points allowed in all +games. +
  • Best combined ranking (see Other Tie-Breaking Procedures) +among all teams in points scored and points allowed in all games.
  • Best net points in conference games.
  • Best net points in all games.
  • Best net touchdowns in all games.
  • @@ -282,16 +286,17 @@

    Other Tie-Breaking Procedures diff --git a/authors.html b/authors.html index 39e45c0..e083daf 100644 --- a/authors.html +++ b/authors.html @@ -1,5 +1,5 @@ -Authors and Citation • nflseedR +Authors and Citation • nflseedR Skip to contents diff --git a/deps/Fira_Code-0.4.9/font.css b/deps/Fira_Code-0.4.9/font.css index 533f7ed..af37877 100644 --- a/deps/Fira_Code-0.4.9/font.css +++ b/deps/Fira_Code-0.4.9/font.css @@ -5,7 +5,7 @@ font-weight: 400; font-display: swap; src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV37Nv7g.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { @@ -41,7 +41,7 @@ font-weight: 400; font-display: swap; src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJV77Nv7g.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { @@ -50,5 +50,5 @@ font-weight: 400; font-display: swap; src: url(uU9eCBsR6Z2vfE9aq3bL0fxyUs4tcw4W_D1sJVD7Ng.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } diff --git a/deps/IBM_Plex_Sans-0.4.9/font.css b/deps/IBM_Plex_Sans-0.4.9/font.css index 39fbd14..4528583 100644 --- a/deps/IBM_Plex_Sans-0.4.9/font.css +++ b/deps/IBM_Plex_Sans-0.4.9/font.css @@ -5,7 +5,7 @@ font-weight: 400; font-display: swap; src: url(zYXgKVElMYYaJe8bpLHnCwDKhdzeFb5N.woff2) format('woff2'); - unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; } /* cyrillic */ @font-face { @@ -41,7 +41,7 @@ font-weight: 400; font-display: swap; src: url(zYXgKVElMYYaJe8bpLHnCwDKhd_eFb5N.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { @@ -50,5 +50,5 @@ font-weight: 400; font-display: swap; src: url(zYXgKVElMYYaJe8bpLHnCwDKhdHeFQ.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } diff --git a/deps/Kanit-0.4.9/font.css b/deps/Kanit-0.4.9/font.css index a38d71a..fc70959 100644 --- a/deps/Kanit-0.4.9/font.css +++ b/deps/Kanit-0.4.9/font.css @@ -5,7 +5,7 @@ font-weight: 400; font-display: swap; src: url(nKKZ-Go6G5tXcraBGwCYdA.woff2) format('woff2'); - unicode-range: U+0E01-0E5B, U+200C-200D, U+25CC; + unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC; } /* vietnamese */ @font-face { @@ -23,7 +23,7 @@ font-weight: 400; font-display: swap; src: url(nKKZ-Go6G5tXcrabGwCYdA.woff2) format('woff2'); - unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { @@ -32,5 +32,5 @@ font-weight: 400; font-display: swap; src: url(nKKZ-Go6G5tXcraVGwA.woff2) format('woff2'); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } diff --git a/deps/data-deps.txt b/deps/data-deps.txt index 6fd0d44..181034a 100644 --- a/deps/data-deps.txt +++ b/deps/data-deps.txt @@ -5,8 +5,8 @@ - - + + diff --git a/deps/font-awesome-6.5.2/css/all.css b/deps/font-awesome-6.5.2/css/all.css new file mode 100644 index 0000000..151dd57 --- /dev/null +++ b/deps/font-awesome-6.5.2/css/all.css @@ -0,0 +1,8028 @@ +/*! + * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fa, +.fa-classic, +.fa-sharp, +.fas, +.fa-solid, +.far, +.fa-regular, +.fab, +.fa-brands { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fas, +.fa-classic, +.fa-solid, +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(var(--fa-li-width, 2em) * -1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); } + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out); } + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear); } + +.fa-spin-reverse { + --fa-animation-direction: reverse; } + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)); } + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s; } } + +@-webkit-keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-beat { + 0%, 90% { + -webkit-transform: scale(1); + transform: scale(1); } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } + 100% { + -webkit-transform: scale(1, 1) translateY(0); + transform: scale(1, 1) translateY(0); } } + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@-webkit-keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + -webkit-transform: scale(1); + transform: scale(1); } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)); } } + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } } + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg); } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); } + 8%, 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg); } + 12%, 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg); } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg); } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg); } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg); } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg); } + 40%, 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } } + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); } + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + +.fa-flip-horizontal { + -webkit-transform: scale(-1, 1); + transform: scale(-1, 1); } + +.fa-flip-vertical { + -webkit-transform: scale(1, -1); + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1, -1); + transform: scale(-1, -1); } + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, 0)); + transform: rotate(var(--fa-rotate-angle, 0)); } + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; } + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-at::before { + content: "\40"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-info::before { + content: "\f129"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-k::before { + content: "\4b"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-w::before { + content: "\57"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-film::before { + content: "\f008"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-hourglass-half::before { + content: "\f252"; } + +.fa-hourglass-2::before { + content: "\f252"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-om::before { + content: "\f679"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-i::before { + content: "\49"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-v::before { + content: "\56"; } + +.fa-bangladeshi-taka-sign::before { + content: "\e2e6"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-school::before { + content: "\f549"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-q::before { + content: "\51"; } + +.fa-g::before { + content: "\47"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-e::before { + content: "\45"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-user::before { + content: "\f007"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-key::before { + content: "\f084"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-c::before { + content: "\43"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-star::before { + content: "\f005"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-box::before { + content: "\f466"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-server::before { + content: "\f233"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-l::before { + content: "\4c"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-train::before { + content: "\f238"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-table-cells-column-lock::before { + content: "\e678"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-z::before { + content: "\5a"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-a::before { + content: "\41"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-p::before { + content: "\50"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-question::before { + content: "\3f"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-code::before { + content: "\f121"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-f::before { + content: "\46"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-road::before { + content: "\f018"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-h::before { + content: "\48"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-r::before { + content: "\52"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-plant-wilt::before { + content: "\e5aa"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-j::before { + content: "\4a"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-o::before { + content: "\4f"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-book-tanakh::before { + content: "\f827"; } + +.fa-tanakh::before { + content: "\f827"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f254"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-water::before { + content: "\f773"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-u::before { + content: "\55"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-s::before { + content: "\53"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-images::before { + content: "\f302"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-n::before { + content: "\4e"; } + +.fa-cable-car::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-download::before { + content: "\f019"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-file-circle-check::before { + content: "\e5a0"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-b::before { + content: "\42"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-person-through-window::before { + content: "\e5a9"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-file-circle-xmark::before { + content: "\e5a1"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-section::before { + content: "\e447"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-font::before { + content: "\f031"; } + +.fa-table-cells-row-lock::before { + content: "\e67a"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-y::before { + content: "\59"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-child-combatant::before { + content: "\e4e0"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-map::before { + content: "\f279"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-notdef::before { + content: "\e1fe"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-display::before { + content: "\e163"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-award::before { + content: "\f559"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-music::before { + content: "\f001"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-t::before { + content: "\54"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-haykal::before { + content: "\f666"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-file-circle-plus::before { + content: "\e494"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-m::before { + content: "\4d"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-share::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-train-tram::before { + content: "\e5b4"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-x::before { + content: "\58"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-d::before { + content: "\44"; } + +.fa-stapler::before { + content: "\e5af"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-pixiv:before { + content: "\e640"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-square-js:before { + content: "\f3b9"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-jxl:before { + content: "\e67b"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-square-reddit:before { + content: "\f1a2"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-square-font-awesome:before { + content: "\e5ad"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-brave:before { + content: "\e63c"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-square-instagram:before { + content: "\e055"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-square-hacker-news:before { + content: "\f3af"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-threads:before { + content: "\e618"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-square-snapchat:before { + content: "\f2ad"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-square-viadeo:before { + content: "\f2aa"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-opensuse:before { + content: "\e62b"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-square-dribbble:before { + content: "\f397"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-node:before { + content: "\f419"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-debian:before { + content: "\e60b"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-square-twitter:before { + content: "\f081"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-square-kickstarter:before { + content: "\f3bb"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-square-youtube:before { + content: "\f431"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-rendact:before { + content: "\f3e4"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-meta:before { + content: "\e49b"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-square-letterboxd:before { + content: "\e62e"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-shoelace:before { + content: "\e60c"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-square-steam:before { + content: "\f1b7"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-square-vimeo:before { + content: "\f194"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-square-github:before { + content: "\f092"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-square-threads:before { + content: "\e619"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-google-scholar:before { + content: "\e63b"; } + +.fa-square-gitlab:before { + content: "\e5ae"; } + +.fa-gitlab-square:before { + content: "\e5ae"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-square-odnoklassniki:before { + content: "\f264"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-square-pinterest:before { + content: "\f0d3"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-signal-messenger:before { + content: "\e663"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-mintbit:before { + content: "\e62f"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-brave-reverse:before { + content: "\e63d"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-square-google-plus:before { + content: "\f0d4"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-web-awesome:before { + content: "\e682"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-square-xing:before { + content: "\f169"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-letterboxd:before { + content: "\e62d"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-x-twitter:before { + content: "\e61b"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-square-pied-piper:before { + content: "\e01e"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-square-web-awesome-stroke:before { + content: "\e684"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-square-facebook:before { + content: "\f082"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-square-lastfm:before { + content: "\f203"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-upwork:before { + content: "\e641"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-square-upwork:before { + content: "\e67c"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-square-web-awesome:before { + content: "\e683"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-bluesky:before { + content: "\e671"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-square-behance:before { + content: "\f1b5"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-webflow:before { + content: "\e65c"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-space-awesome:before { + content: "\e5ac"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-square-git:before { + content: "\f1d2"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-square-tumblr:before { + content: "\f174"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-php:before { + content: "\f457"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-stubber:before { + content: "\e5c7"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-odysee:before { + content: "\e5c6"; } + +.fa-square-whatsapp:before { + content: "\f40c"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-square-x-twitter:before { + content: "\e61a"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-weight: 400; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); } diff --git a/deps/font-awesome-6.5.2/css/all.min.css b/deps/font-awesome-6.5.2/css/all.min.css new file mode 100644 index 0000000..269bcee --- /dev/null +++ b/deps/font-awesome-6.5.2/css/all.min.css @@ -0,0 +1,9 @@ +/*! + * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-table-cells-column-lock:before{content:"\e678"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-table-cells-row-lock:before{content:"\e67a"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-jxl:before{content:"\e67b"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before,.fa-square-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-web-awesome:before{content:"\e682"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-square-web-awesome-stroke:before{content:"\e684"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-square-upwork:before{content:"\e67c"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-square-web-awesome:before{content:"\e683"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-bluesky:before{content:"\e671"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }@font-face{font-family:"FontAwesome";font-display:block;src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); } \ No newline at end of file diff --git a/deps/font-awesome-6.5.2/css/v4-shims.css b/deps/font-awesome-6.5.2/css/v4-shims.css new file mode 100644 index 0000000..ea60ea4 --- /dev/null +++ b/deps/font-awesome-6.5.2/css/v4-shims.css @@ -0,0 +1,2194 @@ +/*! + * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa.fa-glass:before { + content: "\f000"; } + +.fa.fa-envelope-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-o:before { + content: "\f0e0"; } + +.fa.fa-star-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-o:before { + content: "\f005"; } + +.fa.fa-remove:before { + content: "\f00d"; } + +.fa.fa-close:before { + content: "\f00d"; } + +.fa.fa-gear:before { + content: "\f013"; } + +.fa.fa-trash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-trash-o:before { + content: "\f2ed"; } + +.fa.fa-home:before { + content: "\f015"; } + +.fa.fa-file-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-o:before { + content: "\f15b"; } + +.fa.fa-clock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-clock-o:before { + content: "\f017"; } + +.fa.fa-arrow-circle-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-down:before { + content: "\f358"; } + +.fa.fa-arrow-circle-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-up:before { + content: "\f35b"; } + +.fa.fa-play-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-play-circle-o:before { + content: "\f144"; } + +.fa.fa-repeat:before { + content: "\f01e"; } + +.fa.fa-rotate-right:before { + content: "\f01e"; } + +.fa.fa-refresh:before { + content: "\f021"; } + +.fa.fa-list-alt { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-list-alt:before { + content: "\f022"; } + +.fa.fa-dedent:before { + content: "\f03b"; } + +.fa.fa-video-camera:before { + content: "\f03d"; } + +.fa.fa-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-picture-o:before { + content: "\f03e"; } + +.fa.fa-photo { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-photo:before { + content: "\f03e"; } + +.fa.fa-image { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-image:before { + content: "\f03e"; } + +.fa.fa-map-marker:before { + content: "\f3c5"; } + +.fa.fa-pencil-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pencil-square-o:before { + content: "\f044"; } + +.fa.fa-edit { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-edit:before { + content: "\f044"; } + +.fa.fa-share-square-o:before { + content: "\f14d"; } + +.fa.fa-check-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-square-o:before { + content: "\f14a"; } + +.fa.fa-arrows:before { + content: "\f0b2"; } + +.fa.fa-times-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-circle-o:before { + content: "\f057"; } + +.fa.fa-check-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-circle-o:before { + content: "\f058"; } + +.fa.fa-mail-forward:before { + content: "\f064"; } + +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + +.fa.fa-eye { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eye-slash { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-warning:before { + content: "\f071"; } + +.fa.fa-calendar:before { + content: "\f073"; } + +.fa.fa-arrows-v:before { + content: "\f338"; } + +.fa.fa-arrows-h:before { + content: "\f337"; } + +.fa.fa-bar-chart:before { + content: "\e0e3"; } + +.fa.fa-bar-chart-o:before { + content: "\e0e3"; } + +.fa.fa-twitter-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitter-square:before { + content: "\f081"; } + +.fa.fa-facebook-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-square:before { + content: "\f082"; } + +.fa.fa-gears:before { + content: "\f085"; } + +.fa.fa-thumbs-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-up:before { + content: "\f164"; } + +.fa.fa-thumbs-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-down:before { + content: "\f165"; } + +.fa.fa-heart-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-heart-o:before { + content: "\f004"; } + +.fa.fa-sign-out:before { + content: "\f2f5"; } + +.fa.fa-linkedin-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin-square:before { + content: "\f08c"; } + +.fa.fa-thumb-tack:before { + content: "\f08d"; } + +.fa.fa-external-link:before { + content: "\f35d"; } + +.fa.fa-sign-in:before { + content: "\f2f6"; } + +.fa.fa-github-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-github-square:before { + content: "\f092"; } + +.fa.fa-lemon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lemon-o:before { + content: "\f094"; } + +.fa.fa-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-square-o:before { + content: "\f0c8"; } + +.fa.fa-bookmark-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bookmark-o:before { + content: "\f02e"; } + +.fa.fa-twitter { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook:before { + content: "\f39e"; } + +.fa.fa-facebook-f { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-f:before { + content: "\f39e"; } + +.fa.fa-github { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-feed:before { + content: "\f09e"; } + +.fa.fa-hdd-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hdd-o:before { + content: "\f0a0"; } + +.fa.fa-hand-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-right:before { + content: "\f0a4"; } + +.fa.fa-hand-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-left:before { + content: "\f0a5"; } + +.fa.fa-hand-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-up:before { + content: "\f0a6"; } + +.fa.fa-hand-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-down:before { + content: "\f0a7"; } + +.fa.fa-globe:before { + content: "\f57d"; } + +.fa.fa-tasks:before { + content: "\f828"; } + +.fa.fa-arrows-alt:before { + content: "\f31e"; } + +.fa.fa-group:before { + content: "\f0c0"; } + +.fa.fa-chain:before { + content: "\f0c1"; } + +.fa.fa-cut:before { + content: "\f0c4"; } + +.fa.fa-files-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-files-o:before { + content: "\f0c5"; } + +.fa.fa-floppy-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-floppy-o:before { + content: "\f0c7"; } + +.fa.fa-save { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-save:before { + content: "\f0c7"; } + +.fa.fa-navicon:before { + content: "\f0c9"; } + +.fa.fa-reorder:before { + content: "\f0c9"; } + +.fa.fa-magic:before { + content: "\e2ca"; } + +.fa.fa-pinterest { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa.fa-google-plus-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa.fa-google-plus { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus:before { + content: "\f0d5"; } + +.fa.fa-money:before { + content: "\f3d1"; } + +.fa.fa-unsorted:before { + content: "\f0dc"; } + +.fa.fa-sort-desc:before { + content: "\f0dd"; } + +.fa.fa-sort-asc:before { + content: "\f0de"; } + +.fa.fa-linkedin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin:before { + content: "\f0e1"; } + +.fa.fa-rotate-left:before { + content: "\f0e2"; } + +.fa.fa-legal:before { + content: "\f0e3"; } + +.fa.fa-tachometer:before { + content: "\f625"; } + +.fa.fa-dashboard:before { + content: "\f625"; } + +.fa.fa-comment-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comment-o:before { + content: "\f075"; } + +.fa.fa-comments-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comments-o:before { + content: "\f086"; } + +.fa.fa-flash:before { + content: "\f0e7"; } + +.fa.fa-clipboard:before { + content: "\f0ea"; } + +.fa.fa-lightbulb-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lightbulb-o:before { + content: "\f0eb"; } + +.fa.fa-exchange:before { + content: "\f362"; } + +.fa.fa-cloud-download:before { + content: "\f0ed"; } + +.fa.fa-cloud-upload:before { + content: "\f0ee"; } + +.fa.fa-bell-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-o:before { + content: "\f0f3"; } + +.fa.fa-cutlery:before { + content: "\f2e7"; } + +.fa.fa-file-text-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-text-o:before { + content: "\f15c"; } + +.fa.fa-building-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-building-o:before { + content: "\f1ad"; } + +.fa.fa-hospital-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hospital-o:before { + content: "\f0f8"; } + +.fa.fa-tablet:before { + content: "\f3fa"; } + +.fa.fa-mobile:before { + content: "\f3cd"; } + +.fa.fa-mobile-phone:before { + content: "\f3cd"; } + +.fa.fa-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-o:before { + content: "\f111"; } + +.fa.fa-mail-reply:before { + content: "\f3e5"; } + +.fa.fa-github-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-folder-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-o:before { + content: "\f07b"; } + +.fa.fa-folder-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-open-o:before { + content: "\f07c"; } + +.fa.fa-smile-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-smile-o:before { + content: "\f118"; } + +.fa.fa-frown-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-frown-o:before { + content: "\f119"; } + +.fa.fa-meh-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-meh-o:before { + content: "\f11a"; } + +.fa.fa-keyboard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-keyboard-o:before { + content: "\f11c"; } + +.fa.fa-flag-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-flag-o:before { + content: "\f024"; } + +.fa.fa-mail-reply-all:before { + content: "\f122"; } + +.fa.fa-star-half-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-o:before { + content: "\f5c0"; } + +.fa.fa-star-half-empty { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-empty:before { + content: "\f5c0"; } + +.fa.fa-star-half-full { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-full:before { + content: "\f5c0"; } + +.fa.fa-code-fork:before { + content: "\f126"; } + +.fa.fa-chain-broken:before { + content: "\f127"; } + +.fa.fa-unlink:before { + content: "\f127"; } + +.fa.fa-calendar-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-o:before { + content: "\f133"; } + +.fa.fa-maxcdn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-html5 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-css3 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-unlock-alt:before { + content: "\f09c"; } + +.fa.fa-minus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-minus-square-o:before { + content: "\f146"; } + +.fa.fa-level-up:before { + content: "\f3bf"; } + +.fa.fa-level-down:before { + content: "\f3be"; } + +.fa.fa-pencil-square:before { + content: "\f14b"; } + +.fa.fa-external-link-square:before { + content: "\f360"; } + +.fa.fa-compass { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down:before { + content: "\f150"; } + +.fa.fa-toggle-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-down:before { + content: "\f150"; } + +.fa.fa-caret-square-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-up:before { + content: "\f151"; } + +.fa.fa-toggle-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-up:before { + content: "\f151"; } + +.fa.fa-caret-square-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-right:before { + content: "\f152"; } + +.fa.fa-toggle-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-right:before { + content: "\f152"; } + +.fa.fa-eur:before { + content: "\f153"; } + +.fa.fa-euro:before { + content: "\f153"; } + +.fa.fa-gbp:before { + content: "\f154"; } + +.fa.fa-usd:before { + content: "\24"; } + +.fa.fa-dollar:before { + content: "\24"; } + +.fa.fa-inr:before { + content: "\e1bc"; } + +.fa.fa-rupee:before { + content: "\e1bc"; } + +.fa.fa-jpy:before { + content: "\f157"; } + +.fa.fa-cny:before { + content: "\f157"; } + +.fa.fa-rmb:before { + content: "\f157"; } + +.fa.fa-yen:before { + content: "\f157"; } + +.fa.fa-rub:before { + content: "\f158"; } + +.fa.fa-ruble:before { + content: "\f158"; } + +.fa.fa-rouble:before { + content: "\f158"; } + +.fa.fa-krw:before { + content: "\f159"; } + +.fa.fa-won:before { + content: "\f159"; } + +.fa.fa-btc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin:before { + content: "\f15a"; } + +.fa.fa-file-text:before { + content: "\f15c"; } + +.fa.fa-sort-alpha-asc:before { + content: "\f15d"; } + +.fa.fa-sort-alpha-desc:before { + content: "\f881"; } + +.fa.fa-sort-amount-asc:before { + content: "\f884"; } + +.fa.fa-sort-amount-desc:before { + content: "\f160"; } + +.fa.fa-sort-numeric-asc:before { + content: "\f162"; } + +.fa.fa-sort-numeric-desc:before { + content: "\f886"; } + +.fa.fa-youtube-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-square:before { + content: "\f431"; } + +.fa.fa-youtube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square:before { + content: "\f169"; } + +.fa.fa-youtube-play { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-play:before { + content: "\f167"; } + +.fa.fa-dropbox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-overflow { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-instagram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-flickr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-adn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square:before { + content: "\f171"; } + +.fa.fa-tumblr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square:before { + content: "\f174"; } + +.fa.fa-long-arrow-down:before { + content: "\f309"; } + +.fa.fa-long-arrow-up:before { + content: "\f30c"; } + +.fa.fa-long-arrow-left:before { + content: "\f30a"; } + +.fa.fa-long-arrow-right:before { + content: "\f30b"; } + +.fa.fa-apple { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-windows { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-android { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linux { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dribbble { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skype { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-foursquare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-trello { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gratipay { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip:before { + content: "\f184"; } + +.fa.fa-sun-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sun-o:before { + content: "\f185"; } + +.fa.fa-moon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-moon-o:before { + content: "\f186"; } + +.fa.fa-vk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-renren { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pagelines { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-exchange { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right:before { + content: "\f35a"; } + +.fa.fa-arrow-circle-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-left:before { + content: "\f359"; } + +.fa.fa-caret-square-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-left:before { + content: "\f191"; } + +.fa.fa-toggle-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-left:before { + content: "\f191"; } + +.fa.fa-dot-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-dot-circle-o:before { + content: "\f192"; } + +.fa.fa-vimeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo-square:before { + content: "\f194"; } + +.fa.fa-try:before { + content: "\e2bb"; } + +.fa.fa-turkish-lira:before { + content: "\e2bb"; } + +.fa.fa-plus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-plus-square-o:before { + content: "\f0fe"; } + +.fa.fa-slack { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wordpress { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-openid { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-institution:before { + content: "\f19c"; } + +.fa.fa-bank:before { + content: "\f19c"; } + +.fa.fa-mortar-board:before { + content: "\f19d"; } + +.fa.fa-yahoo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square:before { + content: "\f1a2"; } + +.fa.fa-stumbleupon-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stumbleupon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-delicious { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-digg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-pp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-drupal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-joomla { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square:before { + content: "\f1b5"; } + +.fa.fa-steam { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square:before { + content: "\f1b7"; } + +.fa.fa-automobile:before { + content: "\f1b9"; } + +.fa.fa-cab:before { + content: "\f1ba"; } + +.fa.fa-spotify { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-deviantart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-soundcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-file-pdf-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-pdf-o:before { + content: "\f1c1"; } + +.fa.fa-file-word-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-word-o:before { + content: "\f1c2"; } + +.fa.fa-file-excel-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-excel-o:before { + content: "\f1c3"; } + +.fa.fa-file-powerpoint-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-powerpoint-o:before { + content: "\f1c4"; } + +.fa.fa-file-image-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-image-o:before { + content: "\f1c5"; } + +.fa.fa-file-photo-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-photo-o:before { + content: "\f1c5"; } + +.fa.fa-file-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-picture-o:before { + content: "\f1c5"; } + +.fa.fa-file-archive-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-archive-o:before { + content: "\f1c6"; } + +.fa.fa-file-zip-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-zip-o:before { + content: "\f1c6"; } + +.fa.fa-file-audio-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-audio-o:before { + content: "\f1c7"; } + +.fa.fa-file-sound-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-sound-o:before { + content: "\f1c7"; } + +.fa.fa-file-video-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-video-o:before { + content: "\f1c8"; } + +.fa.fa-file-movie-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-movie-o:before { + content: "\f1c8"; } + +.fa.fa-file-code-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-code-o:before { + content: "\f1c9"; } + +.fa.fa-vine { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-codepen { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-jsfiddle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-life-bouy:before { + content: "\f1cd"; } + +.fa.fa-life-buoy:before { + content: "\f1cd"; } + +.fa.fa-life-saver:before { + content: "\f1cd"; } + +.fa.fa-support:before { + content: "\f1cd"; } + +.fa.fa-circle-o-notch:before { + content: "\f1ce"; } + +.fa.fa-rebel { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra:before { + content: "\f1d0"; } + +.fa.fa-resistance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-resistance:before { + content: "\f1d0"; } + +.fa.fa-empire { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge:before { + content: "\f1d1"; } + +.fa.fa-git-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-git-square:before { + content: "\f1d2"; } + +.fa.fa-git { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hacker-news { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square:before { + content: "\f1d4"; } + +.fa.fa-yc-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc-square:before { + content: "\f1d4"; } + +.fa.fa-tencent-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-qq { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weixin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat:before { + content: "\f1d7"; } + +.fa.fa-send:before { + content: "\f1d8"; } + +.fa.fa-paper-plane-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-paper-plane-o:before { + content: "\f1d8"; } + +.fa.fa-send-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-send-o:before { + content: "\f1d8"; } + +.fa.fa-circle-thin { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-thin:before { + content: "\f111"; } + +.fa.fa-header:before { + content: "\f1dc"; } + +.fa.fa-futbol-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-futbol-o:before { + content: "\f1e3"; } + +.fa.fa-soccer-ball-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-soccer-ball-o:before { + content: "\f1e3"; } + +.fa.fa-slideshare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitch { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yelp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-newspaper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-newspaper-o:before { + content: "\f1ea"; } + +.fa.fa-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-wallet { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-visa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-mastercard { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-discover { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-amex { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-stripe { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bell-slash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-slash-o:before { + content: "\f1f6"; } + +.fa.fa-trash:before { + content: "\f2ed"; } + +.fa.fa-copyright { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eyedropper:before { + content: "\f1fb"; } + +.fa.fa-area-chart:before { + content: "\f1fe"; } + +.fa.fa-pie-chart:before { + content: "\f200"; } + +.fa.fa-line-chart:before { + content: "\f201"; } + +.fa.fa-lastfm { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square:before { + content: "\f203"; } + +.fa.fa-ioxhost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-angellist { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-cc:before { + content: "\f20a"; } + +.fa.fa-ils:before { + content: "\f20b"; } + +.fa.fa-shekel:before { + content: "\f20b"; } + +.fa.fa-sheqel:before { + content: "\f20b"; } + +.fa.fa-buysellads { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-connectdevelop { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dashcube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-forumbee { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-leanpub { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-sellsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-shirtsinbulk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-simplybuilt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skyatlas { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-diamond { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-diamond:before { + content: "\f3a5"; } + +.fa.fa-transgender:before { + content: "\f224"; } + +.fa.fa-intersex:before { + content: "\f224"; } + +.fa.fa-transgender-alt:before { + content: "\f225"; } + +.fa.fa-facebook-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-official:before { + content: "\f09a"; } + +.fa.fa-pinterest-p { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-whatsapp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hotel:before { + content: "\f236"; } + +.fa.fa-viacoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-medium { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc:before { + content: "\f23b"; } + +.fa.fa-optin-monster { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opencart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-expeditedssl { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-battery-4:before { + content: "\f240"; } + +.fa.fa-battery:before { + content: "\f240"; } + +.fa.fa-battery-3:before { + content: "\f241"; } + +.fa.fa-battery-2:before { + content: "\f242"; } + +.fa.fa-battery-1:before { + content: "\f243"; } + +.fa.fa-battery-0:before { + content: "\f244"; } + +.fa.fa-object-group { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-object-ungroup { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o:before { + content: "\f249"; } + +.fa.fa-cc-jcb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-diners-club { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-clone { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hourglass-o:before { + content: "\f254"; } + +.fa.fa-hourglass-1:before { + content: "\f251"; } + +.fa.fa-hourglass-2:before { + content: "\f252"; } + +.fa.fa-hourglass-3:before { + content: "\f253"; } + +.fa.fa-hand-rock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-rock-o:before { + content: "\f255"; } + +.fa.fa-hand-grab-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-grab-o:before { + content: "\f255"; } + +.fa.fa-hand-paper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-paper-o:before { + content: "\f256"; } + +.fa.fa-hand-stop-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-stop-o:before { + content: "\f256"; } + +.fa.fa-hand-scissors-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-scissors-o:before { + content: "\f257"; } + +.fa.fa-hand-lizard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-lizard-o:before { + content: "\f258"; } + +.fa.fa-hand-spock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-spock-o:before { + content: "\f259"; } + +.fa.fa-hand-pointer-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-pointer-o:before { + content: "\f25a"; } + +.fa.fa-hand-peace-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-peace-o:before { + content: "\f25b"; } + +.fa.fa-registered { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-creative-commons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa.fa-get-pocket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wikipedia-w { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-safari { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-chrome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-firefox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opera { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-internet-explorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-television:before { + content: "\f26c"; } + +.fa.fa-contao { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-500px { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-amazon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-calendar-plus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-plus-o:before { + content: "\f271"; } + +.fa.fa-calendar-minus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-minus-o:before { + content: "\f272"; } + +.fa.fa-calendar-times-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-times-o:before { + content: "\f273"; } + +.fa.fa-calendar-check-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-check-o:before { + content: "\f274"; } + +.fa.fa-map-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-map-o:before { + content: "\f279"; } + +.fa.fa-commenting:before { + content: "\f4ad"; } + +.fa.fa-commenting-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-commenting-o:before { + content: "\f4ad"; } + +.fa.fa-houzz { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo:before { + content: "\f27d"; } + +.fa.fa-black-tie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fonticons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-alien { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-edge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card-alt:before { + content: "\f09d"; } + +.fa.fa-codiepie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-modx { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fort-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-usb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-product-hunt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-mixcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-scribd { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pause-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pause-circle-o:before { + content: "\f28b"; } + +.fa.fa-stop-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-stop-circle-o:before { + content: "\f28d"; } + +.fa.fa-bluetooth { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bluetooth-b { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gitlab { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpbeginner { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpforms { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-envira { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt:before { + content: "\f368"; } + +.fa.fa-question-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-question-circle-o:before { + content: "\f059"; } + +.fa.fa-volume-control-phone:before { + content: "\f2a0"; } + +.fa.fa-asl-interpreting:before { + content: "\f2a3"; } + +.fa.fa-deafness:before { + content: "\f2a4"; } + +.fa.fa-hard-of-hearing:before { + content: "\f2a4"; } + +.fa.fa-glide { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-glide-g { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-signing:before { + content: "\f2a7"; } + +.fa.fa-viadeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa.fa-snapchat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa.fa-snapchat-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa.fa-pied-piper { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-first-order { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yoast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-themeisle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official:before { + content: "\f2b3"; } + +.fa.fa-google-plus-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-circle:before { + content: "\f2b3"; } + +.fa.fa-font-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa:before { + content: "\f2b4"; } + +.fa.fa-handshake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-handshake-o:before { + content: "\f2b5"; } + +.fa.fa-envelope-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-open-o:before { + content: "\f2b6"; } + +.fa.fa-linode { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-address-book-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-book-o:before { + content: "\f2b9"; } + +.fa.fa-vcard:before { + content: "\f2bb"; } + +.fa.fa-address-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-card-o:before { + content: "\f2bb"; } + +.fa.fa-vcard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-vcard-o:before { + content: "\f2bb"; } + +.fa.fa-user-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-circle-o:before { + content: "\f2bd"; } + +.fa.fa-user-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-o:before { + content: "\f007"; } + +.fa.fa-id-badge { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license:before { + content: "\f2c2"; } + +.fa.fa-id-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-id-card-o:before { + content: "\f2c2"; } + +.fa.fa-drivers-license-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license-o:before { + content: "\f2c2"; } + +.fa.fa-quora { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-free-code-camp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-telegram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-thermometer-4:before { + content: "\f2c7"; } + +.fa.fa-thermometer:before { + content: "\f2c7"; } + +.fa.fa-thermometer-3:before { + content: "\f2c8"; } + +.fa.fa-thermometer-2:before { + content: "\f2c9"; } + +.fa.fa-thermometer-1:before { + content: "\f2ca"; } + +.fa.fa-thermometer-0:before { + content: "\f2cb"; } + +.fa.fa-bathtub:before { + content: "\f2cd"; } + +.fa.fa-s15:before { + content: "\f2cd"; } + +.fa.fa-window-maximize { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-restore { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle:before { + content: "\f410"; } + +.fa.fa-window-close-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-close-o:before { + content: "\f410"; } + +.fa.fa-times-rectangle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle-o:before { + content: "\f410"; } + +.fa.fa-bandcamp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-grav { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-etsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-imdb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ravelry { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast:before { + content: "\f2da"; } + +.fa.fa-snowflake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-snowflake-o:before { + content: "\f2dc"; } + +.fa.fa-superpowers { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpexplorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-meetup { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } diff --git a/deps/font-awesome-6.5.2/css/v4-shims.min.css b/deps/font-awesome-6.5.2/css/v4-shims.min.css new file mode 100644 index 0000000..09baf5f --- /dev/null +++ b/deps/font-awesome-6.5.2/css/v4-shims.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ +.fa.fa-glass:before{content:"\f000"}.fa.fa-envelope-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-star-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-home:before{content:"\f015"}.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-list-alt:before{content:"\f022"}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-edit{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit:before{content:"\f044"}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart-o:before,.fa.fa-bar-chart:before{content:"\e0e3"}.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-twitter-square:before{content:"\f081"}.fa.fa-facebook-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square:before{content:"\f082"}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-github-square:before{content:"\f092"}.fa.fa-lemon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-globe:before{content:"\f57d"}.fa.fa-tasks:before{content:"\f828"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-cut:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-save:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-magic:before{content:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square:before{content:"\f0d3"}.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-square:before{content:"\f0d4"}.fa.fa-google-plus{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f625"}.fa.fa-comment-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard:before{content:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f0ed"}.fa.fa-cloud-upload:before{content:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f5c0"}.fa.fa-star-half-empty{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f5c0"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before,.fa.fa-unlink:before{content:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt:before{content:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\24"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\e1bc"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f884"}.fa.fa-sort-amount-desc:before{content:"\f160"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-square:before{content:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square:before{content:"\f169"}.fa.fa-youtube-play{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square:before{content:"\f174"}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo-square:before{content:"\f194"}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square:before{content:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square:before{content:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square:before{content:"\f1b7"}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-life-bouy:before,.fa.fa-life-buoy:before,.fa.fa-life-saver:before,.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-git-square:before{content:"\f1d2"}.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-futbol-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square:before{content:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before,.fa.fa-transgender:before{content:"\f224"}.fa.fa-transgender-alt:before{content:"\f225"}.fa.fa-facebook-official{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square:before{content:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square:before{content:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost:before{content:"\f2ab"}.fa.fa-snapchat-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-square:before{content:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400} \ No newline at end of file diff --git a/deps/font-awesome-6.5.2/webfonts/fa-brands-400.ttf b/deps/font-awesome-6.5.2/webfonts/fa-brands-400.ttf new file mode 100644 index 0000000..1fbb1f7 Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-brands-400.ttf differ diff --git a/deps/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 b/deps/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000..5d28021 Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 differ diff --git a/deps/font-awesome-6.5.2/webfonts/fa-regular-400.ttf b/deps/font-awesome-6.5.2/webfonts/fa-regular-400.ttf new file mode 100644 index 0000000..549d68d Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-regular-400.ttf differ diff --git a/deps/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 b/deps/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 new file mode 100644 index 0000000..18400d7 Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 differ diff --git a/deps/font-awesome-6.5.2/webfonts/fa-solid-900.ttf b/deps/font-awesome-6.5.2/webfonts/fa-solid-900.ttf new file mode 100644 index 0000000..bb2a869 Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-solid-900.ttf differ diff --git a/deps/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 b/deps/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000..758dd4f Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 differ diff --git a/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf b/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf new file mode 100644 index 0000000..8c5864c Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf differ diff --git a/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 b/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 0000000..f94bec2 Binary files /dev/null and b/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 differ diff --git a/index.html b/index.html index 95cd0bb..8d2e6b2 100644 --- a/index.html +++ b/index.html @@ -17,8 +17,8 @@ - - + + diff --git a/news/index.html b/news/index.html index 934429e..cc39dd4 100644 --- a/news/index.html +++ b/news/index.html @@ -1,5 +1,5 @@ -Changelog • nflseedR +Changelog • nflseedR Skip to contents diff --git a/pkgdown.yml b/pkgdown.yml index d83911e..0fa8ec1 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -5,7 +5,7 @@ articles: articles/nflseedR: nflseedR.html articles/nflsim: nflsim.html articles/tiebreaker: tiebreaker.html -last_built: 2024-10-15T11:47Z +last_built: 2024-12-23T14:58Z urls: reference: https://nflseedr.com/reference article: https://nflseedr.com/articles diff --git a/reference/compute_conference_seeds.html b/reference/compute_conference_seeds.html index 58c5bfa..067b916 100644 --- a/reference/compute_conference_seeds.html +++ b/reference/compute_conference_seeds.html @@ -1,5 +1,5 @@ -Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds • nflseedR +Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds • nflseedR Skip to contents @@ -144,19 +144,19 @@

    Examples nflseedR::compute_conference_seeds(h2h = .$h2h) %>% purrr::pluck("standings") }) -#> 11:47:55 | Calculating team data -#> 11:47:55 | Calculating head to head -#> 11:47:55 | Calculating division rank #1 -#> 11:47:56 | Calculating division rank #2 -#> 11:47:56 | Calculating division rank #3 -#> 11:47:56 | Calculating division rank #4 -#> 11:47:56 | Calculating seed #1 -#> 11:47:56 | Calculating seed #2 -#> 11:47:56 | Calculating seed #3 -#> 11:47:56 | Calculating seed #4 -#> 11:47:56 | Calculating seed #5 -#> 11:47:56 | Calculating seed #6 -#> 11:47:56 | Calculating seed #7 +#> 14:58:06 | Calculating team data +#> 14:58:06 | Calculating head to head +#> 14:58:06 | Calculating division rank #1 +#> 14:58:07 | Calculating division rank #2 +#> 14:58:07 | Calculating division rank #3 +#> 14:58:07 | Calculating division rank #4 +#> 14:58:07 | Calculating seed #1 +#> 14:58:07 | Calculating seed #2 +#> 14:58:07 | Calculating seed #3 +#> 14:58:07 | Calculating seed #4 +#> 14:58:07 | Calculating seed #5 +#> 14:58:07 | Calculating seed #6 +#> 14:58:07 | Calculating seed #7 #> # A tibble: 64 × 17 #> sim conf division team games wins true_wins losses ties win_pct div_pct #> <int> <chr> <chr> <chr> <int> <dbl> <int> <int> <int> <dbl> <dbl> diff --git a/reference/compute_division_ranks.html b/reference/compute_division_ranks.html index 8c8bd0b..ec63dba 100644 --- a/reference/compute_division_ranks.html +++ b/reference/compute_division_ranks.html @@ -1,5 +1,5 @@ -Compute NFL Division Rankings using Game Results — compute_division_ranks • nflseedR +Compute NFL Division Rankings using Game Results — compute_division_ranks • nflseedR Skip to contents @@ -180,12 +180,12 @@

    Examples nflseedR::compute_division_ranks() %>% purrr::pluck("standings") }) -#> 11:47:57 | Calculating team data -#> 11:47:58 | Calculating head to head -#> 11:47:58 | Calculating division rank #1 -#> 11:47:58 | Calculating division rank #2 -#> 11:47:58 | Calculating division rank #3 -#> 11:47:58 | Calculating division rank #4 +#> 14:58:09 | Calculating team data +#> 14:58:09 | Calculating head to head +#> 14:58:09 | Calculating division rank #1 +#> 14:58:09 | Calculating division rank #2 +#> 14:58:09 | Calculating division rank #3 +#> 14:58:09 | Calculating division rank #4 #> # A tibble: 64 × 16 #> sim conf division team games wins true_wins losses ties win_pct div_pct #> <int> <chr> <chr> <chr> <int> <dbl> <int> <int> <int> <dbl> <dbl> diff --git a/reference/compute_draft_order.html b/reference/compute_draft_order.html index f9e8eca..a40f2a9 100644 --- a/reference/compute_draft_order.html +++ b/reference/compute_draft_order.html @@ -1,5 +1,5 @@ -Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order • nflseedR +Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order • nflseedR Skip to contents @@ -161,50 +161,50 @@

    Examples nflseedR::compute_conference_seeds(h2h = .$h2h, playoff_seeds = 6) %>% nflseedR::compute_draft_order(games = games, h2h = .$h2h) }) -#> 11:47:58 | Calculating team data -#> 11:47:58 | Calculating head to head -#> 11:47:58 | Calculating division rank #1 -#> 11:47:58 | Calculating division rank #2 -#> 11:47:59 | Calculating division rank #3 -#> 11:47:59 | Calculating division rank #4 -#> 11:47:59 | Calculating seed #1 -#> 11:47:59 | Calculating seed #2 -#> 11:47:59 | Calculating seed #3 -#> 11:47:59 | Calculating seed #4 -#> 11:47:59 | Calculating seed #5 -#> 11:47:59 | Calculating seed #6 -#> 11:47:59 | Calculating draft order #32 -#> 11:47:59 | Calculating draft order #31 -#> 11:47:59 | Calculating draft order #30 -#> 11:47:59 | Calculating draft order #29 -#> 11:47:59 | Calculating draft order #28 -#> 11:47:59 | Calculating draft order #27 -#> 11:47:59 | Calculating draft order #26 -#> 11:47:59 | Calculating draft order #25 -#> 11:47:59 | Calculating draft order #24 -#> 11:47:59 | Calculating draft order #23 -#> 11:47:59 | Calculating draft order #22 -#> 11:47:59 | Calculating draft order #21 -#> 11:47:59 | Calculating draft order #20 -#> 11:47:59 | Calculating draft order #19 -#> 11:47:59 | Calculating draft order #18 -#> 11:47:59 | Calculating draft order #17 -#> 11:47:59 | Calculating draft order #16 -#> 11:47:59 | Calculating draft order #15 -#> 11:47:59 | Calculating draft order #14 -#> 11:47:59 | Calculating draft order #13 -#> 11:47:59 | Calculating draft order #12 -#> 11:47:59 | Calculating draft order #11 -#> 11:47:59 | Calculating draft order #10 -#> 11:48:00 | Calculating draft order #9 -#> 11:48:00 | Calculating draft order #8 -#> 11:48:00 | Calculating draft order #7 -#> 11:48:00 | Calculating draft order #6 -#> 11:48:00 | Calculating draft order #5 -#> 11:48:00 | Calculating draft order #4 -#> 11:48:00 | Calculating draft order #3 -#> 11:48:00 | Calculating draft order #2 -#> 11:48:00 | Calculating draft order #1 +#> 14:58:09 | Calculating team data +#> 14:58:09 | Calculating head to head +#> 14:58:09 | Calculating division rank #1 +#> 14:58:09 | Calculating division rank #2 +#> 14:58:09 | Calculating division rank #3 +#> 14:58:10 | Calculating division rank #4 +#> 14:58:10 | Calculating seed #1 +#> 14:58:10 | Calculating seed #2 +#> 14:58:10 | Calculating seed #3 +#> 14:58:10 | Calculating seed #4 +#> 14:58:10 | Calculating seed #5 +#> 14:58:10 | Calculating seed #6 +#> 14:58:10 | Calculating draft order #32 +#> 14:58:10 | Calculating draft order #31 +#> 14:58:10 | Calculating draft order #30 +#> 14:58:10 | Calculating draft order #29 +#> 14:58:10 | Calculating draft order #28 +#> 14:58:10 | Calculating draft order #27 +#> 14:58:10 | Calculating draft order #26 +#> 14:58:10 | Calculating draft order #25 +#> 14:58:10 | Calculating draft order #24 +#> 14:58:10 | Calculating draft order #23 +#> 14:58:10 | Calculating draft order #22 +#> 14:58:10 | Calculating draft order #21 +#> 14:58:10 | Calculating draft order #20 +#> 14:58:10 | Calculating draft order #19 +#> 14:58:10 | Calculating draft order #18 +#> 14:58:10 | Calculating draft order #17 +#> 14:58:10 | Calculating draft order #16 +#> 14:58:10 | Calculating draft order #15 +#> 14:58:10 | Calculating draft order #14 +#> 14:58:10 | Calculating draft order #13 +#> 14:58:10 | Calculating draft order #12 +#> 14:58:10 | Calculating draft order #11 +#> 14:58:10 | Calculating draft order #10 +#> 14:58:11 | Calculating draft order #9 +#> 14:58:11 | Calculating draft order #8 +#> 14:58:11 | Calculating draft order #7 +#> 14:58:11 | Calculating draft order #6 +#> 14:58:11 | Calculating draft order #5 +#> 14:58:11 | Calculating draft order #4 +#> 14:58:11 | Calculating draft order #3 +#> 14:58:11 | Calculating draft order #2 +#> 14:58:11 | Calculating draft order #1 #> # A tibble: 64 × 18 #> sim team conf division games wins true_wins losses ties win_pct div_pct #> <int> <chr> <chr> <chr> <int> <dbl> <int> <int> <int> <dbl> <dbl> diff --git a/reference/divisions.html b/reference/divisions.html index 52f4b27..56a92d5 100644 --- a/reference/divisions.html +++ b/reference/divisions.html @@ -1,5 +1,5 @@ -NFL team names and the conferences and divisions they belong to — divisions • nflseedR +NFL team names and the conferences and divisions they belong to — divisions • nflseedR Skip to contents diff --git a/reference/fmt_pct_special.html b/reference/fmt_pct_special.html index ee37356..88b9023 100644 --- a/reference/fmt_pct_special.html +++ b/reference/fmt_pct_special.html @@ -1,5 +1,5 @@ -Format Numerical Values to Special Percentage Strings — fmt_pct_special • nflseedR -Package index • nflseedR +Package index • nflseedR Skip to contents diff --git a/reference/load_schedules.html b/reference/load_schedules.html index ea27f94..8e321fd 100644 --- a/reference/load_schedules.html +++ b/reference/load_schedules.html @@ -1,5 +1,5 @@ -Load Lee Sharpe's Games File — load_schedules • nflseedRLoad Lee Sharpe's Games File — load_schedules • nflseedRExamples#> $ week <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,… #> $ gameday <chr> "1999-09-12", "1999-09-12", "1999-09-12", "1999-09-12… #> $ weekday <chr> "Sunday", "Sunday", "Sunday", "Sunday", "Sunday", "Su… -#> $ gametime <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… +#> $ gametime <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N #> $ away_team <chr> "MIN", "KC", "PIT", "OAK", "BUF", "SF", "CAR", "NE", … #> $ away_score <int> 17, 17, 43, 24, 14, 3, 10, 30, 25, 28, 10, 17, 35, 41… #> $ home_team <chr> "ATL", "CHI", "CLE", "GB", "IND", "JAX", "NO", "NYJ",… @@ -282,26 +282,26 @@

    Examples#> $ overtime <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,… #> $ old_game_id <chr> "1999091210", "1999091206", "1999091213", "1999091208… #> $ gsis <int> 598, 597, 604, 602, 591, 603, 592, 600, 588, 596, 589… -#> $ nfl_detail_id <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… +#> $ nfl_detail_id <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N #> $ pfr <chr> "199909120atl", "199909120chi", "199909120cle", "1999… -#> $ pff <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… +#> $ pff <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N #> $ espn <chr> "190912001", "190912003", "190912005", "190912009", "… -#> $ ftn <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… +#> $ ftn <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N #> $ away_rest <int> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,… #> $ home_rest <int> 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,… -#> $ away_moneyline <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… -#> $ home_moneyline <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… +#> $ away_moneyline <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N +#> $ home_moneyline <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N #> $ spread_line <dbl> -4.0, -3.0, -6.0, 9.0, -3.0, 5.5, 3.5, 7.0, -3.0, 9.5… -#> $ away_spread_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… -#> $ home_spread_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… +#> $ away_spread_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N +#> $ home_spread_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N #> $ total_line <dbl> 49.0, 38.0, 37.0, 43.0, 45.5, 49.0, 38.0, 44.5, 37.0,… -#> $ under_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… -#> $ over_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… +#> $ under_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N +#> $ over_odds <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N #> $ div_game <int> 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0,… #> $ roof <chr> "dome", "outdoors", "outdoors", "outdoors", "dome", "… #> $ surface <chr> "astroturf", "grass", "grass", "grass", "astroturf", … -#> $ temp <int> NA, 80, 78, 67, NA, 76, NA, 73, 75, NA, NA, 88, 84, 7… -#> $ wind <int> NA, 12, 12, 10, NA, 8, NA, 5, 3, NA, NA, 8, 10, 0, 5,… +#> $ temp <int> NA, 80, 78, 67, NA, 76, NA, 73, 75, NA, NA, 88, 84, 7… +#> $ wind <int> NA, 12, 12, 10, NA, 8, NA, 5, 3, NA, NA, 8, 10, 0, 5,… #> $ away_qb_id <chr> "00-0003761", "00-0006300", "00-0015700", "00-0005741… #> $ home_qb_id <chr> "00-0002876", "00-0010560", "00-0004230", "00-0005106… #> $ away_qb_name <chr> "Randall Cunningham", "Elvis Grbac", "Kordell Stewart… diff --git a/reference/nfl_standings.html b/reference/nfl_standings.html index edeec19..71fd23d 100644 --- a/reference/nfl_standings.html +++ b/reference/nfl_standings.html @@ -1,5 +1,5 @@ -Compute NFL Standings — nfl_standings • nflseedR +Compute NFL Standings — nfl_standings • nflseedR Skip to contents @@ -163,9 +163,9 @@

    Examples standings <- nflseedR::nfl_standings(games) print(standings, digits = 3) }) -#> 11:48:01 | Initiate Standings & Tiebreaking Data -#> 11:48:01 | Compute Division Ranks -#> 11:48:01 | Compute Conference Ranks +#> 14:58:12 | Initiate Standings & Tiebreaking Data +#> 14:58:12 | Compute Division Ranks +#> 14:58:12 | Compute Conference Ranks #> season team conf division games wins true_wins losses ties pf #> <int> <char> <char> <char> <int> <num> <int> <int> <int> <int> #> 1: 2021 BUF AFC AFC East 17 11.0 11 6 0 483 diff --git a/reference/nflseedR-package.html b/reference/nflseedR-package.html index 6b16277..4d5fd84 100644 --- a/reference/nflseedR-package.html +++ b/reference/nflseedR-package.html @@ -1,5 +1,5 @@ -nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package • nflseedRnflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package • nflseedR Skip to contents diff --git a/reference/simulate_nfl.html b/reference/simulate_nfl.html index 49a1f90..aa33dd8 100644 --- a/reference/simulate_nfl.html +++ b/reference/simulate_nfl.html @@ -1,5 +1,5 @@ -Simulate an NFL Season — simulate_nfl • nflseedRExamples# Overview output dplyr::glimpse(sim) }) -#> 11:48:03 | Loading games data +#> 14:58:14 | Loading games data #> Computation in multiple rounds can be accelerated with parallel processing. #> You should consider calling a `future::plan()`. Please see the function #> documentation for further information. #> Will go on sequentially... -#> 11:48:03 | Beginning simulation of 4 seasons in 2 rounds -#> 11:48:07 | Combining simulation data -#> 11:48:07 | Aggregating across simulations -#> 11:48:07 | DONE! +#> 14:58:14 | Beginning simulation of 4 seasons in 2 rounds +#> 14:58:19 | Combining simulation data +#> 14:58:19 | Aggregating across simulations +#> 14:58:19 | DONE! #> List of 6 #> $ teams :Classes ‘data.table’ and 'data.frame': 128 obs. of 18 variables: #> ..$ sim : num [1:128] 1 1 1 1 1 1 1 1 1 1 ... @@ -362,7 +362,7 @@

    Examples#> ..$ sim_include : chr "DRAFT" #> ..$ nflseedR_version:Classes 'package_version', 'numeric_version' hidden list of 1 #> .. ..$ : int [1:4] 1 2 0 9901 -#> ..$ finished_at : POSIXct[1:1], format: "2024-10-15 11:48:07" +#> ..$ finished_at : POSIXct[1:1], format: "2024-12-23 14:58:19" #> - attr(*, "class")= chr "nflseedR_simulation" # } diff --git a/reference/summary.nflseedR_simulation.html b/reference/summary.nflseedR_simulation.html index b9b2176..506f32e 100644 --- a/reference/summary.nflseedR_simulation.html +++ b/reference/summary.nflseedR_simulation.html @@ -1,5 +1,5 @@ -Compute Pretty Simulations Summary Table — summary.nflseedR_simulation • nflseedRCompute Pretty Simulations Summary Table — summary.nflseedR_simulation • nflseedR Skip to contents @@ -99,11 +99,11 @@

    Examples fresh_season = TRUE, simulations = 20 ) -#> 11:48:09 | Loading games data -#> 11:48:09 | Beginning simulation of 20 seasons in 1 round -#> 11:48:14 | Combining simulation data -#> 11:48:14 | Aggregating across simulations -#> 11:48:14 | DONE! +#> 14:58:20 | Loading games data +#> 14:58:20 | Beginning simulation of 20 seasons in 1 round +#> 14:58:25 | Combining simulation data +#> 14:58:25 | Aggregating across simulations +#> 14:58:26 | DONE! # Create Summary Tables tbl <- summary(sim) diff --git a/search.json b/search.json index 50780c8..3722e6f 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":[]},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"interest fostering open welcoming environment, contributors maintainers pledge making participation project community harassment-free experience everyone, regardless age, body size, disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, religion, sexual identity orientation.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes creating positive environment include: Using welcoming inclusive language respectful differing viewpoints experiences Gracefully accepting constructive criticism Focusing best community Showing empathy towards community members Examples unacceptable behavior participants include: use sexualized language imagery unwelcome sexual attention advances Trolling, insulting/derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical electronic address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"our-responsibilities","dir":"","previous_headings":"","what":"Our Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Project maintainers responsible clarifying standards acceptable behavior expected take appropriate fair corrective action response instances unacceptable behavior. Project maintainers right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, ban temporarily permanently contributor behaviors deem inappropriate, threatening, offensive, harmful.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within project spaces public spaces individual representing project community. Examples representing project community include using official project e-mail address, posting via official social media account, acting appointed representative online offline event. Representation project may defined clarified project maintainers.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported contacting project team hello@dynastyprocess.com. complaints reviewed investigated result response deemed necessary appropriate circumstances. project team obligated maintain confidentiality regard reporter incident. details specific enforcement policies may posted separately. Project maintainers follow enforce Code Conduct good faith may face temporary permanent repercussions determined members project’s leadership.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 1.4, available https://www.contributor-covenant.org/version/1/4/code--conduct.html answers common questions code conduct, see https://www.contributor-covenant.org/faq","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing","title":"Contributing","text":"Many hands make light work! ways can contribute project:","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"open-an-issue","dir":"","previous_headings":"","what":"Open an issue","title":"Contributing","text":"can open issue ’d like request specific function report bug/error.","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"fixing-typos","dir":"","previous_headings":"","what":"Fixing typos","title":"Contributing","text":"can fix typos, spelling mistakes, grammatical errors documentation directly using GitHub web interface, long changes made source file. generally means ’ll need edit roxygen2 comments .R, .Rd file. can find .R file generates .Rd reading comment first line.","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"bigger-changes","dir":"","previous_headings":"","what":"Bigger changes","title":"Contributing","text":"want make bigger change, ’s good idea first file issue make sure someone team agrees ’s needed. ’ve found bug, please file issue illustrates bug minimal reprex (also help write unit test, needed). can also bring changes nflverse discord team happy discuss!","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"code-style","dir":"","previous_headings":"","what":"Code style","title":"Contributing","text":"New code follow tidyverse style guide. can use styler package apply styles, please don’t restyle code nothing PR. use roxygen2, Markdown syntax, documentation. use testthat unit tests. Contributions test cases included easier accept.","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contributing","text":"Please note usethis project released Contributor Code Conduct. contributing project agree abide terms. contribution guidelines inspired guidelines {usethis}","code":""},{"path":"https://nflseedr.com/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2021 Lee Sharpe, Sebastian Carl Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"preface","dir":"Articles","previous_headings":"","what":"Preface","title":"Get started with nflseedR","text":"nflseedR designed efficiently take sophisticated complex rule set NFL regarding division ranks, postseason seeding draft order. intended used NFL season simulations help modelers focus models rather tie-breaking procedures. NFL’s official procedures breaking ties postseason playoffs may found , site explains assignment draft pick order. nflseedR support levels tie-breakers moment. deepest tie-breaker currently strength schedule. , decision made random. However, need additional levels extremely unlikely practice deeper levels never actually needed resolve season-end standings since NFL expanded 32 teams.","code":""},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"using-in-simulation-functions","dir":"Articles","previous_headings":"","what":"Using In-Simulation Functions","title":"Get started with nflseedR","text":"can get NFL game data function: load_sharpe_games() collect game information results preferred, one can obtain generate set game outcomes let nflseedR handle NFL seeding tiebreaker math three -simulation functions (can handle thousands seasons ): compute_division_ranks() find division winners, compute_conference_seeds() get playoff participants, compute_draft_order() find resulting draft pick team. following sections demonstrate use input required. Loading package obligatory, done first (along dplyr data wrangling pipe):","code":"library(nflseedR) library(dplyr, warn.conflicts = FALSE) options(digits = 3) options(warn = -1)"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"load-sharpe-games","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Load Sharpe Games","title":"Get started with nflseedR","text":"pulls game information games.rds file (equivalent games.csv file) Lee Sharpe’s NFL Data Github.","code":"games <- nflseedR::load_sharpe_games() games %>% dplyr::slice_tail(n = 20) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"find-division-ranks","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Find Division Ranks","title":"Get started with nflseedR","text":"function computes division ranks based data frame containing game results one NFL seasons. let’s load game data first (example uses game data 2012 2019 seasons): Please note required column names: sim : simulation ID. Normally 1 - n simulated seasons (like case) just year. game_type : One ‘REG’, ‘WC’, ‘DIV’, ‘CON’, ‘SB’ indicating game regular season game one playoff rounds. week : week corresponding NFL season. away_team : Team abbreviation away team. home_team : Team abbreviation home team. result : Equals home score - away score. Now games data frame can used compute division ranks (parameter .debug set TRUE show function ). Please note function outputs list data frames, actual division standings, data frame named h2h. latter important input functions (used break head--head ties) can computed compute_division_ranks(). resulting division standings data frame 2012 season: season, second-place finish NFC South required three way tie-breaker Panthers, Saints Bucs. broken three-way Conference Record. can seen given console output: ...DIV (3): Common Record division rank number 2. Bucs lost tie-breaker 0.333 win percentage conference tie-breaking procedure goes forward 2-way head--head comparison.","code":"games <- nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% c(2012, 2019)) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) dplyr::glimpse(games) #> Rows: 534 #> Columns: 6 #> $ sim 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, … #> $ game_type \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG… #> $ week 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, … #> $ away_team \"DAL\", \"IND\", \"PHI\", \"STL\", \"MIA\", \"ATL\", \"JAX\", \"WAS\", \"BUF… #> $ home_team \"NYG\", \"CHI\", \"CLE\", \"DET\", \"HOU\", \"KC\", \"MIN\", \"NO\", \"NYJ\",… #> $ result -7, 20, -1, 4, 20, -16, 3, -8, 20, -21, 4, -8, 6, 12, 31, -8… div_standings <- nflseedR::compute_division_ranks(games, .debug = TRUE) #> ℹ 11:48:17 | Calculating team data #> ℹ 11:48:17 | Calculating head to head #> ℹ 11:48:17 | Calculating division rank #1 #> ℹ 11:48:17 | DIV (2): Head-to-head #> ℹ 11:48:17 | DIV (2): Division Record #> ℹ 11:48:17 | Calculating division rank #2 #> ℹ 11:48:17 | DIV (3): Head-to-head #> ℹ 11:48:17 | DIV (3): Division Record #> ℹ 11:48:17 | DIV (3): Common Record #> ℹ 11:48:17 | DIV (2): Head-to-head #> ℹ 11:48:17 | DIV (2): Division Record #> ℹ 11:48:17 | DIV (2): Common Record #> ℹ 11:48:17 | DIV (2): Conference Record #> ℹ 11:48:17 | Calculating division rank #3 #> ℹ 11:48:17 | DIV (2): Head-to-head #> ℹ 11:48:17 | DIV (2): Division Record #> ℹ 11:48:17 | DIV (2): Common Record #> ℹ 11:48:17 | Calculating division rank #4 dplyr::glimpse(div_standings) #> List of 2 #> $ standings: tibble [64 × 16] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:64] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ conf : chr [1:64] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division : chr [1:64] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ team : chr [1:64] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ games : int [1:64] 16 16 16 16 16 16 16 16 16 16 ... #> ..$ wins : num [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ true_wins : int [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ losses : int [1:64] 10 9 4 10 6 6 11 8 4 5 ... #> ..$ ties : int [1:64] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ win_pct : num [1:64] 0.375 0.438 0.75 0.375 0.625 ... #> ..$ div_pct : num [1:64] 0.333 0.333 1 0.333 0.667 ... #> ..$ conf_pct : num [1:64] 0.417 0.417 0.917 0.333 0.667 ... #> ..$ sov : num [1:64] 0.281 0.415 0.466 0.401 0.438 ... #> ..$ sos : num [1:64] 0.48 0.5 0.496 0.512 0.496 ... #> ..$ div_rank : num [1:64] 4 2 1 3 1 2 4 3 1 2 ... #> ..$ max_reg_week: int [1:64] 17 17 17 17 17 17 17 17 17 17 ... #> $ h2h : tibble [2,048 × 6] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:2048] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ team : chr [1:2048] \"ARI\" \"ARI\" \"ARI\" \"ARI\" ... #> ..$ opp : chr [1:2048] \"ARI\" \"ATL\" \"BAL\" \"BUF\" ... #> ..$ h2h_games : int [1:2048] 0 1 0 1 0 1 0 0 0 0 ... #> ..$ h2h_wins : num [1:2048] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ h2h_played: num [1:2048] 0 1 0 1 0 1 0 0 0 0 ... div_standings %>% purrr::pluck(\"standings\") %>% dplyr::filter(sim == 2012) %>% dplyr::select(division:div_rank) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"find-conference-seedings","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Find Conference Seedings","title":"Get started with nflseedR","text":"function computes conference seedings based computed division standings data frame. efficiency, reasons h2h data frame computed passed function. easiest way pass list data frames computed first step. example (please note number playoff seeds): Just like compute_division_ranks(), function returns list two data frames can use within pipe. resulting seeds 2012 season given .","code":"seeds <- div_standings %>% nflseedR::compute_conference_seeds(h2h = .$h2h, playoff_seeds = 6, .debug = TRUE) #> ℹ 11:48:17 | Calculating seed #1 #> ℹ 11:48:17 | CONF (3): Head-to-head Sweep #> ℹ 11:48:17 | Calculating seed #2 #> ℹ 11:48:17 | CONF (2): Head-to-head Sweep #> ℹ 11:48:17 | CONF (2): Conference Record #> ℹ 11:48:17 | Calculating seed #3 #> ℹ 11:48:17 | Calculating seed #4 #> ℹ 11:48:17 | Calculating seed #5 #> ℹ 11:48:17 | Calculating seed #6 #> ℹ 11:48:17 | CONF (2): Best-in-division reduction dplyr::glimpse(seeds) #> List of 2 #> $ standings: tibble [64 × 17] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:64] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ conf : chr [1:64] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division : chr [1:64] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ team : chr [1:64] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ games : int [1:64] 16 16 16 16 16 16 16 16 16 16 ... #> ..$ wins : num [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ true_wins: int [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ losses : int [1:64] 10 9 4 10 6 6 11 8 4 5 ... #> ..$ ties : int [1:64] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ win_pct : num [1:64] 0.375 0.438 0.75 0.375 0.625 ... #> ..$ div_pct : num [1:64] 0.333 0.333 1 0.333 0.667 ... #> ..$ conf_pct : num [1:64] 0.417 0.417 0.917 0.333 0.667 ... #> ..$ sov : num [1:64] 0.281 0.415 0.466 0.401 0.438 ... #> ..$ sos : num [1:64] 0.48 0.5 0.496 0.512 0.496 ... #> ..$ div_rank : num [1:64] 4 2 1 3 1 2 4 3 1 2 ... #> ..$ seed : num [1:64] NA NA 2 NA 4 6 NA NA 3 5 ... #> ..$ exit : num [1:64] 17 17 NA 17 NA NA 17 17 NA NA ... #> $ h2h : tibble [2,048 × 6] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:2048] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ team : chr [1:2048] \"ARI\" \"ARI\" \"ARI\" \"ARI\" ... #> ..$ opp : chr [1:2048] \"ARI\" \"ATL\" \"BAL\" \"BUF\" ... #> ..$ h2h_games : int [1:2048] 0 1 0 1 0 1 0 0 0 0 ... #> ..$ h2h_wins : num [1:2048] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ h2h_played: num [1:2048] 0 1 0 1 0 1 0 0 0 0 ... seeds %>% purrr::pluck(\"standings\") %>% dplyr::filter(sim == 2012) %>% dplyr::select(division:seed) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"find-draft-order","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Find Draft Order","title":"Get started with nflseedR","text":"function computes draft order based playoff outcomes regular season games. requires playoff results games data frame game_type Super Bowl \"SB\". efficiency reasons, h2h data frame computed passed function well. easiest way pass list data frames computed steps: final step, function compute_draft_order output h2h . Instead directly outputs final standings including draft order variable exit indicates week number team’s final game (Super Bowl Winner’s exit equals 22):","code":"draft <- seeds %>% nflseedR::compute_draft_order(games = games, h2h = .$h2h, .debug = TRUE) #> ℹ 11:48:18 | Calculating draft order #32 #> ℹ 11:48:18 | Calculating draft order #31 #> ℹ 11:48:18 | Calculating draft order #30 #> ℹ 11:48:18 | Calculating draft order #29 #> ℹ 11:48:18 | Calculating draft order #28 #> ℹ 11:48:18 | Calculating draft order #27 #> ℹ 11:48:18 | Calculating draft order #26 #> ℹ 11:48:18 | Calculating draft order #25 #> ℹ 11:48:18 | Calculating draft order #24 #> ℹ 11:48:18 | Calculating draft order #23 #> ℹ 11:48:18 | Calculating draft order #22 #> ℹ 11:48:18 | Calculating draft order #21 #> ℹ 11:48:18 | Calculating draft order #20 #> ℹ 11:48:18 | Calculating draft order #19 #> ℹ 11:48:18 | Calculating draft order #18 #> ℹ 11:48:18 | Calculating draft order #17 #> ℹ 11:48:18 | Calculating draft order #16 #> ℹ 11:48:18 | Calculating draft order #15 #> ℹ 11:48:18 | Calculating draft order #14 #> ℹ 11:48:18 | Calculating draft order #13 #> ℹ 11:48:18 | Calculating draft order #12 #> ℹ 11:48:18 | Calculating draft order #11 #> ℹ 11:48:18 | Calculating draft order #10 #> ℹ 11:48:18 | DRAFT: Divisional Rank #> ℹ 11:48:18 | DRAFT: Conference Rank #> ℹ 11:48:18 | CONF (2): Best-in-division reduction #> ℹ 11:48:18 | CONF (2): Head-to-head Sweep #> ℹ 11:48:18 | Calculating draft order #9 #> ℹ 11:48:18 | Calculating draft order #8 #> ℹ 11:48:18 | Calculating draft order #7 #> ℹ 11:48:18 | Calculating draft order #6 #> ℹ 11:48:18 | Calculating draft order #5 #> ℹ 11:48:18 | Calculating draft order #4 #> ℹ 11:48:18 | Calculating draft order #3 #> ℹ 11:48:18 | Calculating draft order #2 #> ℹ 11:48:18 | Calculating draft order #1 dplyr::glimpse(draft) #> Rows: 64 #> Columns: 18 #> $ sim 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012… #> $ team \"BUF\", \"MIA\", \"NE\", \"NYJ\", \"BAL\", \"CIN\", \"CLE\", \"PIT\", \"HO… #> $ conf \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"A… #> $ division \"AFC East\", \"AFC East\", \"AFC East\", \"AFC East\", \"AFC North… #> $ games 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16… #> $ wins 6, 7, 12, 6, 10, 10, 5, 8, 12, 11, 2, 6, 13, 2, 4, 7, 8, 9… #> $ true_wins 6, 7, 12, 6, 10, 10, 5, 8, 12, 11, 2, 6, 13, 2, 4, 7, 8, 9… #> $ losses 10, 9, 4, 10, 6, 6, 11, 8, 4, 5, 14, 10, 3, 14, 12, 9, 8, … #> $ ties 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0… #> $ win_pct 0.375, 0.438, 0.750, 0.375, 0.625, 0.625, 0.312, 0.500, 0.… #> $ div_pct 0.333, 0.333, 1.000, 0.333, 0.667, 0.500, 0.333, 0.500, 0.… #> $ conf_pct 0.417, 0.417, 0.917, 0.333, 0.667, 0.583, 0.417, 0.417, 0.… #> $ sov 0.281, 0.415, 0.466, 0.401, 0.438, 0.381, 0.388, 0.438, 0.… #> $ sos 0.480, 0.500, 0.496, 0.512, 0.496, 0.438, 0.508, 0.465, 0.… #> $ div_rank 4, 2, 1, 3, 1, 2, 4, 3, 1, 2, 4, 3, 1, 4, 3, 2, 3, 2, 4, 1… #> $ seed NA, NA, 2, NA, 4, 6, NA, NA, 3, 5, NA, NA, 1, NA, NA, NA, … #> $ exit 17, 17, 20, 17, 22, 18, 17, 17, 19, 18, 17, 17, 19, 17, 17… #> $ draft_order 8, 12, 29, 9, 32, 21, 6, 17, 27, 24, 2, 10, 28, 1, 3, 11, … draft %>% dplyr::filter(sim == 2012) %>% dplyr::select(division:draft_order) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"running-a-simulation","dir":"Articles","previous_headings":"","what":"Running a Simulation","title":"Simulating NFL seasons using nflseedR","text":"Loading package obligatory, done first (along dplyr data wrangling pipe): Note: guide, ’ll set initial random seed 4 beginning simulations = 100 purposes document can follow along entering code get results shown . ’ll also set fresh_season = TRUE blank existing results 2020 season, normally simulating incomplete season, wouldn’t things. output contains lot pre-aggregated information, well individual results game simulation. example, let’s look overall results Bears: can see Bears got 10.8 wins average. made playoffs 87% simulations, won division 39%, won Super Bowl 4%, 1% receive top five draft pick. teams section output show team simulated season. Let’s check playoff games first simulation, Bears went 10-6 got 6th seed. simulation, Bears beat Rams wildcard game 26 points, beat Cowboys divisional round 11 points, took Eagles field goal NFC Championship Game, finally defeated Patriots 6 Super Bowl. may gathered point, default simulation code picks random Elo every team, uses starting Elo ratings 32 teams. However, default code Elo adjust independently within simulation week simulated. (Elo model used loosely based FiveThirtyEight.)","code":"library(nflseedR) library(dplyr, warn.conflicts = FALSE) options(digits = 3) set.seed(4) sims <- simulate_nfl( nfl_season = 2020, fresh_season = TRUE, simulations = 100 ) #> ℹ 11:48:21 | Loading games data #> ℹ 11:48:22 | Beginning simulation of 100 seasons in 1 round #> ℹ 11:48:35 | Combining simulation data #> ℹ 11:48:35 | Aggregating across simulations #> ℹ 11:48:35 | DONE! sims$overall %>% dplyr::filter(team == \"CHI\") %>% knitr::kable() sims$teams %>% dplyr::filter(team == \"CHI\") %>% dplyr::select(sim, team, wins, seed, draft_order) %>% utils::head(6) %>% knitr::kable() sims$games %>% dplyr::filter(sim == 1, game_type != \"REG\") %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"use-your-own-model","dir":"Articles","previous_headings":"Running a Simulation","what":"Use Your Own Model","title":"Simulating NFL seasons using nflseedR","text":"course real value nflseedR putting model simulator. accomplish , can write function determine output games instead. example, ’s stupid model makes team earlier alphabetically win 3 points 90% time, lose 3 points 10% time. create function, first two inputs data teams (one row per team per sim), data games (one row per game per sim). third argument week number currently simulated, one week processed time. function’s job - whatever means choose - update result column week’s games sims number points home team won (lost negative, 0 game ended tie). returns teams games data. way can store information new columns team game use next call. Make sure code accepts returns appropriate information, simulator break! example, default function updates team’s Elo game, stores teams data. simulator processes next week, uses updated Elo rating inform team’s next game. !! Also, make sure aren’t overriding completed games games aren’t current week w. simulator stop setting past, present, future game results function, whether meant . !! Let’s run simulation stupid_games_model see happens: might expect, earliest alphabetical teams win lot. Cardinals won Super Bowl 59% seasons! Meanwhile, teams bottom alphabetically virtually certain top draft order.","code":"stupid_games_model <- function(teams, games, week_num, ...) { # make the earlier alphabetical team win 90% of the time games <- games %>% dplyr::mutate( result = dplyr::case_when( !is.na(result) | week != week_num ~ result, away_team < home_team ~ sample(c(-3, 3), n(), prob = c(0.9, 0.1), replace = TRUE), away_team > home_team ~ sample(c(-3, 3), n(), prob = c(0.1, 0.9), replace = TRUE), TRUE ~ 0 ) ) # return values return(list(teams = teams, games = games)) } sims2 <- simulate_nfl( nfl_season = 2020, process_games = stupid_games_model, fresh_season = TRUE, simulations = 100 ) #> ℹ 11:48:35 | Loading games data #> ℹ 11:48:35 | Beginning simulation of 100 seasons in 1 round #> ℹ 11:48:47 | Combining simulation data #> ℹ 11:48:47 | Aggregating across simulations #> ℹ 11:48:47 | DONE! sims2$overall %>% dplyr::arrange(team) %>% utils::head() %>% knitr::kable() sims2$overall %>% dplyr::arrange(team) %>% utils::tail() %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"adding-in-your-own-data","dir":"Articles","previous_headings":"Running a Simulation","what":"Adding In Your Own Data","title":"Simulating NFL seasons using nflseedR","text":"well good, might thinking, model works data simulator! can work? utilize R’s ability generic arguments. ... end function definition means function can called number additional arguments. can name whatever want, long ’re already name defined arguments. call simulate_nfl() function, uses ... syntax, allows pass number additional arguments function. simulator turn pass function processes games. example, let’s slightly modify last example: allows us define best worst, use information determine result (case, best team always win worst team always lose). best worst example single-length character vectors, can data frames R data type. Let’s simulate using : Now let nflseedR summarize simulation using summary() nflseedR simulation object. print gt table. shows exactly expect. defining Bears best team, always go 16-0, win division, win Super Bowl. Interestingly, always get #1 seed. makes sense, however, games without Bears Packers, alphabetically earlier teams still wins 90% time. Cardinals therefore expected go 16-0 simulations, thee tiebreakers Bears. However, even simulations, ’ll still lose Bears end meet playoffs. Similarly, Packers always go 0-16, never make playoffs. simulated seasons got #1 draft pick every time, aren’t guaranteed . Using logic , sometimes Washington Commanders go 0-16 , may beat Packers #1 pick tiebreakers.","code":"biased_games_model <- function(teams, games, week_num, ...) { # arguments args <- list(...) best <- \"\" worst <- \"\" # best team? if (\"best\" %in% names(args)) { best <- args$best } # worst team? if (\"worst\" %in% names(args)) { worst <- args$worst } # make the best team always win and the worst team always lose # otherwise, make the earlier alphabetical team win 90% of the time games <- games %>% dplyr::mutate( result = dplyr::case_when( !is.na(result) | week != week_num ~ result, away_team == best | home_team == worst ~ -3, away_team == worst | home_team == best ~ 3, away_team < home_team ~ sample(c(-3, 3), n(), prob = c(0.9, 0.1), replace = TRUE), away_team > home_team ~ sample(c(-3, 3), n(), prob = c(0.1, 0.9), replace = TRUE), TRUE ~ 0 ) ) # return values return(list(teams = teams, games = games)) } sims3 <- simulate_nfl( nfl_season = 2020, process_games = biased_games_model, fresh_season = TRUE, simulations = 100, best = \"CHI\", worst = \"GB\" ) #> ℹ 11:48:47 | Loading games data #> ℹ 11:48:47 | Beginning simulation of 100 seasons in 1 round #> ℹ 11:48:58 | Combining simulation data #> ℹ 11:48:58 | Aggregating across simulations #> ℹ 11:48:59 | DONE! summary(sims3)"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"passing-data-in-from-one-week-to-the-next","dir":"Articles","previous_headings":"Running a Simulation","what":"Passing Data in from One Week to the Next","title":"Simulating NFL seasons using nflseedR","text":"Sometimes though want data keep updating simulation progresses. example, Elo-based model updates team’s Elo game. can pass starting Elo values per team, games simulated, update Elo values team store teams data. column part teams data passed function following week simulated function called. Read comments code specific tips good ones: can add columns teams /games want. joins , left joins make sure rows removed. Remove “helper” columns generate along way don’t actually need returning. Make sure column doesn’t get blindly joined .x .y versions Week 2 R throws error expected column name doesn’t exist. Make sure update games .na(result) & week == week_num! don’t want override completed games, games week current week simulated. Let’s generate initial random Elo values team. see works, ’ll supply test_week = 3 argument simulate_nfl() abort simulating Week 3, instead return result elo_model() function. Let’s look Bears’ Elo Week 3 top handful simulations: can see different simulations different Elo results Bears, simulated seasons different results games, Elos adjusted accordingly. Let’s examine Bears’ games first simulation: Note first three weeks result filled , others NA, indicating game hasn’t yet occurred simulated. test_week = 3 input aborted simulation Week 3, useful seeing Elo .","code":"elo_model <- function(teams, games, week_num, ...) { # round out (away from zero) # this way the simulator never simulates a tie # the simulator will still allow ties to be simulated if you want # ... but not on playoff games round_out <- function(x) { x[!is.na(x) & x < 0] <- floor(x[!is.na(x) & x < 0]) x[!is.na(x) & x > 0] <- ceiling(x[!is.na(x) & x > 0]) return(x) } # we're going to store elo as a new columns in the teams data # it won't start off there of course, so we need to determine it # from our arguments if (!(\"elo\" %in% colnames(teams))) { args <- list(...) if (\"elo\" %in% names(args)) { # pull the elo info from custom arguments teams <- teams %>% dplyr::inner_join(args$elo %>% dplyr::select(team, elo), by = c(\"team\" = \"team\")) } else { # error with a friendly error message if no elo data is passed in stop(\"Pass in a tibble `elo` as an argument to `simulate_nfl()`\") } } # isolate the ratings data by sim and by team only # we will want to join to the games data later and don't want excess columns ratings <- teams %>% dplyr::select(sim, team, elo) # simulate game outcomes games <- games %>% # add in the away team's elo to the game data # note we join on both `sim` and the team # always join on `sim` to make sure each sim cares about only its data dplyr::inner_join(ratings, by = c(\"sim\" = \"sim\", \"away_team\" = \"team\")) %>% dplyr::rename(away_elo = elo) %>% # repeat for the home team as well dplyr::inner_join(ratings, by = c(\"sim\" = \"sim\", \"home_team\" = \"team\")) %>% dplyr::rename(home_elo = elo) %>% dplyr::mutate( # calculate the elo difference elo_diff = home_elo - away_elo, # add in a small HFA amount if played at home elo_diff = elo_diff + ifelse(location == \"Home\", 20, 0), # make an adjustment for rest elo_diff = elo_diff + (home_rest - away_rest) / 7 * 25, # playoff games swing elo more elo_diff = elo_diff * ifelse(game_type == \"REG\", 1, 1.2), # from elo, we calculate the home team's win percentage wp = 1 / (10^(-elo_diff / 400) + 1), # we also can calculate the estimate (mean points home team wins by) estimate = elo_diff / 25, result = dplyr::case_when( # !!! ALWAYS DO THIS NEXT LINE IN YOUR `result` CHANGES !!! # you have to make sure you're only changing unfinished games in current week # if you don't do this, it will usually error out on a friendly error message is.na(result) & week == week_num ~ as.integer(round_out(rnorm(n(), estimate, 13))), # if not this week or known result, leave as-is TRUE ~ as.integer(result) ), # simplify to 1 = win, 0 = loss, 0.5 = tie to help calculate elo shift outcome = dplyr::case_when( is.na(result) ~ NA_real_, result > 0 ~ 1, result < 0 ~ 0, TRUE ~ 0.5 ), # calculate the amount to adjust home team's elo by elo_input = dplyr::case_when( is.na(result) ~ NA_real_, result > 0 ~ elo_diff * 0.001 + 2.2, result < 0 ~ -elo_diff * 0.001 + 2.2, TRUE ~ 1.0, ), elo_mult = log(pmax(abs(result), 1) + 1.0) * 2.2 / elo_input, elo_shift = 20 * elo_mult * (outcome - wp) ) %>% # we don't want these columns in `games` any more # remove any columns you don't need when you're done # otherwise the next week they'll get joined as `col.x` and `col.y` # which will almost certainly break your script dplyr::select( -away_elo, -home_elo, -elo_diff, -wp, -estimate, -outcome, -elo_input, -elo_mult ) # apply elo shifts teams <- teams %>% # join games results from this week to away teams (within same sim!) # note this is a LEFT join, we don't want to remove any teams rows dplyr::left_join(games %>% dplyr::filter(week == week_num) %>% dplyr::select(sim, away_team, elo_shift), by = c(\"sim\" = \"sim\", \"team\" = \"away_team\") ) %>% # away team's elo gets subtracted by elo amount # if the team wasn't an away team, do nothing dplyr::mutate(elo = elo - ifelse(!is.na(elo_shift), elo_shift, 0)) %>% # we don't want to keep `elo_shift` in `teams` either, remove it dplyr::select(-elo_shift) %>% # repeat the above except now do it for the home team dplyr::left_join(games %>% dplyr::filter(week == week_num) %>% dplyr::select(sim, home_team, elo_shift), by = c(\"sim\" = \"sim\", \"team\" = \"home_team\") ) %>% # note that a team on a bye will have `elo_shift` as NA for both joins # this means it won't change, which is what we want dplyr::mutate(elo = elo + ifelse(!is.na(elo_shift), elo_shift, 0)) %>% dplyr::select(-elo_shift) # we need to keep `elo_shift` out of `games` too and we're done with it games <- games %>% dplyr::select(-elo_shift) # return the updated teams and games information # note that `teams` will now have an updated `elo` column which will # be used for the next week's games # note that starting `elo` values are the same per-team... # ... but after that will differ per sim depending on that sim's results return(list(teams = teams, games = games)) } initial_elo <- tibble::tibble( team = unique(nflseedR::divisions$team), elo = rnorm(length(unique(nflseedR::divisions$team)), 1500, 150) ) test <- simulate_nfl( nfl_season = 2020, process_games = elo_model, elo = initial_elo, fresh_season = TRUE, test_week = 3 ) #> ℹ 11:49:00 | Loading games data #> ℹ 11:49:00 | Beginning simulation of 1000 seasons in 1 round #> ℹ 11:49:01 | Aborting and returning your `process_games` function's results #> from Week 3 test$teams %>% dplyr::filter(team == \"CHI\") %>% utils::head() %>% knitr::kable() test$games %>% filter(sim == 1) %>% filter(away_team == \"CHI\" | home_team == \"CHI\") #> ── nflverse games and schedules ──────────────────────────────────────────────── #> ℹ Data updated: 2024-10-15 11:49:00 UTC #> # A tibble: 16 × 9 #> sim game_type week away_team home_team away_rest home_rest location result #> #> 1 1 REG 1 CHI DET 7 7 Home 13 #> 2 1 REG 2 NYG CHI 6 7 Home 18 #> 3 1 REG 3 CHI ATL 7 7 Home -1 #> 4 1 REG 4 IND CHI 7 7 Home NA #> 5 1 REG 5 TB CHI 4 4 Home NA #> 6 1 REG 6 CHI CAR 10 7 Home NA #> 7 1 REG 7 CHI LA 8 8 Home NA #> 8 1 REG 8 NO CHI 7 6 Home NA #> 9 1 REG 9 CHI TEN 7 7 Home NA #> 10 1 REG 10 MIN CHI 8 8 Home NA #> 11 1 REG 12 CHI GB 13 7 Home NA #> 12 1 REG 13 DET CHI 10 7 Home NA #> 13 1 REG 14 HOU CHI 7 7 Home NA #> 14 1 REG 15 CHI MIN 7 7 Home NA #> 15 1 REG 16 CHI JAX 7 7 Home NA #> 16 1 REG 17 GB CHI 7 7 Home NA"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"simulation-configuration","dir":"Articles","previous_headings":"Running a Simulation","what":"Simulation Configuration","title":"Simulating NFL seasons using nflseedR","text":"lot flexibility choose run simulation. parameters configure run simulate_nfl() function. nfl_season - NFL season simulating? default, simulates recent season regular season schedule available Lee Sharpe’s NFL game data. earliest season can simulate 2002. Note: schedule new season released, nflseedR may support simulating using fake schedule upcoming season. notify . opponents correct, weeks games occur match actual NFL schedule. actual schedule utilized instead released NFL. process_games - supply function ’ve written encompass model used determine simulated games results, like examples . default, generate random Elo every team per round simulations, use determine game data. playoff_seeds - many playoff seeds per conference used? default, 7 seasons 2020 later, 6 earlier seasons. if_ended_today - used running middle regular season. take completed games done, remove rest regular season games schedule, begin playoffs everything locked based regular season data exists far. fresh_season - ’ll see set TRUE examples . setting deletes playoff games clears results regular season games, everything generated fresh. default FALSE games completed real life treated locked , instead remaining games simulated. fresh_playoffs - Similar fresh_season, except instead set TRUE, regular season results remain playoff games deleted simulated. default FALSE case playoff games completed accepted occurred, 1: teams record ties broken randomly. 2: Instead evaluating common games step reached, break ties randomly. earlier tiebreakers handled correctly. 3: default. tiebreakers handled strength schedule processed (strength victory draft pick order). unlikely event tie, broken randomly. test_week - abort simulating week number simulator. simulate_nfl() instead return output process_games() function. useful input debugging code, left NULL (default) actual simulations. also means first round simulated. simulations - many simulations run? Defaults 1000. sims_per_round - simulator can break things chunks simulated seasons, process chunk (called round), aggregate everything together end. default value determines number locally available cores calculates number simulations per round equal half available cores (various benchmarks showed results optimal performance parallel processes). computer hanging forces restart running simulation, recommended lower number.","code":""},{"path":"https://nflseedr.com/articles/nflsim.html","id":"simulation-output","dir":"Articles","previous_headings":"Running a Simulation","what":"Simulation Output","title":"Simulating NFL seasons using nflseedR","text":"output simulate_nfl(), assuming don’t put test_week debug function, list class \"nflseedR_simulation\" holds four data frames simulation results well list parameters used simulation. contents : sim - ID number simulation. rows value sim teams games refer simulated season. team - abbreviation representing team conf - conference team (AFC) division - division team (NFC West) games - many regular season games team played wins - number games team won, counting ties 0.5 wins true_wins - number games team won, ignoring ties. win_pct - win rate team. Equal wins / games. div_pct - win rate teams games played teams division. conf_pct - win rate teams games played teams conference. sov - Strength Victory. combined win rate teams team beaten. sos - Strength Schedule. combined win rate teams team played. div_rank - place team finished division. seed - playoff seed number team earned. NA team make playoffs. exit - week team’s last game. Super Bowl winner’s value one higher week Super Bowl. draft_order - pick team earned following NFL Draft. Note value trades, forfeits, modifications draft picks. sim - ID number simulation. rows value sim teams games refer simulated season. REG - regular season game POST - playoff rounds earlier wildcard game (used simulating lots playoff teams) WC - wildcard playoff game DIV - divisional playoff game CON - conference championship game SB - Super Bowl week - numerical week game takes place . Continues incrementing regular season playoff round. away_team - abbreviation away team game home_team - abbreviation home team game away_rest - number days since away team’s last game. 7 team’s first game season. home_rest - number days since home team’s last game. 7 team’s first game season. location - Either Home played home team’s stadium, Neutral game played elsewhere result - amount points home team won (lost negative). 0 tied games. NA games aren’t yet complete simulated, ever returned used test_week. conf - conference team (AFC) division - division team (NFC West) team - abbreviation representing team wins - mean (average) number games won across simulations, counting ties 0.5 wins playoff - rate team made playoffs across simulations div1 - rate team won division across simulations seed1 - rate team first playoff seed across simulations won_conf - rate team won conference across simulations won_sb - rate team won Super Bowl across simulations draft1 - rate team received first pick next draft across simulations draft5 - rate team received top five pick next draft across simulations team - abbreviation representing team wins - number wins (either integer halfway two integers) over_prob - rate team wins number aggregated across simulations. Ties ignored. under_prob - rate team fewer wins number aggregated across simulations. Ties ignored. Note wins integer, 1-over_prob-under_prob represents rate team finished exactly many wins. REG - regular season game POST - playoff rounds earlier wildcard game (used simulating lots playoff teams) WC - wildcard playoff game DIV - divisional playoff game CON - conference championship game SB - Super Bowl week - numerical week game takes place . Continues incrementing regular season playoff round. away_team - abbreviation away team game home_team - abbreviation home team game away_wins - number times away team won game home_wins - number times home team won game ties - number times game ended tie result - amount points home team won (lost negative) average across simulations games_played - number times game played. game_type == \"REG\" equal number simulations. number playoff matchups differ. away_percentage - rate away team won game counting ties half win home_percentage - rate home team won game counting ties half win nfl_season playoff_seeds if_ended_today fresh_season fresh_playoffs tiebreaker_depth test_week simulations sims_per_round .debug print_summary","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"break-a-tie-within-a-division","dir":"Articles","previous_headings":"","what":"Break a Tie Within a Division","title":"NFL Tiebreaking Procedures","text":"used calculate variable div_rank , end regular season, two clubs division finish identical won-lost-tied percentages, following steps taken champion determined.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"two-clubs","dir":"Articles","previous_headings":"Break a Tie Within a Division","what":"Two Clubs","title":"NFL Tiebreaking Procedures","text":"Head--head (best won-lost-tied percentage games clubs). Best won-lost-tied percentage games played within division. Best won-lost-tied percentage common games. Best won-lost-tied percentage games played within conference. Strength victory games. Strength schedule games Best combined ranking among conference teams points scored points allowed games. Best combined ranking among teams points scored points allowed games. Best net points common games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"three-or-more-clubs","dir":"Articles","previous_headings":"Break a Tie Within a Division","what":"Three or More Clubs","title":"NFL Tiebreaking Procedures","text":"two clubs remain tied one clubs eliminated step, tiebreaker restarts Step 1 two-club format. three clubs remain tied fourth club eliminated step, tiebreaker restarts Step 1 three-club format. Head--head (best won-lost-tied percentage games among clubs). Best won-lost-tied percentage games played within division. Best won-lost-tied percentage common games. Best won-lost-tied percentage games played within conference. Strength victory games. Strength schedule games. Best combined ranking among conference teams points scored points allowed games. Best combined ranking among teams points scored points allowed games. Best net points common games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"break-a-tie-for-conference-seeds","dir":"Articles","previous_headings":"","what":"Break a Tie for Conference Seeds","title":"NFL Tiebreaking Procedures","text":"used calculate variable conf_rank seven postseason participants conference seeded follows division champion best record. division champion second-best record. division champion third-best record. division champion fourth-best record. wild card club best record. wild card club second-best record. wild card club third-best record. following procedures used break standings ties postseason playoffs determine regular-season schedules. NOTE: Tie games count one-half win one-half loss clubs. necessary break ties determine three Wild Card clubs conference, following steps taken. tied clubs division, apply division tiebreaker. tied clubs different divisions, apply following steps.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"two-clubs-1","dir":"Articles","previous_headings":"Break a Tie for Conference Seeds","what":"Two Clubs","title":"NFL Tiebreaking Procedures","text":"Head--head, applicable. Best won-lost-tied percentage games played within conference. Best won-lost-tied percentage common games, minimum four. Strength victory games. Strength schedule games. Best combined ranking among conference teams points scored points allowed games. Best combined ranking among teams points scored points allowed games. Best net points conference games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"three-or-more-clubs-1","dir":"Articles","previous_headings":"Break a Tie for Conference Seeds","what":"Three or More Clubs","title":"NFL Tiebreaking Procedures","text":"two clubs remain tied one clubs eliminated step, tiebreaker restarts Step 1 two-club format. three clubs remain tied fourth club eliminated step, tiebreaker restarts Step 2 three-club format. first Wild Card team identified, procedure repeated name second third Wild Card (.e., eliminate highest-ranked club division prior proceeding Step 2). situations three teams division involved procedure, original seeding teams remains subsequent applications tiebreaker top-ranked team division qualifies Wild Card berth. Apply division tiebreaker eliminate highest ranked club division prior proceeding step 2. original seeding within division upon application division tiebreaker remains subsequent applications procedure necessary identify two[sic!] three Wild-Card participants. Head--head sweep. (Applicable one club defeated others one club lost others.) Best won-lost-tied percentage games played within conference. Best won-lost-tied percentage common games, minimum four. Strength victory games. Strength schedule games. Best combined ranking among conference teams points scored points allowed games. Best combined ranking among teams points scored points allowed games. Best net points conference games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"other-tie-breaking-procedures","dir":"Articles","previous_headings":"","what":"Other Tie-Breaking Procedures","title":"NFL Tiebreaking Procedures","text":"one club advances playoffs tie-breaking step. Remaining tied clubs revert first step applicable division Wild Card tie-breakers. example, two clubs remain tied tie-breaker step clubs eliminated, procedure reverts Step 1 two-club format determine winner. one club wins tiebreaker, clubs revert Step 1 applicable two-club three-club format. comparing records common opponents among tied teams, best won-lost-tied percentage deciding factor, since teams may played unequal number games. determine home field priority among division winners, apply Wild Card tiebreakers. determine home field priority Wild Card qualifiers, apply division tiebreakers (teams division) Wild Card tiebreakers (teams different divisions). determine best combined ranking among conference team’s points scored points allowed, add team’s position two categories, lowest score wins. example, Team first points scored second points allowed, combined ranking “3.” Team B third points scored first points allowed, combined ranking “4.” Team wins tiebreaker. two teams tied position, teams awarded ranking held solely. example, Team Team B tied first points scored, team assigned ranking “1” category, Team C third, ranking still “3.”","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"break-a-tie-for-the-draft-selection-meeting","dir":"Articles","previous_headings":"","what":"Break a Tie for the Draft (“Selection Meeting”)","title":"NFL Tiebreaking Procedures","text":"used calculate variable draft_rank order selection determined reverse order finish previous season. Barring trades clubs, round starts team finished worst record ends Super Bowl champions. Picks assigned win percentage ascending order follows: Clubs participating playoffs shall select first 18th positions. losers Wild Card games shall select 19th 24th positions. losers Divisional playoff games shall select 25th 28th positions. losers Conference Championship games shall select 29th 30th. winner Super Bowl game shall select last Super Bowl loser select next--last. situations teams finished previous season identical win percentage, determination draft position decided strength schedule — aggregate winning percentage team’s opponents. team played schedule lowest winning percentage awarded earlier pick. teams strength schedule, division conference tiebreakers applied first.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"divisional-draft-pick-tie","dir":"Articles","previous_headings":"Break a Tie for the Draft (“Selection Meeting”)","what":"Divisional Draft Pick Tie","title":"NFL Tiebreaking Procedures","text":"teams tied pick division, division rank used. lower division rank gets earlier pick.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"conference-draft-pick-tie","dir":"Articles","previous_headings":"Break a Tie for the Draft (“Selection Meeting”)","what":"Conference Draft Pick Tie","title":"NFL Tiebreaking Procedures","text":"teams tied pick conference, conference rank used. lower conference rank gets earlier pick.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"inter-conference-draft-pick-tie","dir":"Articles","previous_headings":"Break a Tie for the Draft (“Selection Meeting”)","what":"Inter-Conference Draft Pick Tie","title":"NFL Tiebreaking Procedures","text":"divisional conference tiebreakers applicable, ties still exist teams different conferences, ties broken following procedure: Ties involving THREE clubs different conferences broken applying divisional tiebreakers determine lowest-ranked team division, conference tiebreakers determine lowest-ranked team within conference. process, can 2 inter-conference teams participating following steps (draft pick assignment reversed division conference ties. Worse teams get earlier picks): Head--head, applicable. loser gets earlier pick. Worst won-lost-tied percentage common games (minimum four). Worst Strength victory games. Worst combined ranking among teams points scored points allowed games. Worst net points games. Worst net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Lee Sharpe. Author. Sebastian Carl. Maintainer, author, copyright holder.","code":""},{"path":"https://nflseedr.com/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Sharpe L, Carl S (2024). nflseedR: Functions Efficiently Simulate Evaluate NFL Seasons. R package version 1.2.0.9901, https://github.com/nflverse/nflseedR, https://nflseedr.com.","code":"@Manual{, title = {nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons}, author = {Lee Sharpe and Sebastian Carl}, year = {2024}, note = {R package version 1.2.0.9901, https://github.com/nflverse/nflseedR}, url = {https://nflseedr.com}, }"},{"path":[]},{"path":"https://nflseedr.com/index.html","id":"motivation","dir":"","previous_headings":"","what":"Motivation","title":"Functions to Efficiently Simulate and Evaluate NFL Seasons","text":"goal nflseedR allow NFL modelers simulate NFL seasons using models, taking plate work tracking schedule, navigating complex rules division ranking, playoff seeding, draft order. can also aid sports betting, betting futures win totals. package can run thousands Monte Carlo style simulations NFL regular season, based model input. Within simulated season, calculate division standings playoff seedings . also generate playoff games simulate well, calculate order next year’s NFL draft. can used examine probability team making playoffs winning Super Bowl, based model. season simulations take completed games account already, simulate forward, including run playoffs. can also run fresh season, wiping away results simulating scratch. season simulation code nflseedR developed Lee Sharpe (@LeeSharpeNFL) building package developed Sebastian Carl (@mrcaseb). New high efficient standings code developed Sebastian Carl (@mrcaseb)","code":""},{"path":"https://nflseedr.com/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Functions to Efficiently Simulate and Evaluate NFL Seasons","text":"easiest way get nflseedR install CRAN : get bug fix use feature development version, can install development version nflseedR either GitHub prebuilt development repo :","code":"install.packages(\"nflseedR\") if (!require(\"pak\")) install.packages(\"pak\") pak::pak(\"nflverse/nflseedR\") install.packages(\"nflseedR\", repos = c(\"https://nflverse.r-universe.dev\", getOption(\"repos\")))"},{"path":"https://nflseedr.com/index.html","id":"get-started","dir":"","previous_headings":"","what":"Get Started","title":"Functions to Efficiently Simulate and Evaluate NFL Seasons","text":"nflseedR ’s possible simulate complete seasons use ’s seeding functions custom simulations.","code":""},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"Compute NFL Playoff Seedings using Game Results Divisional Rankings","code":""},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"","code":"compute_conference_seeds( teams, h2h = NULL, tiebreaker_depth = 3, .debug = FALSE, playoff_seeds = 7 )"},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"teams division standings data frame computed compute_division_ranks h2h data frame used head--head tiebreakers across tie-breaking functions. computed function compute_division_ranks. tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing. playoff_seeds Number playoff teams per conference (increased 2020 6 7).","code":""},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"data frame division standings including playoff seeds week season ended respective team (exit). list two data frames: standings Division standings including playoff seeds. h2h data frame used head--head tiebreakers across tie-breaking functions.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"","code":"# \\donttest{ # Change some options for better output old <- options(list(digits = 3, tibble.print_min = 64)) library(dplyr, warn.conflicts = FALSE) try({#to avoid CRAN test problems nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% 2019:2020) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) %>% nflseedR::compute_division_ranks() %>% nflseedR::compute_conference_seeds(h2h = .$h2h) %>% purrr::pluck(\"standings\") }) #> ℹ 11:47:55 | Calculating team data #> ℹ 11:47:55 | Calculating head to head #> ℹ 11:47:55 | Calculating division rank #1 #> ℹ 11:47:56 | Calculating division rank #2 #> ℹ 11:47:56 | Calculating division rank #3 #> ℹ 11:47:56 | Calculating division rank #4 #> ℹ 11:47:56 | Calculating seed #1 #> ℹ 11:47:56 | Calculating seed #2 #> ℹ 11:47:56 | Calculating seed #3 #> ℹ 11:47:56 | Calculating seed #4 #> ℹ 11:47:56 | Calculating seed #5 #> ℹ 11:47:56 | Calculating seed #6 #> ℹ 11:47:56 | Calculating seed #7 #> # A tibble: 64 × 17 #> sim conf division team games wins true_wins losses ties win_pct div_pct #> #> 1 2019 AFC AFC East BUF 16 10 10 6 0 0.625 0.5 #> 2 2019 AFC AFC East MIA 16 5 5 11 0 0.312 0.333 #> 3 2019 AFC AFC East NE 16 12 12 4 0 0.75 0.833 #> 4 2019 AFC AFC East NYJ 16 7 7 9 0 0.438 0.333 #> 5 2019 AFC AFC Nor… BAL 16 14 14 2 0 0.875 0.833 #> 6 2019 AFC AFC Nor… CIN 16 2 2 14 0 0.125 0.167 #> 7 2019 AFC AFC Nor… CLE 16 6 6 10 0 0.375 0.5 #> 8 2019 AFC AFC Nor… PIT 16 8 8 8 0 0.5 0.5 #> 9 2019 AFC AFC Sou… HOU 16 10 10 6 0 0.625 0.667 #> 10 2019 AFC AFC Sou… IND 16 7 7 9 0 0.438 0.5 #> 11 2019 AFC AFC Sou… JAX 16 6 6 10 0 0.375 0.333 #> 12 2019 AFC AFC Sou… TEN 16 9 9 7 0 0.562 0.5 #> 13 2019 AFC AFC West DEN 16 7 7 9 0 0.438 0.5 #> 14 2019 AFC AFC West KC 16 12 12 4 0 0.75 1 #> 15 2019 AFC AFC West LAC 16 5 5 11 0 0.312 0 #> 16 2019 AFC AFC West OAK 16 7 7 9 0 0.438 0.5 #> 17 2019 NFC NFC East DAL 16 8 8 8 0 0.5 0.833 #> 18 2019 NFC NFC East NYG 16 4 4 12 0 0.25 0.333 #> 19 2019 NFC NFC East PHI 16 9 9 7 0 0.562 0.833 #> 20 2019 NFC NFC East WAS 16 3 3 13 0 0.188 0 #> 21 2019 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.667 #> 22 2019 NFC NFC Nor… DET 16 3.5 3 12 1 0.219 0 #> 23 2019 NFC NFC Nor… GB 16 13 13 3 0 0.812 1 #> 24 2019 NFC NFC Nor… MIN 16 10 10 6 0 0.625 0.333 #> 25 2019 NFC NFC Sou… ATL 16 7 7 9 0 0.438 0.667 #> 26 2019 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 27 2019 NFC NFC Sou… NO 16 13 13 3 0 0.812 0.833 #> 28 2019 NFC NFC Sou… TB 16 7 7 9 0 0.438 0.333 #> 29 2019 NFC NFC West ARI 16 5.5 5 10 1 0.344 0.167 #> 30 2019 NFC NFC West LA 16 9 9 7 0 0.562 0.5 #> 31 2019 NFC NFC West SEA 16 11 11 5 0 0.688 0.5 #> 32 2019 NFC NFC West SF 16 13 13 3 0 0.812 0.833 #> 33 2020 AFC AFC East BUF 16 13 13 3 0 0.812 1 #> 34 2020 AFC AFC East MIA 16 10 10 6 0 0.625 0.5 #> 35 2020 AFC AFC East NE 16 7 7 9 0 0.438 0.5 #> 36 2020 AFC AFC East NYJ 16 2 2 14 0 0.125 0 #> 37 2020 AFC AFC Nor… BAL 16 11 11 5 0 0.688 0.667 #> 38 2020 AFC AFC Nor… CIN 16 4.5 4 11 1 0.281 0.167 #> 39 2020 AFC AFC Nor… CLE 16 11 11 5 0 0.688 0.5 #> 40 2020 AFC AFC Nor… PIT 16 12 12 4 0 0.75 0.667 #> 41 2020 AFC AFC Sou… HOU 16 4 4 12 0 0.25 0.333 #> 42 2020 AFC AFC Sou… IND 16 11 11 5 0 0.688 0.667 #> 43 2020 AFC AFC Sou… JAX 16 1 1 15 0 0.0625 0.167 #> 44 2020 AFC AFC Sou… TEN 16 11 11 5 0 0.688 0.833 #> 45 2020 AFC AFC West DEN 16 5 5 11 0 0.312 0.167 #> 46 2020 AFC AFC West KC 16 14 14 2 0 0.875 0.667 #> 47 2020 AFC AFC West LAC 16 7 7 9 0 0.438 0.5 #> 48 2020 AFC AFC West LV 16 8 8 8 0 0.5 0.667 #> 49 2020 NFC NFC East DAL 16 6 6 10 0 0.375 0.333 #> 50 2020 NFC NFC East NYG 16 6 6 10 0 0.375 0.667 #> 51 2020 NFC NFC East PHI 16 4.5 4 11 1 0.281 0.333 #> 52 2020 NFC NFC East WAS 16 7 7 9 0 0.438 0.667 #> 53 2020 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.333 #> 54 2020 NFC NFC Nor… DET 16 5 5 11 0 0.312 0.167 #> 55 2020 NFC NFC Nor… GB 16 13 13 3 0 0.812 0.833 #> 56 2020 NFC NFC Nor… MIN 16 7 7 9 0 0.438 0.667 #> 57 2020 NFC NFC Sou… ATL 16 4 4 12 0 0.25 0.167 #> 58 2020 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 59 2020 NFC NFC Sou… NO 16 12 12 4 0 0.75 1 #> 60 2020 NFC NFC Sou… TB 16 11 11 5 0 0.688 0.667 #> 61 2020 NFC NFC West ARI 16 8 8 8 0 0.5 0.333 #> 62 2020 NFC NFC West LA 16 10 10 6 0 0.625 0.5 #> 63 2020 NFC NFC West SEA 16 12 12 4 0 0.75 0.667 #> 64 2020 NFC NFC West SF 16 6 6 10 0 0.375 0.5 #> # ℹ 6 more variables: conf_pct , sov , sos , div_rank , #> # seed , exit # Restore old options options(old) # }"},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Division Rankings using Game Results — compute_division_ranks","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"Compute NFL Division Rankings using Game Results","code":""},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"","code":"compute_division_ranks( games, teams = NULL, tiebreaker_depth = 3, .debug = FALSE, h2h = NULL )"},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"games data frame containing real simulated game scores. following variables required: sim simulation ID. Normally 1 - n simulated seasons. game_type One 'REG', 'WC', 'DIV', 'CON', 'SB' indicating game regular season game one playoff rounds. week week corresponding NFL season. away_team Team abbreviation away team (please see divisions valid team abbreviations). home_team Team abbreviation home team (please see divisions valid team abbreviations). result Equals home score - away score. teams parameter optional. NULL function compute internally, otherwise data frame teams contained games data frame repeated simulation ID (sim). following variables required: sim simulation ID. Normally 1 - n simulated seasons. team Team abbreviation team (please see divisions valid team abbreviations). conf Conference abbreviation team (please see divisions valid team abbreviations). division Division team (please see divisions valid division names). tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing. h2h data frame used head--head tiebreakers across tie-breaking functions. computed function compute_division_ranks.","code":""},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"list two data frames: standings Division standings. h2h data frame used head--head tiebreakers across tie-breaking functions.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"","code":"# \\donttest{ # Change some options for better output old <- options(list(digits = 3, tibble.print_min = 64)) library(dplyr, warn.conflicts = FALSE) try({#to avoid CRAN test problems nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% 2019:2020) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) %>% nflseedR::compute_division_ranks() %>% purrr::pluck(\"standings\") }) #> ℹ 11:47:57 | Calculating team data #> ℹ 11:47:58 | Calculating head to head #> ℹ 11:47:58 | Calculating division rank #1 #> ℹ 11:47:58 | Calculating division rank #2 #> ℹ 11:47:58 | Calculating division rank #3 #> ℹ 11:47:58 | Calculating division rank #4 #> # A tibble: 64 × 16 #> sim conf division team games wins true_wins losses ties win_pct div_pct #> #> 1 2019 AFC AFC East BUF 16 10 10 6 0 0.625 0.5 #> 2 2019 AFC AFC East MIA 16 5 5 11 0 0.312 0.333 #> 3 2019 AFC AFC East NE 16 12 12 4 0 0.75 0.833 #> 4 2019 AFC AFC East NYJ 16 7 7 9 0 0.438 0.333 #> 5 2019 AFC AFC Nor… BAL 16 14 14 2 0 0.875 0.833 #> 6 2019 AFC AFC Nor… CIN 16 2 2 14 0 0.125 0.167 #> 7 2019 AFC AFC Nor… CLE 16 6 6 10 0 0.375 0.5 #> 8 2019 AFC AFC Nor… PIT 16 8 8 8 0 0.5 0.5 #> 9 2019 AFC AFC Sou… HOU 16 10 10 6 0 0.625 0.667 #> 10 2019 AFC AFC Sou… IND 16 7 7 9 0 0.438 0.5 #> 11 2019 AFC AFC Sou… JAX 16 6 6 10 0 0.375 0.333 #> 12 2019 AFC AFC Sou… TEN 16 9 9 7 0 0.562 0.5 #> 13 2019 AFC AFC West DEN 16 7 7 9 0 0.438 0.5 #> 14 2019 AFC AFC West KC 16 12 12 4 0 0.75 1 #> 15 2019 AFC AFC West LAC 16 5 5 11 0 0.312 0 #> 16 2019 AFC AFC West OAK 16 7 7 9 0 0.438 0.5 #> 17 2019 NFC NFC East DAL 16 8 8 8 0 0.5 0.833 #> 18 2019 NFC NFC East NYG 16 4 4 12 0 0.25 0.333 #> 19 2019 NFC NFC East PHI 16 9 9 7 0 0.562 0.833 #> 20 2019 NFC NFC East WAS 16 3 3 13 0 0.188 0 #> 21 2019 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.667 #> 22 2019 NFC NFC Nor… DET 16 3.5 3 12 1 0.219 0 #> 23 2019 NFC NFC Nor… GB 16 13 13 3 0 0.812 1 #> 24 2019 NFC NFC Nor… MIN 16 10 10 6 0 0.625 0.333 #> 25 2019 NFC NFC Sou… ATL 16 7 7 9 0 0.438 0.667 #> 26 2019 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 27 2019 NFC NFC Sou… NO 16 13 13 3 0 0.812 0.833 #> 28 2019 NFC NFC Sou… TB 16 7 7 9 0 0.438 0.333 #> 29 2019 NFC NFC West ARI 16 5.5 5 10 1 0.344 0.167 #> 30 2019 NFC NFC West LA 16 9 9 7 0 0.562 0.5 #> 31 2019 NFC NFC West SEA 16 11 11 5 0 0.688 0.5 #> 32 2019 NFC NFC West SF 16 13 13 3 0 0.812 0.833 #> 33 2020 AFC AFC East BUF 16 13 13 3 0 0.812 1 #> 34 2020 AFC AFC East MIA 16 10 10 6 0 0.625 0.5 #> 35 2020 AFC AFC East NE 16 7 7 9 0 0.438 0.5 #> 36 2020 AFC AFC East NYJ 16 2 2 14 0 0.125 0 #> 37 2020 AFC AFC Nor… BAL 16 11 11 5 0 0.688 0.667 #> 38 2020 AFC AFC Nor… CIN 16 4.5 4 11 1 0.281 0.167 #> 39 2020 AFC AFC Nor… CLE 16 11 11 5 0 0.688 0.5 #> 40 2020 AFC AFC Nor… PIT 16 12 12 4 0 0.75 0.667 #> 41 2020 AFC AFC Sou… HOU 16 4 4 12 0 0.25 0.333 #> 42 2020 AFC AFC Sou… IND 16 11 11 5 0 0.688 0.667 #> 43 2020 AFC AFC Sou… JAX 16 1 1 15 0 0.0625 0.167 #> 44 2020 AFC AFC Sou… TEN 16 11 11 5 0 0.688 0.833 #> 45 2020 AFC AFC West DEN 16 5 5 11 0 0.312 0.167 #> 46 2020 AFC AFC West KC 16 14 14 2 0 0.875 0.667 #> 47 2020 AFC AFC West LAC 16 7 7 9 0 0.438 0.5 #> 48 2020 AFC AFC West LV 16 8 8 8 0 0.5 0.667 #> 49 2020 NFC NFC East DAL 16 6 6 10 0 0.375 0.333 #> 50 2020 NFC NFC East NYG 16 6 6 10 0 0.375 0.667 #> 51 2020 NFC NFC East PHI 16 4.5 4 11 1 0.281 0.333 #> 52 2020 NFC NFC East WAS 16 7 7 9 0 0.438 0.667 #> 53 2020 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.333 #> 54 2020 NFC NFC Nor… DET 16 5 5 11 0 0.312 0.167 #> 55 2020 NFC NFC Nor… GB 16 13 13 3 0 0.812 0.833 #> 56 2020 NFC NFC Nor… MIN 16 7 7 9 0 0.438 0.667 #> 57 2020 NFC NFC Sou… ATL 16 4 4 12 0 0.25 0.167 #> 58 2020 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 59 2020 NFC NFC Sou… NO 16 12 12 4 0 0.75 1 #> 60 2020 NFC NFC Sou… TB 16 11 11 5 0 0.688 0.667 #> 61 2020 NFC NFC West ARI 16 8 8 8 0 0.5 0.333 #> 62 2020 NFC NFC West LA 16 10 10 6 0 0.625 0.5 #> 63 2020 NFC NFC West SEA 16 12 12 4 0 0.75 0.667 #> 64 2020 NFC NFC West SF 16 6 6 10 0 0.375 0.5 #> # ℹ 5 more variables: conf_pct , sov , sos , div_rank , #> # max_reg_week # Restore old options options(old) # }"},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"Compute NFL Draft Order using Game Results Divisional Rankings","code":""},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"","code":"compute_draft_order( teams, games, h2h = NULL, tiebreaker_depth = 3, .debug = FALSE )"},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"teams division standings data frame including playoff seeds computed compute_conference_seeds games data frame containing real simulated game scores. following variables required: sim simulation ID. Normally 1 - n simulated seasons. game_type One 'REG', 'WC', 'DIV', 'CON', 'SB' indicating game regular season game one playoff rounds. week week corresponding NFL season. away_team Team abbreviation away team (please see divisions valid team abbreviations). home_team Team abbreviation home team (please see divisions valid team abbreviations). result Equals home score - away score. h2h data frame used head--head tiebreakers across tie-breaking functions. computed function compute_division_ranks. tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing.","code":""},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"data frame standings including final draft pick number variable exit indicates week number teams final game (Super Bowl Winner one week higher).","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"","code":"# \\donttest{ # Change some options for better output old <- options(list(digits = 3, tibble.print_min = 64)) library(dplyr, warn.conflicts = FALSE) try({#to avoid CRAN test problems games <- nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% 2018:2019) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) games %>% nflseedR::compute_division_ranks() %>% nflseedR::compute_conference_seeds(h2h = .$h2h, playoff_seeds = 6) %>% nflseedR::compute_draft_order(games = games, h2h = .$h2h) }) #> ℹ 11:47:58 | Calculating team data #> ℹ 11:47:58 | Calculating head to head #> ℹ 11:47:58 | Calculating division rank #1 #> ℹ 11:47:58 | Calculating division rank #2 #> ℹ 11:47:59 | Calculating division rank #3 #> ℹ 11:47:59 | Calculating division rank #4 #> ℹ 11:47:59 | Calculating seed #1 #> ℹ 11:47:59 | Calculating seed #2 #> ℹ 11:47:59 | Calculating seed #3 #> ℹ 11:47:59 | Calculating seed #4 #> ℹ 11:47:59 | Calculating seed #5 #> ℹ 11:47:59 | Calculating seed #6 #> ℹ 11:47:59 | Calculating draft order #32 #> ℹ 11:47:59 | Calculating draft order #31 #> ℹ 11:47:59 | Calculating draft order #30 #> ℹ 11:47:59 | Calculating draft order #29 #> ℹ 11:47:59 | Calculating draft order #28 #> ℹ 11:47:59 | Calculating draft order #27 #> ℹ 11:47:59 | Calculating draft order #26 #> ℹ 11:47:59 | Calculating draft order #25 #> ℹ 11:47:59 | Calculating draft order #24 #> ℹ 11:47:59 | Calculating draft order #23 #> ℹ 11:47:59 | Calculating draft order #22 #> ℹ 11:47:59 | Calculating draft order #21 #> ℹ 11:47:59 | Calculating draft order #20 #> ℹ 11:47:59 | Calculating draft order #19 #> ℹ 11:47:59 | Calculating draft order #18 #> ℹ 11:47:59 | Calculating draft order #17 #> ℹ 11:47:59 | Calculating draft order #16 #> ℹ 11:47:59 | Calculating draft order #15 #> ℹ 11:47:59 | Calculating draft order #14 #> ℹ 11:47:59 | Calculating draft order #13 #> ℹ 11:47:59 | Calculating draft order #12 #> ℹ 11:47:59 | Calculating draft order #11 #> ℹ 11:47:59 | Calculating draft order #10 #> ℹ 11:48:00 | Calculating draft order #9 #> ℹ 11:48:00 | Calculating draft order #8 #> ℹ 11:48:00 | Calculating draft order #7 #> ℹ 11:48:00 | Calculating draft order #6 #> ℹ 11:48:00 | Calculating draft order #5 #> ℹ 11:48:00 | Calculating draft order #4 #> ℹ 11:48:00 | Calculating draft order #3 #> ℹ 11:48:00 | Calculating draft order #2 #> ℹ 11:48:00 | Calculating draft order #1 #> # A tibble: 64 × 18 #> sim team conf division games wins true_wins losses ties win_pct div_pct #> #> 1 2018 BUF AFC AFC East 16 6 6 10 0 0.375 0.333 #> 2 2018 MIA AFC AFC East 16 7 7 9 0 0.438 0.667 #> 3 2018 NE AFC AFC East 16 11 11 5 0 0.688 0.833 #> 4 2018 NYJ AFC AFC East 16 4 4 12 0 0.25 0.167 #> 5 2018 BAL AFC AFC Nor… 16 10 10 6 0 0.625 0.5 #> 6 2018 CIN AFC AFC Nor… 16 6 6 10 0 0.375 0.167 #> 7 2018 CLE AFC AFC Nor… 16 7.5 7 8 1 0.469 0.583 #> 8 2018 PIT AFC AFC Nor… 16 9.5 9 6 1 0.594 0.75 #> 9 2018 HOU AFC AFC Sou… 16 11 11 5 0 0.688 0.667 #> 10 2018 IND AFC AFC Sou… 16 10 10 6 0 0.625 0.667 #> 11 2018 JAX AFC AFC Sou… 16 5 5 11 0 0.312 0.167 #> 12 2018 TEN AFC AFC Sou… 16 9 9 7 0 0.562 0.5 #> 13 2018 DEN AFC AFC West 16 6 6 10 0 0.375 0.333 #> 14 2018 KC AFC AFC West 16 12 12 4 0 0.75 0.833 #> 15 2018 LAC AFC AFC West 16 12 12 4 0 0.75 0.667 #> 16 2018 OAK AFC AFC West 16 4 4 12 0 0.25 0.167 #> 17 2018 DAL NFC NFC East 16 10 10 6 0 0.625 0.833 #> 18 2018 NYG NFC NFC East 16 5 5 11 0 0.312 0.167 #> 19 2018 PHI NFC NFC East 16 9 9 7 0 0.562 0.667 #> 20 2018 WAS NFC NFC East 16 7 7 9 0 0.438 0.333 #> 21 2018 CHI NFC NFC Nor… 16 12 12 4 0 0.75 0.833 #> 22 2018 DET NFC NFC Nor… 16 6 6 10 0 0.375 0.333 #> 23 2018 GB NFC NFC Nor… 16 6.5 6 9 1 0.406 0.25 #> 24 2018 MIN NFC NFC Nor… 16 8.5 8 7 1 0.531 0.583 #> 25 2018 ATL NFC NFC Sou… 16 7 7 9 0 0.438 0.667 #> 26 2018 CAR NFC NFC Sou… 16 7 7 9 0 0.438 0.333 #> 27 2018 NO NFC NFC Sou… 16 13 13 3 0 0.812 0.667 #> 28 2018 TB NFC NFC Sou… 16 5 5 11 0 0.312 0.333 #> 29 2018 ARI NFC NFC West 16 3 3 13 0 0.188 0.333 #> 30 2018 LA NFC NFC West 16 13 13 3 0 0.812 1 #> 31 2018 SEA NFC NFC West 16 10 10 6 0 0.625 0.5 #> 32 2018 SF NFC NFC West 16 4 4 12 0 0.25 0.167 #> 33 2019 BUF AFC AFC East 16 10 10 6 0 0.625 0.5 #> 34 2019 MIA AFC AFC East 16 5 5 11 0 0.312 0.333 #> 35 2019 NE AFC AFC East 16 12 12 4 0 0.75 0.833 #> 36 2019 NYJ AFC AFC East 16 7 7 9 0 0.438 0.333 #> 37 2019 BAL AFC AFC Nor… 16 14 14 2 0 0.875 0.833 #> 38 2019 CIN AFC AFC Nor… 16 2 2 14 0 0.125 0.167 #> 39 2019 CLE AFC AFC Nor… 16 6 6 10 0 0.375 0.5 #> 40 2019 PIT AFC AFC Nor… 16 8 8 8 0 0.5 0.5 #> 41 2019 HOU AFC AFC Sou… 16 10 10 6 0 0.625 0.667 #> 42 2019 IND AFC AFC Sou… 16 7 7 9 0 0.438 0.5 #> 43 2019 JAX AFC AFC Sou… 16 6 6 10 0 0.375 0.333 #> 44 2019 TEN AFC AFC Sou… 16 9 9 7 0 0.562 0.5 #> 45 2019 DEN AFC AFC West 16 7 7 9 0 0.438 0.5 #> 46 2019 KC AFC AFC West 16 12 12 4 0 0.75 1 #> 47 2019 LAC AFC AFC West 16 5 5 11 0 0.312 0 #> 48 2019 OAK AFC AFC West 16 7 7 9 0 0.438 0.5 #> 49 2019 DAL NFC NFC East 16 8 8 8 0 0.5 0.833 #> 50 2019 NYG NFC NFC East 16 4 4 12 0 0.25 0.333 #> 51 2019 PHI NFC NFC East 16 9 9 7 0 0.562 0.833 #> 52 2019 WAS NFC NFC East 16 3 3 13 0 0.188 0 #> 53 2019 CHI NFC NFC Nor… 16 8 8 8 0 0.5 0.667 #> 54 2019 DET NFC NFC Nor… 16 3.5 3 12 1 0.219 0 #> 55 2019 GB NFC NFC Nor… 16 13 13 3 0 0.812 1 #> 56 2019 MIN NFC NFC Nor… 16 10 10 6 0 0.625 0.333 #> 57 2019 ATL NFC NFC Sou… 16 7 7 9 0 0.438 0.667 #> 58 2019 CAR NFC NFC Sou… 16 5 5 11 0 0.312 0.167 #> 59 2019 NO NFC NFC Sou… 16 13 13 3 0 0.812 0.833 #> 60 2019 TB NFC NFC Sou… 16 7 7 9 0 0.438 0.333 #> 61 2019 ARI NFC NFC West 16 5.5 5 10 1 0.344 0.167 #> 62 2019 LA NFC NFC West 16 9 9 7 0 0.562 0.5 #> 63 2019 SEA NFC NFC West 16 11 11 5 0 0.688 0.5 #> 64 2019 SF NFC NFC West 16 13 13 3 0 0.812 0.833 #> # ℹ 7 more variables: conf_pct , sov , sos , div_rank , #> # seed , exit , draft_order # Restore old options options(old) # }"},{"path":"https://nflseedr.com/reference/divisions.html","id":null,"dir":"Reference","previous_headings":"","what":"NFL team names and the conferences and divisions they belong to — divisions","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"NFL team names conferences divisions belong ","code":""},{"path":"https://nflseedr.com/reference/divisions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"","code":"divisions"},{"path":"https://nflseedr.com/reference/divisions.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"data frame 36 rows 4 variables containing NFL team level information, including franchises multiple cities: team Team abbreviation conf Conference abbreviation division Division name sdiv Division abbreviation data frame created using teams_colors_logos data frame nflfastR package. Please see data-raw/divisions.R code create data.","code":""},{"path":"https://nflseedr.com/reference/divisions.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"","code":"# \\donttest{ divisions #> # A tibble: 36 × 4 #> team conf division sdiv #> #> 1 ARI NFC NFC West NFCW #> 2 ATL NFC NFC South NFCS #> 3 BAL AFC AFC North AFCN #> 4 BUF AFC AFC East AFCE #> 5 CAR NFC NFC South NFCS #> 6 CHI NFC NFC North NFCN #> 7 CIN AFC AFC North AFCN #> 8 CLE AFC AFC North AFCN #> 9 DAL NFC NFC East NFCE #> 10 DEN AFC AFC West AFCW #> # ℹ 26 more rows # }"},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":null,"dir":"Reference","previous_headings":"","what":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"function formats numeric vectors values 0 1 percentage strings special specifications. specifications : 0 1 converted \"0%\" \"100%\" respectively (takes machine precision account) values < 0.01 converted \"<1%\" values 0.01 0.995 rounded percentages without decimals values 0.995 0.999 rounded percentages 1 decimal values 0.999 1 converted \">99.9%\" unless closer 1 machine precision.","code":""},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"","code":"fmt_pct_special(x)"},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"x vector numerical values","code":""},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"character vector","code":""},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"","code":"x <- c(0, 0.004, 0.009, 0.011, 0.9, 0.98, 0.994, .995, .9989, .999, .9991, .99999999) fmt <- fmt_pct_special(x) data.frame(x = x, fmt = fmt) #> x fmt #> 1 0.0000 0% #> 2 0.0040 <1% #> 3 0.0090 <1% #> 4 0.0110 1% #> 5 0.9000 90% #> 6 0.9800 98% #> 7 0.9940 99% #> 8 0.9950 99.5% #> 9 0.9989 99.9% #> 10 0.9990 99.9% #> 11 0.9991 >99.9% #> 12 1.0000 100%"},{"path":"https://nflseedr.com/reference/load_schedules.html","id":null,"dir":"Reference","previous_headings":"","what":"Load Lee Sharpe's Games File — load_schedules","title":"Load Lee Sharpe's Games File — load_schedules","text":"Lee Sharpe maintains important data set contains broadly used information games National Football League. function convenient helper download file memory without remember correct url.","code":""},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Load Lee Sharpe's Games File — load_schedules","text":"","code":"load_schedules(...) load_sharpe_games(...)"},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Load Lee Sharpe's Games File — load_schedules","text":"... Arguments passed nflreadr::load_schedules seasons numeric vector seasons return, default TRUE returns available data.","code":""},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Load Lee Sharpe's Games File — load_schedules","text":"data frame containing following variables NFL games since 1999: game_id ID game assigned nflverse. Note value matches game_id field nflfastR wish join data. season year NFL season. represents whole season, regular season games happen January well playoff games occur year number. game_type type game? One following values: REG regular season game WC wildcard playoff game DIV divisional round playoff game CON conference championship SB Super Bowl week week NFL season game occurs . Please note game_type differ weeks >= 18 season expansion 2021. Please use game_type filter regular season postseason. gameday date game occurred. weekday day week game occurred. gametime kickoff time game. represented 24-hour time Eastern time zone, regardless time zone game played . away_team away team. away_score number points away team scored. NA games yet played. home_team home team. Note contains designated home team games team playing home Super Bowls NFL International games. home_score number points home team scored. NA games yet played. location Either Home home team playing home stadium, Neutral game played neutral location. still shows Home games Giants Jets even though share home stadium. result Equals home_score - away_score. number points home team scored minus number points away team scored. NA games yet played. Convenient evaluating spread bets. total sum team's score game. Equals home_score + away_score. NA games yet played. Convenient evaluating /total bets. overtime Whether game went overtime (= 1) (= 0). old_game_id id game issued NFL Game Statistics & Information System. away_rest number days since away team's previous game (7 used team's first game season). home_rest number days since home team's previous game (7 used team's first game season). away_moneyline Odd away_team winning game. home_moneyline Odd home_team winning game. spread_line spread line game. positive number means home team favored many points, negative number means away team favored many points. lines result column. away_spread_odds Odd away_team covering spread_line. home_spread_odds Odd home_team covering spread_line. total_line total line game. under_odds Odd total total_line. over_odds Odd total total_line. div_game Whether game divisional game (= 1) (= 0). roof status stadium's roof? one following values: closed Stadium retractable roof closed dome indoor stadium open Stadium retractable roof open outdoors outdoor stadium surface type ground game played . temp temperature stadium (roof types outdoors open ). wind speed wind miles/hour (roof types outdoors open ). away_qb_id GSIS ID \"starting quarterback\" away team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. home_qb_id GSIS ID \"starting quarterback\" home team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. away_qb_name Full name \"starting quarterback\" away team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. home_qb_name Full name \"starting quarterback\" home team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. away_coach Name head coach away team. home_coach Name head coach home team. referee Name game's referee (head official). stadium_id Pro Football Reference ID stadium. stadium Name stadium.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Load Lee Sharpe's Games File — load_schedules","text":"","code":"# \\donttest{ try({#to avoid CRAN test problems games <- load_sharpe_games() dplyr::glimpse(games) }) #> Rows: 6,978 #> Columns: 46 #> $ game_id \"1999_01_MIN_ATL\", \"1999_01_KC_CHI\", \"1999_01_PIT_CLE… #> $ season 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,… #> $ game_type \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG… #> $ week 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,… #> $ gameday \"1999-09-12\", \"1999-09-12\", \"1999-09-12\", \"1999-09-12… #> $ weekday \"Sunday\", \"Sunday\", \"Sunday\", \"Sunday\", \"Sunday\", \"Su… #> $ gametime NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ away_team \"MIN\", \"KC\", \"PIT\", \"OAK\", \"BUF\", \"SF\", \"CAR\", \"NE\", … #> $ away_score 17, 17, 43, 24, 14, 3, 10, 30, 25, 28, 10, 17, 35, 41… #> $ home_team \"ATL\", \"CHI\", \"CLE\", \"GB\", \"IND\", \"JAX\", \"NO\", \"NYJ\",… #> $ home_score 14, 20, 0, 28, 31, 41, 19, 28, 24, 20, 27, 13, 36, 35… #> $ location \"Home\", \"Home\", \"Home\", \"Home\", \"Home\", \"Home\", \"Home… #> $ result -3, 3, -43, 4, 17, 38, 9, -2, -1, -8, 17, -4, 1, -6, … #> $ total 31, 37, 43, 52, 45, 44, 29, 58, 49, 48, 37, 30, 71, 7… #> $ overtime 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,… #> $ old_game_id \"1999091210\", \"1999091206\", \"1999091213\", \"1999091208… #> $ gsis 598, 597, 604, 602, 591, 603, 592, 600, 588, 596, 589… #> $ nfl_detail_id NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ pfr \"199909120atl\", \"199909120chi\", \"199909120cle\", \"1999… #> $ pff NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ espn \"190912001\", \"190912003\", \"190912005\", \"190912009\", \"… #> $ ftn NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ away_rest 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,… #> $ home_rest 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,… #> $ away_moneyline NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ home_moneyline NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ spread_line -4.0, -3.0, -6.0, 9.0, -3.0, 5.5, 3.5, 7.0, -3.0, 9.5… #> $ away_spread_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ home_spread_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ total_line 49.0, 38.0, 37.0, 43.0, 45.5, 49.0, 38.0, 44.5, 37.0,… #> $ under_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ over_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ div_game 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0,… #> $ roof \"dome\", \"outdoors\", \"outdoors\", \"outdoors\", \"dome\", \"… #> $ surface \"astroturf\", \"grass\", \"grass\", \"grass\", \"astroturf\", … #> $ temp NA, 80, 78, 67, NA, 76, NA, 73, 75, NA, NA, 88, 84, 7… #> $ wind NA, 12, 12, 10, NA, 8, NA, 5, 3, NA, NA, 8, 10, 0, 5,… #> $ away_qb_id \"00-0003761\", \"00-0006300\", \"00-0015700\", \"00-0005741… #> $ home_qb_id \"00-0002876\", \"00-0010560\", \"00-0004230\", \"00-0005106… #> $ away_qb_name \"Randall Cunningham\", \"Elvis Grbac\", \"Kordell Stewart… #> $ home_qb_name \"Chris Chandler\", \"Shane Matthews\", \"Ty Detmer\", \"Bre… #> $ away_coach \"Dennis Green\", \"Gunther Cunningham\", \"Bill Cowher\", … #> $ home_coach \"Dan Reeves\", \"Dick Jauron\", \"Chris Palmer\", \"Ray Rho… #> $ referee \"Gerry Austin\", \"Phil Luckett\", \"Bob McElwee\", \"Tony … #> $ stadium_id \"ATL00\", \"CHI98\", \"CLE00\", \"GNB00\", \"IND99\", \"JAX00\",… #> $ stadium \"Georgia Dome\", \"Soldier Field\", \"Cleveland Browns St… # }"},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Standings — nfl_standings","title":"Compute NFL Standings — nfl_standings","text":"Compute NFL Standings","code":""},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Standings — nfl_standings","text":"","code":"nfl_standings( games, ..., ranks = c(\"CONF\", \"DIV\", \"DRAFT\", \"NONE\"), tiebreaker_depth = c(\"SOS\", \"PRE-SOV\", \"RANDOM\"), playoff_seeds = NULL, verbosity = c(\"MIN\", \"MAX\", \"NONE\") )"},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Standings — nfl_standings","text":"games data frame containing real simulated game scores. following variables required: sim season simulation ID. Normally 1 - n simulated seasons. game_type One 'REG', 'WC', 'DIV', 'CON', 'SB' indicating game regular season game one playoff rounds. week week corresponding NFL season. away_team Team abbreviation away team (please see divisions valid team abbreviations). home_team Team abbreviation home team (please see divisions valid team abbreviations). result Equals home score - away score. ... currently used ranks One \"DIV\", \"CONF\", \"DRAFT\", \"NONE\" specify ranks - thus associated tiebreakers - determined. \"DIV\": Adds division ranking variable div_rank \"CONF\" (default): \"DIV\" + conference variable conf_rank. better performance, possible set playoff_seeds value < 16 make function skip tiebreakers irrelevant conference ranks. \"DRAFT\": \"CONF\" + draft variable draft_rank. actual pick draft based game results. trades course. tiebreaker_depth One \"SOS\", \"PRE-SOV\", \"RANDOM\". Controls tiebreakers applied. implemented tiebreakers documented https://nflseedr.com/articles/tiebreaker.html. values mean: \"SOS\" (default): Apply tiebreakers Strength Schedule. still remaining ties, break coin toss. \"PRE-SOV\": Apply tiebreakers Strength Victory. still remaining ties, break coin toss. Pre SOV? first tiebreaker requires knowledge teams played. \"RANDOM\": Breaks tiebreakers coin toss. really know, allow ... playoff_seeds NULL (default), compute 16 conference ranks. means, function applies conference tiebreakers conference ranks. better performance, possible set value < 16 make function skip tiebreakers conference ranks. verbosity One \"MIN\", \"MAX\", \"NONE\" allowing user set grade verbosity status reports. mean: \"MIN\" (default): Prints main steps process. \"MAX\": Prints steps complete tiebreaking process. \"NONE\": status reports . maximize performance.","code":""},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Standings — nfl_standings","text":"data.table NFL standings including ranks selected argument ranks","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Standings — nfl_standings","text":"","code":"# \\donttest{ try({#to avoid CRAN test problems games <- nflreadr::load_schedules(2021:2022) standings <- nflseedR::nfl_standings(games) print(standings, digits = 3) }) #> ℹ 11:48:01 | Initiate Standings & Tiebreaking Data #> ℹ 11:48:01 | Compute Division Ranks #> ℹ 11:48:01 | Compute Conference Ranks #> season team conf division games wins true_wins losses ties pf #> #> 1: 2021 BUF AFC AFC East 17 11.0 11 6 0 483 #> 2: 2021 NE AFC AFC East 17 10.0 10 7 0 462 #> 3: 2021 MIA AFC AFC East 17 9.0 9 8 0 341 #> 4: 2021 NYJ AFC AFC East 17 4.0 4 13 0 310 #> 5: 2021 CIN AFC AFC North 17 10.0 10 7 0 460 #> 6: 2021 PIT AFC AFC North 17 9.5 9 7 1 343 #> 7: 2021 CLE AFC AFC North 17 8.0 8 9 0 349 #> 8: 2021 BAL AFC AFC North 17 8.0 8 9 0 387 #> 9: 2021 TEN AFC AFC South 17 12.0 12 5 0 419 #> 10: 2021 IND AFC AFC South 17 9.0 9 8 0 451 #> 11: 2021 HOU AFC AFC South 17 4.0 4 13 0 280 #> 12: 2021 JAX AFC AFC South 17 3.0 3 14 0 253 #> 13: 2021 KC AFC AFC West 17 12.0 12 5 0 480 #> 14: 2021 LV AFC AFC West 17 10.0 10 7 0 374 #> 15: 2021 LAC AFC AFC West 17 9.0 9 8 0 474 #> 16: 2021 DEN AFC AFC West 17 7.0 7 10 0 335 #> 17: 2021 DAL NFC NFC East 17 12.0 12 5 0 530 #> 18: 2021 PHI NFC NFC East 17 9.0 9 8 0 444 #> 19: 2021 WAS NFC NFC East 17 7.0 7 10 0 335 #> 20: 2021 NYG NFC NFC East 17 4.0 4 13 0 258 #> 21: 2021 GB NFC NFC North 17 13.0 13 4 0 450 #> 22: 2021 MIN NFC NFC North 17 8.0 8 9 0 425 #> 23: 2021 CHI NFC NFC North 17 6.0 6 11 0 311 #> 24: 2021 DET NFC NFC North 17 3.5 3 13 1 325 #> 25: 2021 TB NFC NFC South 17 13.0 13 4 0 511 #> 26: 2021 NO NFC NFC South 17 9.0 9 8 0 364 #> 27: 2021 ATL NFC NFC South 17 7.0 7 10 0 313 #> 28: 2021 CAR NFC NFC South 17 5.0 5 12 0 304 #> 29: 2021 LA NFC NFC West 17 12.0 12 5 0 460 #> 30: 2021 ARI NFC NFC West 17 11.0 11 6 0 449 #> 31: 2021 SF NFC NFC West 17 10.0 10 7 0 427 #> 32: 2021 SEA NFC NFC West 17 7.0 7 10 0 395 #> 33: 2022 BUF AFC AFC East 16 13.0 13 3 0 455 #> 34: 2022 MIA AFC AFC East 17 9.0 9 8 0 397 #> 35: 2022 NE AFC AFC East 17 8.0 8 9 0 364 #> 36: 2022 NYJ AFC AFC East 17 7.0 7 10 0 296 #> 37: 2022 CIN AFC AFC North 16 12.0 12 4 0 418 #> 38: 2022 BAL AFC AFC North 17 10.0 10 7 0 350 #> 39: 2022 PIT AFC AFC North 17 9.0 9 8 0 308 #> 40: 2022 CLE AFC AFC North 17 7.0 7 10 0 361 #> 41: 2022 JAX AFC AFC South 17 9.0 9 8 0 404 #> 42: 2022 TEN AFC AFC South 17 7.0 7 10 0 298 #> 43: 2022 IND AFC AFC South 17 4.5 4 12 1 289 #> 44: 2022 HOU AFC AFC South 17 3.5 3 13 1 289 #> 45: 2022 KC AFC AFC West 17 14.0 14 3 0 496 #> 46: 2022 LAC AFC AFC West 17 10.0 10 7 0 391 #> 47: 2022 LV AFC AFC West 17 6.0 6 11 0 395 #> 48: 2022 DEN AFC AFC West 17 5.0 5 12 0 287 #> 49: 2022 PHI NFC NFC East 17 14.0 14 3 0 477 #> 50: 2022 DAL NFC NFC East 17 12.0 12 5 0 467 #> 51: 2022 NYG NFC NFC East 17 9.5 9 7 1 365 #> 52: 2022 WAS NFC NFC East 17 8.5 8 8 1 321 #> 53: 2022 MIN NFC NFC North 17 13.0 13 4 0 424 #> 54: 2022 DET NFC NFC North 17 9.0 9 8 0 453 #> 55: 2022 GB NFC NFC North 17 8.0 8 9 0 370 #> 56: 2022 CHI NFC NFC North 17 3.0 3 14 0 326 #> 57: 2022 TB NFC NFC South 17 8.0 8 9 0 313 #> 58: 2022 CAR NFC NFC South 17 7.0 7 10 0 347 #> 59: 2022 NO NFC NFC South 17 7.0 7 10 0 330 #> 60: 2022 ATL NFC NFC South 17 7.0 7 10 0 365 #> 61: 2022 SF NFC NFC West 17 13.0 13 4 0 450 #> 62: 2022 SEA NFC NFC West 17 9.0 9 8 0 407 #> 63: 2022 LA NFC NFC West 17 5.0 5 12 0 307 #> 64: 2022 ARI NFC NFC West 17 4.0 4 13 0 340 #> season team conf division games wins true_wins losses ties pf #> pa pd win_pct div_pct conf_pct sov sos div_rank #> #> 1: 289 194 0.647 0.833 0.5833 0.428 0.472 1 #> 2: 303 159 0.588 0.500 0.6667 0.394 0.481 2 #> 3: 373 -32 0.529 0.667 0.5000 0.379 0.464 3 #> 4: 504 -194 0.235 0.000 0.3333 0.426 0.512 4 #> 5: 376 84 0.588 0.667 0.6667 0.462 0.472 1 #> 6: 398 -55 0.559 0.667 0.5833 0.490 0.521 2 #> 7: 371 -22 0.471 0.500 0.4167 0.415 0.514 3 #> 8: 392 -5 0.471 0.167 0.4167 0.460 0.531 4 #> 9: 354 65 0.706 0.833 0.6667 0.480 0.472 1 #> 10: 365 86 0.529 0.500 0.5833 0.431 0.495 2 #> 11: 452 -172 0.235 0.500 0.3333 0.397 0.498 3 #> 12: 457 -204 0.176 0.167 0.2500 0.569 0.512 4 #> 13: 364 116 0.706 0.833 0.5833 0.517 0.538 1 #> 14: 439 -65 0.588 0.500 0.6667 0.515 0.510 2 #> 15: 459 15 0.529 0.500 0.5000 0.500 0.510 3 #> 16: 322 13 0.412 0.167 0.2500 0.357 0.484 4 #> 17: 358 172 0.706 1.000 0.8333 0.431 0.488 1 #> 18: 385 59 0.529 0.500 0.5833 0.350 0.469 2 #> 19: 434 -99 0.412 0.333 0.5000 0.420 0.529 3 #> 20: 416 -158 0.235 0.167 0.2500 0.485 0.536 4 #> 21: 371 79 0.765 0.667 0.7500 0.480 0.479 1 #> 22: 426 -1 0.471 0.667 0.5000 0.434 0.507 2 #> 23: 407 -96 0.353 0.333 0.3333 0.373 0.524 3 #> 24: 467 -142 0.206 0.333 0.2500 0.627 0.528 4 #> 25: 353 158 0.765 0.667 0.6667 0.443 0.467 1 #> 26: 335 29 0.529 0.667 0.5833 0.516 0.512 2 #> 27: 459 -146 0.412 0.333 0.3333 0.315 0.472 3 #> 28: 404 -100 0.294 0.333 0.2500 0.412 0.509 4 #> 29: 372 88 0.706 0.500 0.6667 0.409 0.483 1 #> 30: 366 83 0.647 0.667 0.5833 0.492 0.490 2 #> 31: 365 62 0.588 0.333 0.5833 0.438 0.500 3 #> 32: 366 29 0.412 0.500 0.3333 0.424 0.519 4 #> 33: 286 169 0.812 0.667 0.8182 0.471 0.489 1 #> 34: 399 -2 0.529 0.500 0.5833 0.457 0.537 2 #> 35: 347 17 0.471 0.500 0.5000 0.415 0.502 3 #> 36: 316 -20 0.412 0.333 0.4167 0.458 0.538 4 #> 37: 322 96 0.750 0.500 0.7273 0.490 0.507 1 #> 38: 315 35 0.588 0.500 0.5000 0.456 0.509 2 #> 39: 346 -38 0.529 0.500 0.4167 0.451 0.519 3 #> 40: 381 -20 0.412 0.500 0.3333 0.492 0.524 4 #> 41: 350 54 0.529 0.667 0.6667 0.438 0.467 1 #> 42: 359 -61 0.412 0.500 0.4167 0.336 0.509 2 #> 43: 427 -138 0.265 0.250 0.3750 0.500 0.512 3 #> 44: 420 -131 0.206 0.583 0.2917 0.402 0.481 4 #> 45: 369 127 0.824 1.000 0.7500 0.422 0.453 1 #> 46: 384 7 0.588 0.333 0.5833 0.341 0.443 2 #> 47: 418 -23 0.353 0.500 0.4167 0.397 0.474 3 #> 48: 359 -72 0.294 0.167 0.2500 0.465 0.481 4 #> 49: 344 133 0.824 0.667 0.7500 0.460 0.474 1 #> 50: 342 125 0.706 0.667 0.6667 0.485 0.507 2 #> 51: 371 -6 0.559 0.250 0.3750 0.395 0.526 3 #> 52: 343 -22 0.500 0.417 0.4583 0.449 0.536 4 #> 53: 427 -3 0.765 0.667 0.6667 0.425 0.474 1 #> 54: 427 26 0.529 0.833 0.5833 0.451 0.535 2 #> 55: 371 -1 0.471 0.500 0.5000 0.449 0.524 3 #> 56: 463 -137 0.176 0.000 0.0833 0.480 0.571 4 #> 57: 358 -45 0.471 0.667 0.6667 0.426 0.503 1 #> 58: 374 -27 0.412 0.667 0.5000 0.437 0.474 2 #> 59: 345 -15 0.412 0.333 0.4167 0.462 0.507 3 #> 60: 386 -21 0.412 0.333 0.5000 0.429 0.467 4 #> 61: 277 173 0.765 1.000 0.8333 0.414 0.417 1 #> 62: 401 6 0.529 0.667 0.5000 0.382 0.462 2 #> 63: 384 -77 0.294 0.167 0.2500 0.341 0.517 3 #> 64: 449 -109 0.235 0.167 0.2500 0.368 0.529 4 #> pa pd win_pct div_pct conf_pct sov sos div_rank #> div_tie_broken_by conf_rank conf_tie_broken_by #> #> 1: 3 #> 2: 6 #> 3: 9 Common Games Win PCT (2) #> 4: 14 Head-To-Head Sweep (2) #> 5: 4 #> 6: 7 #> 7: Division Win PCT (2) 11 Division Tiebreaker #> 8: Division Win PCT (2) 12 Division Tiebreaker #> 9: 1 Head-To-Head Sweep (2) #> 10: 8 Conference Win PCT (3) #> 11: 15 #> 12: 16 #> 13: 2 #> 14: 5 Common Games Win PCT (2) #> 15: 10 #> 16: 13 #> 17: 3 Conference Win PCT (2) #> 18: 7 Head-To-Head Sweep (2) #> 19: 10 Head-To-Head Sweep (3) #> 20: 15 #> 21: 1 Conference Win PCT (2) #> 22: 9 #> 23: 13 #> 24: 16 #> 25: 2 #> 26: 8 #> 27: 12 #> 28: 14 #> 29: 4 #> 30: 5 #> 31: 6 #> 32: 11 Common Games Win PCT (2) #> 33: 2 #> 34: 7 Head-To-Head Sweep (2) #> 35: 9 #> 36: 10 SOV (3) #> 37: 3 #> 38: 6 #> 39: 8 #> 40: 12 #> 41: 4 #> 42: 11 Conference Win PCT (2) #> 43: 15 #> 44: 16 #> 45: 1 #> 46: 5 Conference Win PCT (2) #> 47: 13 #> 48: 14 #> 49: 1 #> 50: 5 #> 51: 6 #> 52: 9 #> 53: 3 #> 54: 8 #> 55: 10 #> 56: 16 #> 57: 4 #> 58: Head-To-Head Win PCT (3) 11 Division Tiebreaker #> 59: Head-To-Head Win PCT (3) 12 Division Tiebreaker #> 60: Head-To-Head Win PCT (3) 13 Division Tiebreaker #> 61: 2 Conference Win PCT (2) #> 62: 7 Head-To-Head Sweep (2) #> 63: 14 #> 64: 15 #> div_tie_broken_by conf_rank conf_tie_broken_by # }"},{"path":"https://nflseedr.com/reference/nflseedR-package.html","id":null,"dir":"Reference","previous_headings":"","what":"nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package","title":"nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package","text":"set functions simulate National Football League seasons including sophisticated tie-breaking procedures.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/nflseedR-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package","text":"Maintainer: Sebastian Carl mrcaseb@gmail.com [copyright holder] Authors: Lee Sharpe","code":""},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate an NFL Season — simulate_nfl","title":"Simulate an NFL Season — simulate_nfl","text":"function simulates given NFL season multiple times using custom functions estimate simulate game results computes outcome given season including playoffs draft order. possible run function parallel processes calling appropriate plan. Progress updates can activated calling handlers start simulations. Please see given section \"Details\" information.","code":""},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate an NFL Season — simulate_nfl","text":"","code":"simulate_nfl( nfl_season = NULL, process_games = NULL, ..., playoff_seeds = ifelse(nfl_season >= 2020, 7, 6), if_ended_today = FALSE, fresh_season = FALSE, fresh_playoffs = FALSE, tiebreaker_depth = 3, test_week = NULL, simulations = 1000, sims_per_round = max(ceiling(simulations/future::availableCores() * 2), 100), .debug = FALSE, print_summary = FALSE, sim_include = c(\"DRAFT\", \"REG\", \"POST\") )"},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate an NFL Season — simulate_nfl","text":"nfl_season Season simulate process_games function estimate simulate results games. Uses team, schedule, week number arguments. ... Additional parameters passed function process_games. playoff_seeds Number playoff teams per conference (increased 2020 6 7). if_ended_today Either TRUE FALSE. TRUE, ignore remaining regular season games cut playoffs based current regular season data. fresh_season Either TRUE FALSE. Whether blank game results simulate season scratch (TRUE) take game results far given simulate rest (FALSE). fresh_playoffs Either TRUE FALSE. Whether blank playoff game results simulate postseason scratch (TRUE) take game results far given simulate rest (FALSE). tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. test_week Aborts simulator reaches week returns results process games call. simulations Equals number times given NFL season shall simulated sims_per_round number simulations can split multiple rounds processed parallel. parameter controls number simulations per round. default value determines number locally available cores calculates number simulations per round equal half available cores (various benchmarks showed results optimal performance). .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing. print_summary TRUE, prints summary statistics console. sim_include One \"REG\", \"POST\", \"DRAFT\" (default). Simulation behave follows: REG Simulate regular season compute standings, division ranks, playoff seeds POST REG + simulate postseason DRAFT POST + compute draft order","code":""},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate an NFL Season — simulate_nfl","text":"nflseedR_simulation object containing list 6 data frames data frames results simulated games, final standings simulated season (incl. playoffs draft order), summary statistics across simulated seasons, simulation parameters. full list, please see package website.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"more-speed-using-parallel-processing","dir":"Reference","previous_headings":"","what":"More Speed Using Parallel Processing","title":"Simulate an NFL Season — simulate_nfl","text":"recommend choosing default parallel processing method saving environment variable R user profile make sure futures resolved chosen method default. can done following given steps. First, run following line user profile opened automatically. saved environment variables yet, empty file. opened file add next line, save file restart R session. Please note example sets \"multisession\" default. users appropriate plan please make sure truly . session freshly restarted please check method worked running next line. output FALSE successfully set default non-sequential future::plan(). output TRUE functions behave like called purrr::map() multisession. information possible plans please see future package Readme.","code":"usethis::edit_r_environ() R_FUTURE_PLAN=\"multisession\" inherits(future::plan(), \"sequential\")"},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"get-progress-updates-while-functions-are-running","dir":"Reference","previous_headings":"","what":"Get Progress Updates while Functions are Running","title":"Simulate an NFL Season — simulate_nfl","text":"nflfastR functions able show progress updates using progressr::progressor() turned function called. least two basic ways either activating progress updates globally (current session) piping function call progressr::with_progress(): information work progress handlers please see progressr::progressr.","code":"progressr::handlers(global = TRUE) simulate_nfl(2020, fresh_season = TRUE) %>% progressr::with_progress()"},{"path":[]},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate an NFL Season — simulate_nfl","text":"","code":"# \\donttest{ library(nflseedR) # Activate progress updates # progressr::handlers(global = TRUE) # Parallel processing can be activated via the following line # future::plan(\"multisession\") try({#to avoid CRAN test problems # Simulate the season 4 times in 2 rounds sim <- nflseedR::simulate_nfl( nfl_season = 2020, fresh_season = TRUE, simulations = 4, sims_per_round = 2 ) # Overview output dplyr::glimpse(sim) }) #> ℹ 11:48:03 | Loading games data #> ℹ Computation in multiple rounds can be accelerated with parallel processing. #> ℹ You should consider calling a `future::plan()`. Please see the function #> documentation for further information. #> ℹ Will go on sequentially... #> ℹ 11:48:03 | Beginning simulation of 4 seasons in 2 rounds #> ℹ 11:48:07 | Combining simulation data #> ℹ 11:48:07 | Aggregating across simulations #> ℹ 11:48:07 | DONE! #> List of 6 #> $ teams :Classes ‘data.table’ and 'data.frame':\t128 obs. of 18 variables: #> ..$ sim : num [1:128] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ team : chr [1:128] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ conf : chr [1:128] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division : chr [1:128] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ games : int [1:128] 16 16 16 16 16 16 16 16 16 16 ... #> ..$ wins : num [1:128] 8 3 12 4 8 7 12 3 4 1 ... #> ..$ true_wins : int [1:128] 8 3 12 4 8 7 12 3 4 1 ... #> ..$ losses : int [1:128] 8 13 4 12 8 9 4 13 12 15 ... #> ..$ ties : int [1:128] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ win_pct : num [1:128] 0.5 0.188 0.75 0.25 0.5 ... #> ..$ div_pct : num [1:128] 0.833 0 0.833 0.333 0.5 ... #> ..$ conf_pct : num [1:128] 0.583 0.167 0.833 0.25 0.5 ... #> ..$ sov : num [1:128] 0.305 0.354 0.417 0.156 0.383 ... #> ..$ sos : num [1:128] 0.516 0.547 0.457 0.523 0.5 ... #> ..$ div_rank : num [1:128] 2 4 1 3 2 3 1 4 3 4 ... #> ..$ seed : num [1:128] 7 NA 2 NA NA NA 3 NA NA NA ... #> ..$ exit : num [1:128] 18 17 19 17 17 17 18 17 17 17 ... #> ..$ draft_order: num [1:128] 19 4 27 7 16 13 23 3 8 1 ... #> ..- attr(*, \".internal.selfref\")= #> $ games :Classes ‘data.table’ and 'data.frame':\t1076 obs. of 9 variables: #> ..$ sim : num [1:1076] 1 2 1 2 1 2 1 2 1 2 ... #> ..$ game_type: chr [1:1076] \"REG\" \"REG\" \"REG\" \"REG\" ... #> ..$ week : int [1:1076] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ away_team: chr [1:1076] \"HOU\" \"HOU\" \"SEA\" \"SEA\" ... #> ..$ home_team: chr [1:1076] \"KC\" \"KC\" \"ATL\" \"ATL\" ... #> ..$ away_rest: num [1:1076] 7 7 7 7 7 7 7 7 7 7 ... #> ..$ home_rest: num [1:1076] 7 7 7 7 7 7 7 7 7 7 ... #> ..$ location : chr [1:1076] \"Home\" \"Home\" \"Home\" \"Home\" ... #> ..$ result : int [1:1076] 18 8 18 1 4 -16 17 30 -25 -7 ... #> ..- attr(*, \".internal.selfref\")= #> $ overall : tibble [32 × 11] (S3: tbl_df/tbl/data.frame) #> ..$ conf : chr [1:32] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division: chr [1:32] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ team : chr [1:32] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ wins : num [1:32] 6.75 6 11 3.75 10.25 ... #> ..$ playoff : num [1:32] 0.25 0.5 1 0 0.5 0.75 0.5 0 0.5 0 ... #> ..$ div1 : num [1:32] 0 0.25 0.75 0 0.5 0.25 0.25 0 0.5 0 ... #> ..$ seed1 : num [1:32] 0 0 0 0 0.25 0.25 0 0 0 0 ... #> ..$ won_conf: num [1:32] 0 0 0 0 0 0.25 0 0 0 0 ... #> ..$ won_sb : num [1:32] 0 0 0 0 0 0.25 0 0 0 0 ... #> ..$ draft1 : num [1:32] 0 0.25 0 0 0 0 0 0 0 0.25 ... #> ..$ draft5 : num [1:32] 0 0.5 0 0.5 0 0 0 0.5 0.25 0.75 ... #> $ team_wins : tibble [1,056 × 4] (S3: tbl_df/tbl/data.frame) #> ..$ team : chr [1:1056] \"ARI\" \"ARI\" \"ARI\" \"ARI\" ... #> ..$ wins : num [1:1056] 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 ... #> ..$ over_prob : num [1:1056] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ under_prob: num [1:1056] 0 0 0 0 0 0 0 0 0 0 ... #> $ game_summary: tibble [306 × 11] (S3: tbl_df/tbl/data.frame) #> ..$ game_type : chr [1:306] \"REG\" \"REG\" \"REG\" \"REG\" ... #> ..$ week : int [1:306] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ away_team : chr [1:306] \"ARI\" \"CHI\" \"CLE\" \"DAL\" ... #> ..$ home_team : chr [1:306] \"SF\" \"DET\" \"BAL\" \"LA\" ... #> ..$ away_wins : int [1:306] 1 4 1 2 3 1 1 1 2 1 ... #> ..$ home_wins : int [1:306] 3 0 3 2 1 3 3 3 2 3 ... #> ..$ ties : int [1:306] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ result : num [1:306] 9.5 -12.25 7.25 8 -9 ... #> ..$ games_played : int [1:306] 4 4 4 4 4 4 4 4 4 4 ... #> ..$ away_percentage: num [1:306] 0.25 1 0.25 0.5 0.75 0.25 0.25 0.25 0.5 0.25 ... #> ..$ home_percentage: num [1:306] 0.75 0 0.75 0.5 0.25 0.75 0.75 0.75 0.5 0.75 ... #> $ sim_params :List of 14 #> ..$ nfl_season : num 2020 #> ..$ playoff_seeds : num 7 #> ..$ if_ended_today : logi FALSE #> ..$ fresh_season : logi TRUE #> ..$ fresh_playoffs : logi FALSE #> ..$ tiebreaker_depth: num 3 #> ..$ test_week : NULL #> ..$ simulations : num 4 #> ..$ sims_per_round : num 2 #> ..$ .debug : logi FALSE #> ..$ print_summary : logi FALSE #> ..$ sim_include : chr \"DRAFT\" #> ..$ nflseedR_version:Classes 'package_version', 'numeric_version' hidden list of 1 #> .. ..$ : int [1:4] 1 2 0 9901 #> ..$ finished_at : POSIXct[1:1], format: \"2024-10-15 11:48:07\" #> - attr(*, \"class\")= chr \"nflseedR_simulation\" # }"},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"Uses R package gt create pretty html table nflseedR simulation summary data frame.","code":""},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"","code":"# S3 method for class 'nflseedR_simulation' summary(object, ...)"},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"object object summary desired. ... additional arguments passed methods (currently used).","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"","code":"# \\donttest{ library(nflseedR) # set seed for recreation, # internal parallelization requires a L'Ecuyer-CMRG random number generator set.seed(19980310, kind = \"L'Ecuyer-CMRG\") # Simulate the season 20 times in 1 round sim <- nflseedR::simulate_nfl( nfl_season = 2021, fresh_season = TRUE, simulations = 20 ) #> ℹ 11:48:09 | Loading games data #> ℹ 11:48:09 | Beginning simulation of 20 seasons in 1 round #> ℹ 11:48:14 | Combining simulation data #> ℹ 11:48:14 | Aggregating across simulations #> ℹ 11:48:14 | DONE! # Create Summary Tables tbl <- summary(sim) # The output of tbl is given in the above image. # }"},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-development-version","dir":"Changelog","previous_headings":"","what":"nflseedR (development version)","title":"nflseedR (development version)","text":"Fixed error simulate_nfl() crashes “fake schedule” isn’t tibble. (#43) summary method summary.nflseedR_simulation() explicitly sets columns width logo column columns hidden unclear scenarios. New function nfl_standings() high efficient standings calculation. functions compute_division_ranks(), compute_conference_seeds(), compute_draft_order() deprecated future release. summary method summary.nflseedR_simulation() now requires gt version v0.9.0 higher avoid warnings deprecated arguments.","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-120","dir":"Changelog","previous_headings":"","what":"nflseedR 1.2.0","title":"nflseedR 1.2.0","text":"CRAN release: 2023-01-05 simulate_nfl() gained new argument sim_include allow access actually simulated. makes possible skip playoff simulation (possibly heavy) computation draft order. (#34) summary method summary.nflseedR_simulation() now hides columns values NA. useful simulate_nfl() skips postseason draft order. method also re-formats number simulations subtitle, e.g. “10000” “10k” (requires scales >= 1.2.0, good idea update scales anyways). (#35) simulate_nfl() now uses data.table combine simulation rounds data. significant performance improvement. returned list \"sim_params\" now includes package version nflseedR (debugging) current system time simulation finished. (#36) Lots internal improvements reduce package dependencies messaging. (#36) summary method summary.nflseedR_simulation() now uses fmt_pct_special() format probability strings avoid impression overconfidence rounding integer percentages. (#37)","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-110","dir":"Changelog","previous_headings":"","what":"nflseedR 1.1.0","title":"nflseedR 1.1.0","text":"CRAN release: 2022-07-07 Added data frame game_summary output simulate_nfl() aggregates matchups across simulated seasons (#24) Updated description variables load_sharpe_games() (#24) output simulate_nfl() now class nflseedR_simulation allows implementation summary() method computes gt() table simulation summary data frame. (#26) standings data frame calculated compute_division_ranks() now outputs losses ties well. (#27)","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-102","dir":"Changelog","previous_headings":"","what":"nflseedR 1.0.2","title":"nflseedR 1.0.2","text":"CRAN release: 2021-04-10 Improved error handling function load_sharpe_games() CRAN tests","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-101","dir":"Changelog","previous_headings":"","what":"nflseedR 1.0.1","title":"nflseedR 1.0.1","text":"CRAN release: 2021-03-31 Added support fake schedule simulating upcoming season NFL released official schedule. updated documentation function load_sharpe_games() new columns away_qb_id, home_qb_id, away_qb_name home_qb_name.","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-100","dir":"Changelog","previous_headings":"","what":"nflseedR 1.0.0","title":"nflseedR 1.0.0","text":"Initial release.","code":""}] +[{"path":[]},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"interest fostering open welcoming environment, contributors maintainers pledge making participation project community harassment-free experience everyone, regardless age, body size, disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, religion, sexual identity orientation.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes creating positive environment include: Using welcoming inclusive language respectful differing viewpoints experiences Gracefully accepting constructive criticism Focusing best community Showing empathy towards community members Examples unacceptable behavior participants include: use sexualized language imagery unwelcome sexual attention advances Trolling, insulting/derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical electronic address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"our-responsibilities","dir":"","previous_headings":"","what":"Our Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Project maintainers responsible clarifying standards acceptable behavior expected take appropriate fair corrective action response instances unacceptable behavior. Project maintainers right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, ban temporarily permanently contributor behaviors deem inappropriate, threatening, offensive, harmful.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within project spaces public spaces individual representing project community. Examples representing project community include using official project e-mail address, posting via official social media account, acting appointed representative online offline event. Representation project may defined clarified project maintainers.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported contacting project team hello@dynastyprocess.com. complaints reviewed investigated result response deemed necessary appropriate circumstances. project team obligated maintain confidentiality regard reporter incident. details specific enforcement policies may posted separately. Project maintainers follow enforce Code Conduct good faith may face temporary permanent repercussions determined members project’s leadership.","code":""},{"path":"https://nflseedr.com/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 1.4, available https://www.contributor-covenant.org/version/1/4/code--conduct.html answers common questions code conduct, see https://www.contributor-covenant.org/faq","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing","title":"Contributing","text":"Many hands make light work! ways can contribute project:","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"open-an-issue","dir":"","previous_headings":"","what":"Open an issue","title":"Contributing","text":"can open issue ’d like request specific function report bug/error.","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"fixing-typos","dir":"","previous_headings":"","what":"Fixing typos","title":"Contributing","text":"can fix typos, spelling mistakes, grammatical errors documentation directly using GitHub web interface, long changes made source file. generally means ’ll need edit roxygen2 comments .R, .Rd file. can find .R file generates .Rd reading comment first line.","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"bigger-changes","dir":"","previous_headings":"","what":"Bigger changes","title":"Contributing","text":"want make bigger change, ’s good idea first file issue make sure someone team agrees ’s needed. ’ve found bug, please file issue illustrates bug minimal reprex (also help write unit test, needed). can also bring changes nflverse discord team happy discuss!","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"code-style","dir":"","previous_headings":"","what":"Code style","title":"Contributing","text":"New code follow tidyverse style guide. can use styler package apply styles, please don’t restyle code nothing PR. use roxygen2, Markdown syntax, documentation. use testthat unit tests. Contributions test cases included easier accept.","code":""},{"path":"https://nflseedr.com/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contributing","text":"Please note usethis project released Contributor Code Conduct. contributing project agree abide terms. contribution guidelines inspired guidelines {usethis}","code":""},{"path":"https://nflseedr.com/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"MIT License","title":"MIT License","text":"Copyright (c) 2021 Lee Sharpe, Sebastian Carl Permission hereby granted, free charge, person obtaining copy software associated documentation files (“Software”), deal Software without restriction, including without limitation rights use, copy, modify, merge, publish, distribute, sublicense, /sell copies Software, permit persons Software furnished , subject following conditions: copyright notice permission notice shall included copies substantial portions Software. SOFTWARE PROVIDED “”, WITHOUT WARRANTY KIND, EXPRESS IMPLIED, INCLUDING LIMITED WARRANTIES MERCHANTABILITY, FITNESS PARTICULAR PURPOSE NONINFRINGEMENT. EVENT SHALL AUTHORS COPYRIGHT HOLDERS LIABLE CLAIM, DAMAGES LIABILITY, WHETHER ACTION CONTRACT, TORT OTHERWISE, ARISING , CONNECTION SOFTWARE USE DEALINGS SOFTWARE.","code":""},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"preface","dir":"Articles","previous_headings":"","what":"Preface","title":"Get started with nflseedR","text":"nflseedR designed efficiently take sophisticated complex rule set NFL regarding division ranks, postseason seeding draft order. intended used NFL season simulations help modelers focus models rather tie-breaking procedures. NFL’s official procedures breaking ties postseason playoffs may found , site explains assignment draft pick order. nflseedR support levels tie-breakers moment. deepest tie-breaker currently strength schedule. , decision made random. However, need additional levels extremely unlikely practice deeper levels never actually needed resolve season-end standings since NFL expanded 32 teams.","code":""},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"using-in-simulation-functions","dir":"Articles","previous_headings":"","what":"Using In-Simulation Functions","title":"Get started with nflseedR","text":"can get NFL game data function: load_sharpe_games() collect game information results preferred, one can obtain generate set game outcomes let nflseedR handle NFL seeding tiebreaker math three -simulation functions (can handle thousands seasons ): compute_division_ranks() find division winners, compute_conference_seeds() get playoff participants, compute_draft_order() find resulting draft pick team. following sections demonstrate use input required. Loading package obligatory, done first (along dplyr data wrangling pipe):","code":"library(nflseedR) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) : #> object 'type_sum.accel' not found library(dplyr, warn.conflicts = FALSE) options(digits = 3) options(warn = -1)"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"load-sharpe-games","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Load Sharpe Games","title":"Get started with nflseedR","text":"pulls game information games.rds file (equivalent games.csv file) Lee Sharpe’s NFL Data Github.","code":"games <- nflseedR::load_sharpe_games() games %>% dplyr::slice_tail(n = 20) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"find-division-ranks","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Find Division Ranks","title":"Get started with nflseedR","text":"function computes division ranks based data frame containing game results one NFL seasons. let’s load game data first (example uses game data 2012 2019 seasons): Please note required column names: sim : simulation ID. Normally 1 - n simulated seasons (like case) just year. game_type : One ‘REG’, ‘WC’, ‘DIV’, ‘CON’, ‘SB’ indicating game regular season game one playoff rounds. week : week corresponding NFL season. away_team : Team abbreviation away team. home_team : Team abbreviation home team. result : Equals home score - away score. Now games data frame can used compute division ranks (parameter .debug set TRUE show function ). Please note function outputs list data frames, actual division standings, data frame named h2h. latter important input functions (used break head--head ties) can computed compute_division_ranks(). resulting division standings data frame 2012 season: season, second-place finish NFC South required three way tie-breaker Panthers, Saints Bucs. broken three-way Conference Record. can seen given console output: ...DIV (3): Common Record division rank number 2. Bucs lost tie-breaker 0.333 win percentage conference tie-breaking procedure goes forward 2-way head--head comparison.","code":"games <- nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% c(2012, 2019)) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) dplyr::glimpse(games) #> Rows: 534 #> Columns: 6 #> $ sim 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, … #> $ game_type \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG… #> $ week 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, … #> $ away_team \"DAL\", \"IND\", \"PHI\", \"STL\", \"MIA\", \"ATL\", \"JAX\", \"WAS\", \"BUF… #> $ home_team \"NYG\", \"CHI\", \"CLE\", \"DET\", \"HOU\", \"KC\", \"MIN\", \"NO\", \"NYJ\",… #> $ result -7, 20, -1, 4, 20, -16, 3, -8, 20, -21, 4, -8, 6, 12, 31, -8… div_standings <- nflseedR::compute_division_ranks(games, .debug = TRUE) #> ℹ 14:58:28 | Calculating team data #> ℹ 14:58:28 | Calculating head to head #> ℹ 14:58:28 | Calculating division rank #1 #> ℹ 14:58:28 | DIV (2): Head-to-head #> ℹ 14:58:28 | DIV (2): Division Record #> ℹ 14:58:28 | Calculating division rank #2 #> ℹ 14:58:28 | DIV (3): Head-to-head #> ℹ 14:58:28 | DIV (3): Division Record #> ℹ 14:58:28 | DIV (3): Common Record #> ℹ 14:58:28 | DIV (2): Head-to-head #> ℹ 14:58:29 | DIV (2): Division Record #> ℹ 14:58:29 | DIV (2): Common Record #> ℹ 14:58:29 | DIV (2): Conference Record #> ℹ 14:58:29 | Calculating division rank #3 #> ℹ 14:58:29 | DIV (2): Head-to-head #> ℹ 14:58:29 | DIV (2): Division Record #> ℹ 14:58:29 | DIV (2): Common Record #> ℹ 14:58:29 | Calculating division rank #4 dplyr::glimpse(div_standings) #> List of 2 #> $ standings: tibble [64 × 16] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:64] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ conf : chr [1:64] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division : chr [1:64] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ team : chr [1:64] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ games : int [1:64] 16 16 16 16 16 16 16 16 16 16 ... #> ..$ wins : num [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ true_wins : int [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ losses : int [1:64] 10 9 4 10 6 6 11 8 4 5 ... #> ..$ ties : int [1:64] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ win_pct : num [1:64] 0.375 0.438 0.75 0.375 0.625 ... #> ..$ div_pct : num [1:64] 0.333 0.333 1 0.333 0.667 ... #> ..$ conf_pct : num [1:64] 0.417 0.417 0.917 0.333 0.667 ... #> ..$ sov : num [1:64] 0.281 0.415 0.466 0.401 0.438 ... #> ..$ sos : num [1:64] 0.48 0.5 0.496 0.512 0.496 ... #> ..$ div_rank : num [1:64] 4 2 1 3 1 2 4 3 1 2 ... #> ..$ max_reg_week: int [1:64] 17 17 17 17 17 17 17 17 17 17 ... #> $ h2h : tibble [2,048 × 6] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:2048] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ team : chr [1:2048] \"ARI\" \"ARI\" \"ARI\" \"ARI\" ... #> ..$ opp : chr [1:2048] \"ARI\" \"ATL\" \"BAL\" \"BUF\" ... #> ..$ h2h_games : int [1:2048] 0 1 0 1 0 1 0 0 0 0 ... #> ..$ h2h_wins : num [1:2048] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ h2h_played: num [1:2048] 0 1 0 1 0 1 0 0 0 0 ... div_standings %>% purrr::pluck(\"standings\") %>% dplyr::filter(sim == 2012) %>% dplyr::select(division:div_rank) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"find-conference-seedings","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Find Conference Seedings","title":"Get started with nflseedR","text":"function computes conference seedings based computed division standings data frame. efficiency, reasons h2h data frame computed passed function. easiest way pass list data frames computed first step. example (please note number playoff seeds): Just like compute_division_ranks(), function returns list two data frames can use within pipe. resulting seeds 2012 season given .","code":"seeds <- div_standings %>% nflseedR::compute_conference_seeds(h2h = .$h2h, playoff_seeds = 6, .debug = TRUE) #> ℹ 14:58:29 | Calculating seed #1 #> ℹ 14:58:29 | CONF (3): Head-to-head Sweep #> ℹ 14:58:29 | Calculating seed #2 #> ℹ 14:58:29 | CONF (2): Head-to-head Sweep #> ℹ 14:58:29 | CONF (2): Conference Record #> ℹ 14:58:29 | Calculating seed #3 #> ℹ 14:58:29 | Calculating seed #4 #> ℹ 14:58:29 | Calculating seed #5 #> ℹ 14:58:29 | Calculating seed #6 #> ℹ 14:58:29 | CONF (2): Best-in-division reduction dplyr::glimpse(seeds) #> List of 2 #> $ standings: tibble [64 × 17] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:64] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ conf : chr [1:64] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division : chr [1:64] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ team : chr [1:64] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ games : int [1:64] 16 16 16 16 16 16 16 16 16 16 ... #> ..$ wins : num [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ true_wins: int [1:64] 6 7 12 6 10 10 5 8 12 11 ... #> ..$ losses : int [1:64] 10 9 4 10 6 6 11 8 4 5 ... #> ..$ ties : int [1:64] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ win_pct : num [1:64] 0.375 0.438 0.75 0.375 0.625 ... #> ..$ div_pct : num [1:64] 0.333 0.333 1 0.333 0.667 ... #> ..$ conf_pct : num [1:64] 0.417 0.417 0.917 0.333 0.667 ... #> ..$ sov : num [1:64] 0.281 0.415 0.466 0.401 0.438 ... #> ..$ sos : num [1:64] 0.48 0.5 0.496 0.512 0.496 ... #> ..$ div_rank : num [1:64] 4 2 1 3 1 2 4 3 1 2 ... #> ..$ seed : num [1:64] NA NA 2 NA 4 6 NA NA 3 5 ... #> ..$ exit : num [1:64] 17 17 NA 17 NA NA 17 17 NA NA ... #> $ h2h : tibble [2,048 × 6] (S3: tbl_df/tbl/data.frame) #> ..$ sim : int [1:2048] 2012 2012 2012 2012 2012 2012 2012 2012 2012 2012 ... #> ..$ team : chr [1:2048] \"ARI\" \"ARI\" \"ARI\" \"ARI\" ... #> ..$ opp : chr [1:2048] \"ARI\" \"ATL\" \"BAL\" \"BUF\" ... #> ..$ h2h_games : int [1:2048] 0 1 0 1 0 1 0 0 0 0 ... #> ..$ h2h_wins : num [1:2048] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ h2h_played: num [1:2048] 0 1 0 1 0 1 0 0 0 0 ... seeds %>% purrr::pluck(\"standings\") %>% dplyr::filter(sim == 2012) %>% dplyr::select(division:seed) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflseedR.html","id":"find-draft-order","dir":"Articles","previous_headings":"Using In-Simulation Functions","what":"Find Draft Order","title":"Get started with nflseedR","text":"function computes draft order based playoff outcomes regular season games. requires playoff results games data frame game_type Super Bowl \"SB\". efficiency reasons, h2h data frame computed passed function well. easiest way pass list data frames computed steps: final step, function compute_draft_order output h2h . Instead directly outputs final standings including draft order variable exit indicates week number team’s final game (Super Bowl Winner’s exit equals 22):","code":"draft <- seeds %>% nflseedR::compute_draft_order(games = games, h2h = .$h2h, .debug = TRUE) #> ℹ 14:58:30 | Calculating draft order #32 #> ℹ 14:58:30 | Calculating draft order #31 #> ℹ 14:58:30 | Calculating draft order #30 #> ℹ 14:58:30 | Calculating draft order #29 #> ℹ 14:58:30 | Calculating draft order #28 #> ℹ 14:58:30 | Calculating draft order #27 #> ℹ 14:58:30 | Calculating draft order #26 #> ℹ 14:58:30 | Calculating draft order #25 #> ℹ 14:58:30 | Calculating draft order #24 #> ℹ 14:58:30 | Calculating draft order #23 #> ℹ 14:58:30 | Calculating draft order #22 #> ℹ 14:58:30 | Calculating draft order #21 #> ℹ 14:58:30 | Calculating draft order #20 #> ℹ 14:58:30 | Calculating draft order #19 #> ℹ 14:58:30 | Calculating draft order #18 #> ℹ 14:58:30 | Calculating draft order #17 #> ℹ 14:58:30 | Calculating draft order #16 #> ℹ 14:58:30 | Calculating draft order #15 #> ℹ 14:58:30 | Calculating draft order #14 #> ℹ 14:58:30 | Calculating draft order #13 #> ℹ 14:58:30 | Calculating draft order #12 #> ℹ 14:58:30 | Calculating draft order #11 #> ℹ 14:58:30 | Calculating draft order #10 #> ℹ 14:58:30 | DRAFT: Divisional Rank #> ℹ 14:58:30 | DRAFT: Conference Rank #> ℹ 14:58:30 | CONF (2): Best-in-division reduction #> ℹ 14:58:30 | CONF (2): Head-to-head Sweep #> ℹ 14:58:30 | Calculating draft order #9 #> ℹ 14:58:30 | Calculating draft order #8 #> ℹ 14:58:30 | Calculating draft order #7 #> ℹ 14:58:30 | Calculating draft order #6 #> ℹ 14:58:30 | Calculating draft order #5 #> ℹ 14:58:30 | Calculating draft order #4 #> ℹ 14:58:30 | Calculating draft order #3 #> ℹ 14:58:30 | Calculating draft order #2 #> ℹ 14:58:30 | Calculating draft order #1 dplyr::glimpse(draft) #> Rows: 64 #> Columns: 18 #> $ sim 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012… #> $ team \"BUF\", \"MIA\", \"NE\", \"NYJ\", \"BAL\", \"CIN\", \"CLE\", \"PIT\", \"HO… #> $ conf \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"AFC\", \"A… #> $ division \"AFC East\", \"AFC East\", \"AFC East\", \"AFC East\", \"AFC North… #> $ games 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16… #> $ wins 6, 7, 12, 6, 10, 10, 5, 8, 12, 11, 2, 6, 13, 2, 4, 7, 8, 9… #> $ true_wins 6, 7, 12, 6, 10, 10, 5, 8, 12, 11, 2, 6, 13, 2, 4, 7, 8, 9… #> $ losses 10, 9, 4, 10, 6, 6, 11, 8, 4, 5, 14, 10, 3, 14, 12, 9, 8, … #> $ ties 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0… #> $ win_pct 0.375, 0.438, 0.750, 0.375, 0.625, 0.625, 0.312, 0.500, 0.… #> $ div_pct 0.333, 0.333, 1.000, 0.333, 0.667, 0.500, 0.333, 0.500, 0.… #> $ conf_pct 0.417, 0.417, 0.917, 0.333, 0.667, 0.583, 0.417, 0.417, 0.… #> $ sov 0.281, 0.415, 0.466, 0.401, 0.438, 0.381, 0.388, 0.438, 0.… #> $ sos 0.480, 0.500, 0.496, 0.512, 0.496, 0.438, 0.508, 0.465, 0.… #> $ div_rank 4, 2, 1, 3, 1, 2, 4, 3, 1, 2, 4, 3, 1, 4, 3, 2, 3, 2, 4, 1… #> $ seed NA, NA, 2, NA, 4, 6, NA, NA, 3, 5, NA, NA, 1, NA, NA, NA, … #> $ exit 17, 17, 20, 17, 22, 18, 17, 17, 19, 18, 17, 17, 19, 17, 17… #> $ draft_order 8, 12, 29, 9, 32, 21, 6, 17, 27, 24, 2, 10, 28, 1, 3, 11, … draft %>% dplyr::filter(sim == 2012) %>% dplyr::select(division:draft_order) %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"running-a-simulation","dir":"Articles","previous_headings":"","what":"Running a Simulation","title":"Simulating NFL seasons using nflseedR","text":"Loading package obligatory, done first (along dplyr data wrangling pipe): Note: guide, ’ll set initial random seed 4 beginning simulations = 100 purposes document can follow along entering code get results shown . ’ll also set fresh_season = TRUE blank existing results 2020 season, normally simulating incomplete season, wouldn’t things. output contains lot pre-aggregated information, well individual results game simulation. example, let’s look overall results Bears: can see Bears got 10.8 wins average. made playoffs 87% simulations, won division 39%, won Super Bowl 4%, 1% receive top five draft pick. teams section output show team simulated season. Let’s check playoff games first simulation, Bears went 10-6 got 6th seed. simulation, Bears beat Rams wildcard game 26 points, beat Cowboys divisional round 11 points, took Eagles field goal NFC Championship Game, finally defeated Patriots 6 Super Bowl. may gathered point, default simulation code picks random Elo every team, uses starting Elo ratings 32 teams. However, default code Elo adjust independently within simulation week simulated. (Elo model used loosely based FiveThirtyEight.)","code":"library(nflseedR) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) : #> object 'type_sum.accel' not found library(dplyr, warn.conflicts = FALSE) options(digits = 3) set.seed(4) sims <- simulate_nfl( nfl_season = 2020, fresh_season = TRUE, simulations = 100 ) #> ℹ 14:58:33 | Loading games data #> ℹ 14:58:34 | Beginning simulation of 100 seasons in 1 round #> ℹ 14:58:47 | Combining simulation data #> ℹ 14:58:47 | Aggregating across simulations #> ℹ 14:58:47 | DONE! sims$overall %>% dplyr::filter(team == \"CHI\") %>% knitr::kable() sims$teams %>% dplyr::filter(team == \"CHI\") %>% dplyr::select(sim, team, wins, seed, draft_order) %>% utils::head(6) %>% knitr::kable() sims$games %>% dplyr::filter(sim == 1, game_type != \"REG\") %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"use-your-own-model","dir":"Articles","previous_headings":"Running a Simulation","what":"Use Your Own Model","title":"Simulating NFL seasons using nflseedR","text":"course real value nflseedR putting model simulator. accomplish , can write function determine output games instead. example, ’s stupid model makes team earlier alphabetically win 3 points 90% time, lose 3 points 10% time. create function, first two inputs data teams (one row per team per sim), data games (one row per game per sim). third argument week number currently simulated, one week processed time. function’s job - whatever means choose - update result column week’s games sims number points home team won (lost negative, 0 game ended tie). returns teams games data. way can store information new columns team game use next call. Make sure code accepts returns appropriate information, simulator break! example, default function updates team’s Elo game, stores teams data. simulator processes next week, uses updated Elo rating inform team’s next game. !! Also, make sure aren’t overriding completed games games aren’t current week w. simulator stop setting past, present, future game results function, whether meant . !! Let’s run simulation stupid_games_model see happens: might expect, earliest alphabetical teams win lot. Cardinals won Super Bowl 59% seasons! Meanwhile, teams bottom alphabetically virtually certain top draft order.","code":"stupid_games_model <- function(teams, games, week_num, ...) { # make the earlier alphabetical team win 90% of the time games <- games %>% dplyr::mutate( result = dplyr::case_when( !is.na(result) | week != week_num ~ result, away_team < home_team ~ sample(c(-3, 3), n(), prob = c(0.9, 0.1), replace = TRUE), away_team > home_team ~ sample(c(-3, 3), n(), prob = c(0.1, 0.9), replace = TRUE), TRUE ~ 0 ) ) # return values return(list(teams = teams, games = games)) } sims2 <- simulate_nfl( nfl_season = 2020, process_games = stupid_games_model, fresh_season = TRUE, simulations = 100 ) #> ℹ 14:58:47 | Loading games data #> ℹ 14:58:47 | Beginning simulation of 100 seasons in 1 round #> ℹ 14:58:59 | Combining simulation data #> ℹ 14:58:59 | Aggregating across simulations #> ℹ 14:58:59 | DONE! sims2$overall %>% dplyr::arrange(team) %>% utils::head() %>% knitr::kable() sims2$overall %>% dplyr::arrange(team) %>% utils::tail() %>% knitr::kable()"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"adding-in-your-own-data","dir":"Articles","previous_headings":"Running a Simulation","what":"Adding In Your Own Data","title":"Simulating NFL seasons using nflseedR","text":"well good, might thinking, model works data simulator! can work? utilize R’s ability generic arguments. ... end function definition means function can called number additional arguments. can name whatever want, long ’re already name defined arguments. call simulate_nfl() function, uses ... syntax, allows pass number additional arguments function. simulator turn pass function processes games. example, let’s slightly modify last example: allows us define best worst, use information determine result (case, best team always win worst team always lose). best worst example single-length character vectors, can data frames R data type. Let’s simulate using : Now let nflseedR summarize simulation using summary() nflseedR simulation object. print gt table. shows exactly expect. defining Bears best team, always go 16-0, win division, win Super Bowl. Interestingly, always get #1 seed. makes sense, however, games without Bears Packers, alphabetically earlier teams still wins 90% time. Cardinals therefore expected go 16-0 simulations, thee tiebreakers Bears. However, even simulations, ’ll still lose Bears end meet playoffs. Similarly, Packers always go 0-16, never make playoffs. simulated seasons got #1 draft pick every time, aren’t guaranteed . Using logic , sometimes Washington Commanders go 0-16 , may beat Packers #1 pick tiebreakers.","code":"biased_games_model <- function(teams, games, week_num, ...) { # arguments args <- list(...) best <- \"\" worst <- \"\" # best team? if (\"best\" %in% names(args)) { best <- args$best } # worst team? if (\"worst\" %in% names(args)) { worst <- args$worst } # make the best team always win and the worst team always lose # otherwise, make the earlier alphabetical team win 90% of the time games <- games %>% dplyr::mutate( result = dplyr::case_when( !is.na(result) | week != week_num ~ result, away_team == best | home_team == worst ~ -3, away_team == worst | home_team == best ~ 3, away_team < home_team ~ sample(c(-3, 3), n(), prob = c(0.9, 0.1), replace = TRUE), away_team > home_team ~ sample(c(-3, 3), n(), prob = c(0.1, 0.9), replace = TRUE), TRUE ~ 0 ) ) # return values return(list(teams = teams, games = games)) } sims3 <- simulate_nfl( nfl_season = 2020, process_games = biased_games_model, fresh_season = TRUE, simulations = 100, best = \"CHI\", worst = \"GB\" ) #> ℹ 14:58:59 | Loading games data #> ℹ 14:58:59 | Beginning simulation of 100 seasons in 1 round #> ℹ 14:59:11 | Combining simulation data #> ℹ 14:59:11 | Aggregating across simulations #> ℹ 14:59:11 | DONE! summary(sims3)"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"passing-data-in-from-one-week-to-the-next","dir":"Articles","previous_headings":"Running a Simulation","what":"Passing Data in from One Week to the Next","title":"Simulating NFL seasons using nflseedR","text":"Sometimes though want data keep updating simulation progresses. example, Elo-based model updates team’s Elo game. can pass starting Elo values per team, games simulated, update Elo values team store teams data. column part teams data passed function following week simulated function called. Read comments code specific tips good ones: can add columns teams /games want. joins , left joins make sure rows removed. Remove “helper” columns generate along way don’t actually need returning. Make sure column doesn’t get blindly joined .x .y versions Week 2 R throws error expected column name doesn’t exist. Make sure update games .na(result) & week == week_num! don’t want override completed games, games week current week simulated. Let’s generate initial random Elo values team. see works, ’ll supply test_week = 3 argument simulate_nfl() abort simulating Week 3, instead return result elo_model() function. Let’s look Bears’ Elo Week 3 top handful simulations: can see different simulations different Elo results Bears, simulated seasons different results games, Elos adjusted accordingly. Let’s examine Bears’ games first simulation: Note first three weeks result filled , others NA, indicating game hasn’t yet occurred simulated. test_week = 3 input aborted simulation Week 3, useful seeing Elo .","code":"elo_model <- function(teams, games, week_num, ...) { # round out (away from zero) # this way the simulator never simulates a tie # the simulator will still allow ties to be simulated if you want # ... but not on playoff games round_out <- function(x) { x[!is.na(x) & x < 0] <- floor(x[!is.na(x) & x < 0]) x[!is.na(x) & x > 0] <- ceiling(x[!is.na(x) & x > 0]) return(x) } # we're going to store elo as a new columns in the teams data # it won't start off there of course, so we need to determine it # from our arguments if (!(\"elo\" %in% colnames(teams))) { args <- list(...) if (\"elo\" %in% names(args)) { # pull the elo info from custom arguments teams <- teams %>% dplyr::inner_join(args$elo %>% dplyr::select(team, elo), by = c(\"team\" = \"team\")) } else { # error with a friendly error message if no elo data is passed in stop(\"Pass in a tibble `elo` as an argument to `simulate_nfl()`\") } } # isolate the ratings data by sim and by team only # we will want to join to the games data later and don't want excess columns ratings <- teams %>% dplyr::select(sim, team, elo) # simulate game outcomes games <- games %>% # add in the away team's elo to the game data # note we join on both `sim` and the team # always join on `sim` to make sure each sim cares about only its data dplyr::inner_join(ratings, by = c(\"sim\" = \"sim\", \"away_team\" = \"team\")) %>% dplyr::rename(away_elo = elo) %>% # repeat for the home team as well dplyr::inner_join(ratings, by = c(\"sim\" = \"sim\", \"home_team\" = \"team\")) %>% dplyr::rename(home_elo = elo) %>% dplyr::mutate( # calculate the elo difference elo_diff = home_elo - away_elo, # add in a small HFA amount if played at home elo_diff = elo_diff + ifelse(location == \"Home\", 20, 0), # make an adjustment for rest elo_diff = elo_diff + (home_rest - away_rest) / 7 * 25, # playoff games swing elo more elo_diff = elo_diff * ifelse(game_type == \"REG\", 1, 1.2), # from elo, we calculate the home team's win percentage wp = 1 / (10^(-elo_diff / 400) + 1), # we also can calculate the estimate (mean points home team wins by) estimate = elo_diff / 25, result = dplyr::case_when( # !!! ALWAYS DO THIS NEXT LINE IN YOUR `result` CHANGES !!! # you have to make sure you're only changing unfinished games in current week # if you don't do this, it will usually error out on a friendly error message is.na(result) & week == week_num ~ as.integer(round_out(rnorm(n(), estimate, 13))), # if not this week or known result, leave as-is TRUE ~ as.integer(result) ), # simplify to 1 = win, 0 = loss, 0.5 = tie to help calculate elo shift outcome = dplyr::case_when( is.na(result) ~ NA_real_, result > 0 ~ 1, result < 0 ~ 0, TRUE ~ 0.5 ), # calculate the amount to adjust home team's elo by elo_input = dplyr::case_when( is.na(result) ~ NA_real_, result > 0 ~ elo_diff * 0.001 + 2.2, result < 0 ~ -elo_diff * 0.001 + 2.2, TRUE ~ 1.0, ), elo_mult = log(pmax(abs(result), 1) + 1.0) * 2.2 / elo_input, elo_shift = 20 * elo_mult * (outcome - wp) ) %>% # we don't want these columns in `games` any more # remove any columns you don't need when you're done # otherwise the next week they'll get joined as `col.x` and `col.y` # which will almost certainly break your script dplyr::select( -away_elo, -home_elo, -elo_diff, -wp, -estimate, -outcome, -elo_input, -elo_mult ) # apply elo shifts teams <- teams %>% # join games results from this week to away teams (within same sim!) # note this is a LEFT join, we don't want to remove any teams rows dplyr::left_join(games %>% dplyr::filter(week == week_num) %>% dplyr::select(sim, away_team, elo_shift), by = c(\"sim\" = \"sim\", \"team\" = \"away_team\") ) %>% # away team's elo gets subtracted by elo amount # if the team wasn't an away team, do nothing dplyr::mutate(elo = elo - ifelse(!is.na(elo_shift), elo_shift, 0)) %>% # we don't want to keep `elo_shift` in `teams` either, remove it dplyr::select(-elo_shift) %>% # repeat the above except now do it for the home team dplyr::left_join(games %>% dplyr::filter(week == week_num) %>% dplyr::select(sim, home_team, elo_shift), by = c(\"sim\" = \"sim\", \"team\" = \"home_team\") ) %>% # note that a team on a bye will have `elo_shift` as NA for both joins # this means it won't change, which is what we want dplyr::mutate(elo = elo + ifelse(!is.na(elo_shift), elo_shift, 0)) %>% dplyr::select(-elo_shift) # we need to keep `elo_shift` out of `games` too and we're done with it games <- games %>% dplyr::select(-elo_shift) # return the updated teams and games information # note that `teams` will now have an updated `elo` column which will # be used for the next week's games # note that starting `elo` values are the same per-team... # ... but after that will differ per sim depending on that sim's results return(list(teams = teams, games = games)) } initial_elo <- tibble::tibble( team = unique(nflseedR::divisions$team), elo = rnorm(length(unique(nflseedR::divisions$team)), 1500, 150) ) test <- simulate_nfl( nfl_season = 2020, process_games = elo_model, elo = initial_elo, fresh_season = TRUE, test_week = 3 ) #> ℹ 14:59:12 | Loading games data #> ℹ 14:59:12 | Beginning simulation of 1000 seasons in 1 round #> ℹ 14:59:13 | Aborting and returning your `process_games` function's results #> from Week 3 test$teams %>% dplyr::filter(team == \"CHI\") %>% utils::head() %>% knitr::kable() test$games %>% filter(sim == 1) %>% filter(away_team == \"CHI\" | home_team == \"CHI\") #> ── nflverse games and schedules ──────────────────────────────────────────────── #> ℹ Data updated: 2024-12-23 14:59:12 UTC #> # A tibble: 16 × 9 #> sim game_type week away_team home_team away_rest home_rest location result #> #> 1 1 REG 1 CHI DET 7 7 Home 13 #> 2 1 REG 2 NYG CHI 6 7 Home 18 #> 3 1 REG 3 CHI ATL 7 7 Home -1 #> 4 1 REG 4 IND CHI 7 7 Home NA #> 5 1 REG 5 TB CHI 4 4 Home NA #> 6 1 REG 6 CHI CAR 10 7 Home NA #> 7 1 REG 7 CHI LA 8 8 Home NA #> 8 1 REG 8 NO CHI 7 6 Home NA #> 9 1 REG 9 CHI TEN 7 7 Home NA #> 10 1 REG 10 MIN CHI 8 8 Home NA #> 11 1 REG 12 CHI GB 13 7 Home NA #> 12 1 REG 13 DET CHI 10 7 Home NA #> 13 1 REG 14 HOU CHI 7 7 Home NA #> 14 1 REG 15 CHI MIN 7 7 Home NA #> 15 1 REG 16 CHI JAX 7 7 Home NA #> 16 1 REG 17 GB CHI 7 7 Home NA"},{"path":"https://nflseedr.com/articles/nflsim.html","id":"simulation-configuration","dir":"Articles","previous_headings":"Running a Simulation","what":"Simulation Configuration","title":"Simulating NFL seasons using nflseedR","text":"lot flexibility choose run simulation. parameters configure run simulate_nfl() function. nfl_season - NFL season simulating? default, simulates recent season regular season schedule available Lee Sharpe’s NFL game data. earliest season can simulate 2002. Note: schedule new season released, nflseedR may support simulating using fake schedule upcoming season. notify . opponents correct, weeks games occur match actual NFL schedule. actual schedule utilized instead released NFL. process_games - supply function ’ve written encompass model used determine simulated games results, like examples . default, generate random Elo every team per round simulations, use determine game data. playoff_seeds - many playoff seeds per conference used? default, 7 seasons 2020 later, 6 earlier seasons. if_ended_today - used running middle regular season. take completed games done, remove rest regular season games schedule, begin playoffs everything locked based regular season data exists far. fresh_season - ’ll see set TRUE examples . setting deletes playoff games clears results regular season games, everything generated fresh. default FALSE games completed real life treated locked , instead remaining games simulated. fresh_playoffs - Similar fresh_season, except instead set TRUE, regular season results remain playoff games deleted simulated. default FALSE case playoff games completed accepted occurred, 1: teams record ties broken randomly. 2: Instead evaluating common games step reached, break ties randomly. earlier tiebreakers handled correctly. 3: default. tiebreakers handled strength schedule processed (strength victory draft pick order). unlikely event tie, broken randomly. test_week - abort simulating week number simulator. simulate_nfl() instead return output process_games() function. useful input debugging code, left NULL (default) actual simulations. also means first round simulated. simulations - many simulations run? Defaults 1000. sims_per_round - simulator can break things chunks simulated seasons, process chunk (called round), aggregate everything together end. default value determines number locally available cores calculates number simulations per round equal half available cores (various benchmarks showed results optimal performance parallel processes). computer hanging forces restart running simulation, recommended lower number.","code":""},{"path":"https://nflseedr.com/articles/nflsim.html","id":"simulation-output","dir":"Articles","previous_headings":"Running a Simulation","what":"Simulation Output","title":"Simulating NFL seasons using nflseedR","text":"output simulate_nfl(), assuming don’t put test_week debug function, list class \"nflseedR_simulation\" holds four data frames simulation results well list parameters used simulation. contents : sim - ID number simulation. rows value sim teams games refer simulated season. team - abbreviation representing team conf - conference team (AFC) division - division team (NFC West) games - many regular season games team played wins - number games team won, counting ties 0.5 wins true_wins - number games team won, ignoring ties. win_pct - win rate team. Equal wins / games. div_pct - win rate teams games played teams division. conf_pct - win rate teams games played teams conference. sov - Strength Victory. combined win rate teams team beaten. sos - Strength Schedule. combined win rate teams team played. div_rank - place team finished division. seed - playoff seed number team earned. NA team make playoffs. exit - week team’s last game. Super Bowl winner’s value one higher week Super Bowl. draft_order - pick team earned following NFL Draft. Note value trades, forfeits, modifications draft picks. sim - ID number simulation. rows value sim teams games refer simulated season. REG - regular season game POST - playoff rounds earlier wildcard game (used simulating lots playoff teams) WC - wildcard playoff game DIV - divisional playoff game CON - conference championship game SB - Super Bowl week - numerical week game takes place . Continues incrementing regular season playoff round. away_team - abbreviation away team game home_team - abbreviation home team game away_rest - number days since away team’s last game. 7 team’s first game season. home_rest - number days since home team’s last game. 7 team’s first game season. location - Either Home played home team’s stadium, Neutral game played elsewhere result - amount points home team won (lost negative). 0 tied games. NA games aren’t yet complete simulated, ever returned used test_week. conf - conference team (AFC) division - division team (NFC West) team - abbreviation representing team wins - mean (average) number games won across simulations, counting ties 0.5 wins playoff - rate team made playoffs across simulations div1 - rate team won division across simulations seed1 - rate team first playoff seed across simulations won_conf - rate team won conference across simulations won_sb - rate team won Super Bowl across simulations draft1 - rate team received first pick next draft across simulations draft5 - rate team received top five pick next draft across simulations team - abbreviation representing team wins - number wins (either integer halfway two integers) over_prob - rate team wins number aggregated across simulations. Ties ignored. under_prob - rate team fewer wins number aggregated across simulations. Ties ignored. Note wins integer, 1-over_prob-under_prob represents rate team finished exactly many wins. REG - regular season game POST - playoff rounds earlier wildcard game (used simulating lots playoff teams) WC - wildcard playoff game DIV - divisional playoff game CON - conference championship game SB - Super Bowl week - numerical week game takes place . Continues incrementing regular season playoff round. away_team - abbreviation away team game home_team - abbreviation home team game away_wins - number times away team won game home_wins - number times home team won game ties - number times game ended tie result - amount points home team won (lost negative) average across simulations games_played - number times game played. game_type == \"REG\" equal number simulations. number playoff matchups differ. away_percentage - rate away team won game counting ties half win home_percentage - rate home team won game counting ties half win nfl_season playoff_seeds if_ended_today fresh_season fresh_playoffs tiebreaker_depth test_week simulations sims_per_round .debug print_summary","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"break-a-tie-within-a-division","dir":"Articles","previous_headings":"","what":"Break a Tie Within a Division","title":"NFL Tiebreaking Procedures","text":"used calculate variable div_rank , end regular season, two clubs division finish identical won-lost-tied percentages, following steps taken champion determined.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"two-clubs","dir":"Articles","previous_headings":"Break a Tie Within a Division","what":"Two Clubs","title":"NFL Tiebreaking Procedures","text":"Head--head (best won-lost-tied percentage games clubs). Best won-lost-tied percentage games played within division. Best won-lost-tied percentage common games. Best won-lost-tied percentage games played within conference. Strength victory games. Strength schedule games Best combined ranking (see Tie-Breaking Procedures) among conference teams points scored points allowed games. Best combined ranking (see Tie-Breaking Procedures) among teams points scored points allowed games. Best net points common games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"three-or-more-clubs","dir":"Articles","previous_headings":"Break a Tie Within a Division","what":"Three or More Clubs","title":"NFL Tiebreaking Procedures","text":"two clubs remain tied one clubs eliminated step, tiebreaker restarts Step 1 two-club format. three clubs remain tied fourth club eliminated step, tiebreaker restarts Step 1 three-club format. Head--head (best won-lost-tied percentage games among clubs). Best won-lost-tied percentage games played within division. Best won-lost-tied percentage common games. Best won-lost-tied percentage games played within conference. Strength victory games. Strength schedule games. Best combined ranking (see Tie-Breaking Procedures) among conference teams points scored points allowed games. Best combined ranking (see Tie-Breaking Procedures) among teams points scored points allowed games. Best net points common games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"break-a-tie-for-conference-seeds","dir":"Articles","previous_headings":"","what":"Break a Tie for Conference Seeds","title":"NFL Tiebreaking Procedures","text":"used calculate variable conf_rank seven postseason participants conference seeded follows division champion best record. division champion second-best record. division champion third-best record. division champion fourth-best record. wild card club best record. wild card club second-best record. wild card club third-best record. following procedures used break standings ties postseason playoffs determine regular-season schedules. NOTE: Tie games count one-half win one-half loss clubs. necessary break ties determine three Wild Card clubs conference, following steps taken. tied clubs division, apply division tiebreaker. tied clubs different divisions, apply following steps.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"two-clubs-1","dir":"Articles","previous_headings":"Break a Tie for Conference Seeds","what":"Two Clubs","title":"NFL Tiebreaking Procedures","text":"Head--head, applicable. Best won-lost-tied percentage games played within conference. Best won-lost-tied percentage common games, minimum four. Strength victory games. Strength schedule games. Best combined ranking (see Tie-Breaking Procedures) among conference teams points scored points allowed games. Best combined ranking (see Tie-Breaking Procedures) among teams points scored points allowed games. Best net points conference games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"three-or-more-clubs-1","dir":"Articles","previous_headings":"Break a Tie for Conference Seeds","what":"Three or More Clubs","title":"NFL Tiebreaking Procedures","text":"two clubs remain tied one clubs eliminated step, tiebreaker restarts Step 1 two-club format. three clubs remain tied fourth club eliminated step, tiebreaker restarts Step 2 three-club format. first Wild Card team identified, procedure repeated name second third Wild Card (.e., eliminate highest-ranked club division prior proceeding Step 2). situations three teams division involved procedure, original seeding teams remains subsequent applications tiebreaker top-ranked team division qualifies Wild Card berth. Apply division tiebreaker eliminate highest ranked club division prior proceeding step 2. original seeding within division upon application division tiebreaker remains subsequent applications procedure necessary identify two[sic!] three Wild-Card participants. Head--head sweep. (Applicable one club defeated others one club lost others.) Best won-lost-tied percentage games played within conference. Best won-lost-tied percentage common games, minimum four. Strength victory games. Strength schedule games. Best combined ranking (see Tie-Breaking Procedures) among conference teams points scored points allowed games. Best combined ranking (see Tie-Breaking Procedures) among teams points scored points allowed games. Best net points conference games. Best net points games. Best net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"other-tie-breaking-procedures","dir":"Articles","previous_headings":"","what":"Other Tie-Breaking Procedures","title":"NFL Tiebreaking Procedures","text":"one club advances playoffs tie-breaking step. Remaining tied clubs revert first step applicable division Wild Card tie-breakers. example, two clubs remain tied tie-breaker step clubs eliminated, procedure reverts Step 1 two-club format determine winner. one club wins tiebreaker, clubs revert Step 1 applicable two-club three-club format. comparing records common opponents among tied teams, best won-lost-tied percentage deciding factor, since teams may played unequal number games. determine home field priority among division winners, apply Wild Card tiebreakers. determine home field priority Wild Card qualifiers, apply division tiebreakers (teams division) Wild Card tiebreakers (teams different divisions). determine best combined ranking among conference team’s points scored points allowed, add team’s position two categories, lowest score wins. example, Team first points scored second points allowed, combined ranking “3.” Team B third points scored first points allowed, combined ranking “4.” Team wins tiebreaker. two teams tied position, teams awarded ranking held solely. example, Team Team B tied first points scored, team assigned ranking “1” category, Team C third, ranking still “3.”","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"break-a-tie-for-the-draft-selection-meeting","dir":"Articles","previous_headings":"","what":"Break a Tie for the Draft (“Selection Meeting”)","title":"NFL Tiebreaking Procedures","text":"used calculate variable draft_rank order selection determined reverse order finish previous season. Barring trades clubs, round starts team finished worst record ends Super Bowl champions. Picks assigned win percentage ascending order follows: Clubs participating playoffs shall select first 18th positions. losers Wild Card games shall select 19th 24th positions. losers Divisional playoff games shall select 25th 28th positions. losers Conference Championship games shall select 29th 30th. winner Super Bowl game shall select last Super Bowl loser select next--last. situations teams finished previous season identical win percentage, determination draft position decided strength schedule — aggregate winning percentage team’s opponents. team played schedule lowest winning percentage awarded earlier pick. teams strength schedule, division conference tiebreakers applied first.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"divisional-draft-pick-tie","dir":"Articles","previous_headings":"Break a Tie for the Draft (“Selection Meeting”)","what":"Divisional Draft Pick Tie","title":"NFL Tiebreaking Procedures","text":"teams tied pick division, division rank used. lower division rank gets earlier pick.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"conference-draft-pick-tie","dir":"Articles","previous_headings":"Break a Tie for the Draft (“Selection Meeting”)","what":"Conference Draft Pick Tie","title":"NFL Tiebreaking Procedures","text":"teams tied pick conference, conference rank used. lower conference rank gets earlier pick.","code":""},{"path":"https://nflseedr.com/articles/tiebreaker.html","id":"inter-conference-draft-pick-tie","dir":"Articles","previous_headings":"Break a Tie for the Draft (“Selection Meeting”)","what":"Inter-Conference Draft Pick Tie","title":"NFL Tiebreaking Procedures","text":"divisional conference tiebreakers applicable, ties still exist teams different conferences, ties broken following procedure: Ties involving THREE clubs different conferences broken applying divisional tiebreakers determine lowest-ranked team division, conference tiebreakers determine lowest-ranked team within conference. process, can 2 inter-conference teams participating following steps (draft pick assignment reversed division conference ties. Worse teams get earlier picks): Head--head, applicable. loser gets earlier pick. Worst won-lost-tied percentage common games (minimum four). Worst Strength victory games. Worst combined ranking among teams points scored points allowed games. Worst net points games. Worst net touchdowns games. Coin toss.","code":""},{"path":"https://nflseedr.com/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Lee Sharpe. Author. Sebastian Carl. Maintainer, author, copyright holder.","code":""},{"path":"https://nflseedr.com/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Sharpe L, Carl S (2024). nflseedR: Functions Efficiently Simulate Evaluate NFL Seasons. R package version 1.2.0.9901, https://github.com/nflverse/nflseedR, https://nflseedr.com.","code":"@Manual{, title = {nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons}, author = {Lee Sharpe and Sebastian Carl}, year = {2024}, note = {R package version 1.2.0.9901, https://github.com/nflverse/nflseedR}, url = {https://nflseedr.com}, }"},{"path":[]},{"path":"https://nflseedr.com/index.html","id":"motivation","dir":"","previous_headings":"","what":"Motivation","title":"Functions to Efficiently Simulate and Evaluate NFL Seasons","text":"goal nflseedR allow NFL modelers simulate NFL seasons using models, taking plate work tracking schedule, navigating complex rules division ranking, playoff seeding, draft order. can also aid sports betting, betting futures win totals. package can run thousands Monte Carlo style simulations NFL regular season, based model input. Within simulated season, calculate division standings playoff seedings . also generate playoff games simulate well, calculate order next year’s NFL draft. can used examine probability team making playoffs winning Super Bowl, based model. season simulations take completed games account already, simulate forward, including run playoffs. can also run fresh season, wiping away results simulating scratch. season simulation code nflseedR developed Lee Sharpe (@LeeSharpeNFL) building package developed Sebastian Carl (@mrcaseb). New high efficient standings code developed Sebastian Carl (@mrcaseb)","code":""},{"path":"https://nflseedr.com/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Functions to Efficiently Simulate and Evaluate NFL Seasons","text":"easiest way get nflseedR install CRAN : get bug fix use feature development version, can install development version nflseedR either GitHub prebuilt development repo :","code":"install.packages(\"nflseedR\") if (!require(\"pak\")) install.packages(\"pak\") pak::pak(\"nflverse/nflseedR\") install.packages(\"nflseedR\", repos = c(\"https://nflverse.r-universe.dev\", getOption(\"repos\")))"},{"path":"https://nflseedr.com/index.html","id":"get-started","dir":"","previous_headings":"","what":"Get Started","title":"Functions to Efficiently Simulate and Evaluate NFL Seasons","text":"nflseedR ’s possible simulate complete seasons use ’s seeding functions custom simulations.","code":""},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"Compute NFL Playoff Seedings using Game Results Divisional Rankings","code":""},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"","code":"compute_conference_seeds( teams, h2h = NULL, tiebreaker_depth = 3, .debug = FALSE, playoff_seeds = 7 )"},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"teams division standings data frame computed compute_division_ranks h2h data frame used head--head tiebreakers across tie-breaking functions. computed function compute_division_ranks. tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing. playoff_seeds Number playoff teams per conference (increased 2020 6 7).","code":""},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"data frame division standings including playoff seeds week season ended respective team (exit). list two data frames: standings Division standings including playoff seeds. h2h data frame used head--head tiebreakers across tie-breaking functions.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/compute_conference_seeds.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Playoff Seedings using Game Results and Divisional Rankings — compute_conference_seeds","text":"","code":"# \\donttest{ # Change some options for better output old <- options(list(digits = 3, tibble.print_min = 64)) library(dplyr, warn.conflicts = FALSE) try({#to avoid CRAN test problems nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% 2019:2020) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) %>% nflseedR::compute_division_ranks() %>% nflseedR::compute_conference_seeds(h2h = .$h2h) %>% purrr::pluck(\"standings\") }) #> ℹ 14:58:06 | Calculating team data #> ℹ 14:58:06 | Calculating head to head #> ℹ 14:58:06 | Calculating division rank #1 #> ℹ 14:58:07 | Calculating division rank #2 #> ℹ 14:58:07 | Calculating division rank #3 #> ℹ 14:58:07 | Calculating division rank #4 #> ℹ 14:58:07 | Calculating seed #1 #> ℹ 14:58:07 | Calculating seed #2 #> ℹ 14:58:07 | Calculating seed #3 #> ℹ 14:58:07 | Calculating seed #4 #> ℹ 14:58:07 | Calculating seed #5 #> ℹ 14:58:07 | Calculating seed #6 #> ℹ 14:58:07 | Calculating seed #7 #> # A tibble: 64 × 17 #> sim conf division team games wins true_wins losses ties win_pct div_pct #> #> 1 2019 AFC AFC East BUF 16 10 10 6 0 0.625 0.5 #> 2 2019 AFC AFC East MIA 16 5 5 11 0 0.312 0.333 #> 3 2019 AFC AFC East NE 16 12 12 4 0 0.75 0.833 #> 4 2019 AFC AFC East NYJ 16 7 7 9 0 0.438 0.333 #> 5 2019 AFC AFC Nor… BAL 16 14 14 2 0 0.875 0.833 #> 6 2019 AFC AFC Nor… CIN 16 2 2 14 0 0.125 0.167 #> 7 2019 AFC AFC Nor… CLE 16 6 6 10 0 0.375 0.5 #> 8 2019 AFC AFC Nor… PIT 16 8 8 8 0 0.5 0.5 #> 9 2019 AFC AFC Sou… HOU 16 10 10 6 0 0.625 0.667 #> 10 2019 AFC AFC Sou… IND 16 7 7 9 0 0.438 0.5 #> 11 2019 AFC AFC Sou… JAX 16 6 6 10 0 0.375 0.333 #> 12 2019 AFC AFC Sou… TEN 16 9 9 7 0 0.562 0.5 #> 13 2019 AFC AFC West DEN 16 7 7 9 0 0.438 0.5 #> 14 2019 AFC AFC West KC 16 12 12 4 0 0.75 1 #> 15 2019 AFC AFC West LAC 16 5 5 11 0 0.312 0 #> 16 2019 AFC AFC West OAK 16 7 7 9 0 0.438 0.5 #> 17 2019 NFC NFC East DAL 16 8 8 8 0 0.5 0.833 #> 18 2019 NFC NFC East NYG 16 4 4 12 0 0.25 0.333 #> 19 2019 NFC NFC East PHI 16 9 9 7 0 0.562 0.833 #> 20 2019 NFC NFC East WAS 16 3 3 13 0 0.188 0 #> 21 2019 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.667 #> 22 2019 NFC NFC Nor… DET 16 3.5 3 12 1 0.219 0 #> 23 2019 NFC NFC Nor… GB 16 13 13 3 0 0.812 1 #> 24 2019 NFC NFC Nor… MIN 16 10 10 6 0 0.625 0.333 #> 25 2019 NFC NFC Sou… ATL 16 7 7 9 0 0.438 0.667 #> 26 2019 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 27 2019 NFC NFC Sou… NO 16 13 13 3 0 0.812 0.833 #> 28 2019 NFC NFC Sou… TB 16 7 7 9 0 0.438 0.333 #> 29 2019 NFC NFC West ARI 16 5.5 5 10 1 0.344 0.167 #> 30 2019 NFC NFC West LA 16 9 9 7 0 0.562 0.5 #> 31 2019 NFC NFC West SEA 16 11 11 5 0 0.688 0.5 #> 32 2019 NFC NFC West SF 16 13 13 3 0 0.812 0.833 #> 33 2020 AFC AFC East BUF 16 13 13 3 0 0.812 1 #> 34 2020 AFC AFC East MIA 16 10 10 6 0 0.625 0.5 #> 35 2020 AFC AFC East NE 16 7 7 9 0 0.438 0.5 #> 36 2020 AFC AFC East NYJ 16 2 2 14 0 0.125 0 #> 37 2020 AFC AFC Nor… BAL 16 11 11 5 0 0.688 0.667 #> 38 2020 AFC AFC Nor… CIN 16 4.5 4 11 1 0.281 0.167 #> 39 2020 AFC AFC Nor… CLE 16 11 11 5 0 0.688 0.5 #> 40 2020 AFC AFC Nor… PIT 16 12 12 4 0 0.75 0.667 #> 41 2020 AFC AFC Sou… HOU 16 4 4 12 0 0.25 0.333 #> 42 2020 AFC AFC Sou… IND 16 11 11 5 0 0.688 0.667 #> 43 2020 AFC AFC Sou… JAX 16 1 1 15 0 0.0625 0.167 #> 44 2020 AFC AFC Sou… TEN 16 11 11 5 0 0.688 0.833 #> 45 2020 AFC AFC West DEN 16 5 5 11 0 0.312 0.167 #> 46 2020 AFC AFC West KC 16 14 14 2 0 0.875 0.667 #> 47 2020 AFC AFC West LAC 16 7 7 9 0 0.438 0.5 #> 48 2020 AFC AFC West LV 16 8 8 8 0 0.5 0.667 #> 49 2020 NFC NFC East DAL 16 6 6 10 0 0.375 0.333 #> 50 2020 NFC NFC East NYG 16 6 6 10 0 0.375 0.667 #> 51 2020 NFC NFC East PHI 16 4.5 4 11 1 0.281 0.333 #> 52 2020 NFC NFC East WAS 16 7 7 9 0 0.438 0.667 #> 53 2020 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.333 #> 54 2020 NFC NFC Nor… DET 16 5 5 11 0 0.312 0.167 #> 55 2020 NFC NFC Nor… GB 16 13 13 3 0 0.812 0.833 #> 56 2020 NFC NFC Nor… MIN 16 7 7 9 0 0.438 0.667 #> 57 2020 NFC NFC Sou… ATL 16 4 4 12 0 0.25 0.167 #> 58 2020 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 59 2020 NFC NFC Sou… NO 16 12 12 4 0 0.75 1 #> 60 2020 NFC NFC Sou… TB 16 11 11 5 0 0.688 0.667 #> 61 2020 NFC NFC West ARI 16 8 8 8 0 0.5 0.333 #> 62 2020 NFC NFC West LA 16 10 10 6 0 0.625 0.5 #> 63 2020 NFC NFC West SEA 16 12 12 4 0 0.75 0.667 #> 64 2020 NFC NFC West SF 16 6 6 10 0 0.375 0.5 #> # ℹ 6 more variables: conf_pct , sov , sos , div_rank , #> # seed , exit # Restore old options options(old) # }"},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Division Rankings using Game Results — compute_division_ranks","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"Compute NFL Division Rankings using Game Results","code":""},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"","code":"compute_division_ranks( games, teams = NULL, tiebreaker_depth = 3, .debug = FALSE, h2h = NULL )"},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"games data frame containing real simulated game scores. following variables required: sim simulation ID. Normally 1 - n simulated seasons. game_type One 'REG', 'WC', 'DIV', 'CON', 'SB' indicating game regular season game one playoff rounds. week week corresponding NFL season. away_team Team abbreviation away team (please see divisions valid team abbreviations). home_team Team abbreviation home team (please see divisions valid team abbreviations). result Equals home score - away score. teams parameter optional. NULL function compute internally, otherwise data frame teams contained games data frame repeated simulation ID (sim). following variables required: sim simulation ID. Normally 1 - n simulated seasons. team Team abbreviation team (please see divisions valid team abbreviations). conf Conference abbreviation team (please see divisions valid team abbreviations). division Division team (please see divisions valid division names). tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing. h2h data frame used head--head tiebreakers across tie-breaking functions. computed function compute_division_ranks.","code":""},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"list two data frames: standings Division standings. h2h data frame used head--head tiebreakers across tie-breaking functions.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/compute_division_ranks.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Division Rankings using Game Results — compute_division_ranks","text":"","code":"# \\donttest{ # Change some options for better output old <- options(list(digits = 3, tibble.print_min = 64)) library(dplyr, warn.conflicts = FALSE) try({#to avoid CRAN test problems nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% 2019:2020) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) %>% nflseedR::compute_division_ranks() %>% purrr::pluck(\"standings\") }) #> ℹ 14:58:09 | Calculating team data #> ℹ 14:58:09 | Calculating head to head #> ℹ 14:58:09 | Calculating division rank #1 #> ℹ 14:58:09 | Calculating division rank #2 #> ℹ 14:58:09 | Calculating division rank #3 #> ℹ 14:58:09 | Calculating division rank #4 #> # A tibble: 64 × 16 #> sim conf division team games wins true_wins losses ties win_pct div_pct #> #> 1 2019 AFC AFC East BUF 16 10 10 6 0 0.625 0.5 #> 2 2019 AFC AFC East MIA 16 5 5 11 0 0.312 0.333 #> 3 2019 AFC AFC East NE 16 12 12 4 0 0.75 0.833 #> 4 2019 AFC AFC East NYJ 16 7 7 9 0 0.438 0.333 #> 5 2019 AFC AFC Nor… BAL 16 14 14 2 0 0.875 0.833 #> 6 2019 AFC AFC Nor… CIN 16 2 2 14 0 0.125 0.167 #> 7 2019 AFC AFC Nor… CLE 16 6 6 10 0 0.375 0.5 #> 8 2019 AFC AFC Nor… PIT 16 8 8 8 0 0.5 0.5 #> 9 2019 AFC AFC Sou… HOU 16 10 10 6 0 0.625 0.667 #> 10 2019 AFC AFC Sou… IND 16 7 7 9 0 0.438 0.5 #> 11 2019 AFC AFC Sou… JAX 16 6 6 10 0 0.375 0.333 #> 12 2019 AFC AFC Sou… TEN 16 9 9 7 0 0.562 0.5 #> 13 2019 AFC AFC West DEN 16 7 7 9 0 0.438 0.5 #> 14 2019 AFC AFC West KC 16 12 12 4 0 0.75 1 #> 15 2019 AFC AFC West LAC 16 5 5 11 0 0.312 0 #> 16 2019 AFC AFC West OAK 16 7 7 9 0 0.438 0.5 #> 17 2019 NFC NFC East DAL 16 8 8 8 0 0.5 0.833 #> 18 2019 NFC NFC East NYG 16 4 4 12 0 0.25 0.333 #> 19 2019 NFC NFC East PHI 16 9 9 7 0 0.562 0.833 #> 20 2019 NFC NFC East WAS 16 3 3 13 0 0.188 0 #> 21 2019 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.667 #> 22 2019 NFC NFC Nor… DET 16 3.5 3 12 1 0.219 0 #> 23 2019 NFC NFC Nor… GB 16 13 13 3 0 0.812 1 #> 24 2019 NFC NFC Nor… MIN 16 10 10 6 0 0.625 0.333 #> 25 2019 NFC NFC Sou… ATL 16 7 7 9 0 0.438 0.667 #> 26 2019 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 27 2019 NFC NFC Sou… NO 16 13 13 3 0 0.812 0.833 #> 28 2019 NFC NFC Sou… TB 16 7 7 9 0 0.438 0.333 #> 29 2019 NFC NFC West ARI 16 5.5 5 10 1 0.344 0.167 #> 30 2019 NFC NFC West LA 16 9 9 7 0 0.562 0.5 #> 31 2019 NFC NFC West SEA 16 11 11 5 0 0.688 0.5 #> 32 2019 NFC NFC West SF 16 13 13 3 0 0.812 0.833 #> 33 2020 AFC AFC East BUF 16 13 13 3 0 0.812 1 #> 34 2020 AFC AFC East MIA 16 10 10 6 0 0.625 0.5 #> 35 2020 AFC AFC East NE 16 7 7 9 0 0.438 0.5 #> 36 2020 AFC AFC East NYJ 16 2 2 14 0 0.125 0 #> 37 2020 AFC AFC Nor… BAL 16 11 11 5 0 0.688 0.667 #> 38 2020 AFC AFC Nor… CIN 16 4.5 4 11 1 0.281 0.167 #> 39 2020 AFC AFC Nor… CLE 16 11 11 5 0 0.688 0.5 #> 40 2020 AFC AFC Nor… PIT 16 12 12 4 0 0.75 0.667 #> 41 2020 AFC AFC Sou… HOU 16 4 4 12 0 0.25 0.333 #> 42 2020 AFC AFC Sou… IND 16 11 11 5 0 0.688 0.667 #> 43 2020 AFC AFC Sou… JAX 16 1 1 15 0 0.0625 0.167 #> 44 2020 AFC AFC Sou… TEN 16 11 11 5 0 0.688 0.833 #> 45 2020 AFC AFC West DEN 16 5 5 11 0 0.312 0.167 #> 46 2020 AFC AFC West KC 16 14 14 2 0 0.875 0.667 #> 47 2020 AFC AFC West LAC 16 7 7 9 0 0.438 0.5 #> 48 2020 AFC AFC West LV 16 8 8 8 0 0.5 0.667 #> 49 2020 NFC NFC East DAL 16 6 6 10 0 0.375 0.333 #> 50 2020 NFC NFC East NYG 16 6 6 10 0 0.375 0.667 #> 51 2020 NFC NFC East PHI 16 4.5 4 11 1 0.281 0.333 #> 52 2020 NFC NFC East WAS 16 7 7 9 0 0.438 0.667 #> 53 2020 NFC NFC Nor… CHI 16 8 8 8 0 0.5 0.333 #> 54 2020 NFC NFC Nor… DET 16 5 5 11 0 0.312 0.167 #> 55 2020 NFC NFC Nor… GB 16 13 13 3 0 0.812 0.833 #> 56 2020 NFC NFC Nor… MIN 16 7 7 9 0 0.438 0.667 #> 57 2020 NFC NFC Sou… ATL 16 4 4 12 0 0.25 0.167 #> 58 2020 NFC NFC Sou… CAR 16 5 5 11 0 0.312 0.167 #> 59 2020 NFC NFC Sou… NO 16 12 12 4 0 0.75 1 #> 60 2020 NFC NFC Sou… TB 16 11 11 5 0 0.688 0.667 #> 61 2020 NFC NFC West ARI 16 8 8 8 0 0.5 0.333 #> 62 2020 NFC NFC West LA 16 10 10 6 0 0.625 0.5 #> 63 2020 NFC NFC West SEA 16 12 12 4 0 0.75 0.667 #> 64 2020 NFC NFC West SF 16 6 6 10 0 0.375 0.5 #> # ℹ 5 more variables: conf_pct , sov , sos , div_rank , #> # max_reg_week # Restore old options options(old) # }"},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"Compute NFL Draft Order using Game Results Divisional Rankings","code":""},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"","code":"compute_draft_order( teams, games, h2h = NULL, tiebreaker_depth = 3, .debug = FALSE )"},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"teams division standings data frame including playoff seeds computed compute_conference_seeds games data frame containing real simulated game scores. following variables required: sim simulation ID. Normally 1 - n simulated seasons. game_type One 'REG', 'WC', 'DIV', 'CON', 'SB' indicating game regular season game one playoff rounds. week week corresponding NFL season. away_team Team abbreviation away team (please see divisions valid team abbreviations). home_team Team abbreviation home team (please see divisions valid team abbreviations). result Equals home score - away score. h2h data frame used head--head tiebreakers across tie-breaking functions. computed function compute_division_ranks. tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing.","code":""},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"data frame standings including final draft pick number variable exit indicates week number teams final game (Super Bowl Winner one week higher).","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/compute_draft_order.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Draft Order using Game Results and Divisional Rankings — compute_draft_order","text":"","code":"# \\donttest{ # Change some options for better output old <- options(list(digits = 3, tibble.print_min = 64)) library(dplyr, warn.conflicts = FALSE) try({#to avoid CRAN test problems games <- nflseedR::load_sharpe_games() %>% dplyr::filter(season %in% 2018:2019) %>% dplyr::select(sim = season, game_type, week, away_team, home_team, result) games %>% nflseedR::compute_division_ranks() %>% nflseedR::compute_conference_seeds(h2h = .$h2h, playoff_seeds = 6) %>% nflseedR::compute_draft_order(games = games, h2h = .$h2h) }) #> ℹ 14:58:09 | Calculating team data #> ℹ 14:58:09 | Calculating head to head #> ℹ 14:58:09 | Calculating division rank #1 #> ℹ 14:58:09 | Calculating division rank #2 #> ℹ 14:58:09 | Calculating division rank #3 #> ℹ 14:58:10 | Calculating division rank #4 #> ℹ 14:58:10 | Calculating seed #1 #> ℹ 14:58:10 | Calculating seed #2 #> ℹ 14:58:10 | Calculating seed #3 #> ℹ 14:58:10 | Calculating seed #4 #> ℹ 14:58:10 | Calculating seed #5 #> ℹ 14:58:10 | Calculating seed #6 #> ℹ 14:58:10 | Calculating draft order #32 #> ℹ 14:58:10 | Calculating draft order #31 #> ℹ 14:58:10 | Calculating draft order #30 #> ℹ 14:58:10 | Calculating draft order #29 #> ℹ 14:58:10 | Calculating draft order #28 #> ℹ 14:58:10 | Calculating draft order #27 #> ℹ 14:58:10 | Calculating draft order #26 #> ℹ 14:58:10 | Calculating draft order #25 #> ℹ 14:58:10 | Calculating draft order #24 #> ℹ 14:58:10 | Calculating draft order #23 #> ℹ 14:58:10 | Calculating draft order #22 #> ℹ 14:58:10 | Calculating draft order #21 #> ℹ 14:58:10 | Calculating draft order #20 #> ℹ 14:58:10 | Calculating draft order #19 #> ℹ 14:58:10 | Calculating draft order #18 #> ℹ 14:58:10 | Calculating draft order #17 #> ℹ 14:58:10 | Calculating draft order #16 #> ℹ 14:58:10 | Calculating draft order #15 #> ℹ 14:58:10 | Calculating draft order #14 #> ℹ 14:58:10 | Calculating draft order #13 #> ℹ 14:58:10 | Calculating draft order #12 #> ℹ 14:58:10 | Calculating draft order #11 #> ℹ 14:58:10 | Calculating draft order #10 #> ℹ 14:58:11 | Calculating draft order #9 #> ℹ 14:58:11 | Calculating draft order #8 #> ℹ 14:58:11 | Calculating draft order #7 #> ℹ 14:58:11 | Calculating draft order #6 #> ℹ 14:58:11 | Calculating draft order #5 #> ℹ 14:58:11 | Calculating draft order #4 #> ℹ 14:58:11 | Calculating draft order #3 #> ℹ 14:58:11 | Calculating draft order #2 #> ℹ 14:58:11 | Calculating draft order #1 #> # A tibble: 64 × 18 #> sim team conf division games wins true_wins losses ties win_pct div_pct #> #> 1 2018 BUF AFC AFC East 16 6 6 10 0 0.375 0.333 #> 2 2018 MIA AFC AFC East 16 7 7 9 0 0.438 0.667 #> 3 2018 NE AFC AFC East 16 11 11 5 0 0.688 0.833 #> 4 2018 NYJ AFC AFC East 16 4 4 12 0 0.25 0.167 #> 5 2018 BAL AFC AFC Nor… 16 10 10 6 0 0.625 0.5 #> 6 2018 CIN AFC AFC Nor… 16 6 6 10 0 0.375 0.167 #> 7 2018 CLE AFC AFC Nor… 16 7.5 7 8 1 0.469 0.583 #> 8 2018 PIT AFC AFC Nor… 16 9.5 9 6 1 0.594 0.75 #> 9 2018 HOU AFC AFC Sou… 16 11 11 5 0 0.688 0.667 #> 10 2018 IND AFC AFC Sou… 16 10 10 6 0 0.625 0.667 #> 11 2018 JAX AFC AFC Sou… 16 5 5 11 0 0.312 0.167 #> 12 2018 TEN AFC AFC Sou… 16 9 9 7 0 0.562 0.5 #> 13 2018 DEN AFC AFC West 16 6 6 10 0 0.375 0.333 #> 14 2018 KC AFC AFC West 16 12 12 4 0 0.75 0.833 #> 15 2018 LAC AFC AFC West 16 12 12 4 0 0.75 0.667 #> 16 2018 OAK AFC AFC West 16 4 4 12 0 0.25 0.167 #> 17 2018 DAL NFC NFC East 16 10 10 6 0 0.625 0.833 #> 18 2018 NYG NFC NFC East 16 5 5 11 0 0.312 0.167 #> 19 2018 PHI NFC NFC East 16 9 9 7 0 0.562 0.667 #> 20 2018 WAS NFC NFC East 16 7 7 9 0 0.438 0.333 #> 21 2018 CHI NFC NFC Nor… 16 12 12 4 0 0.75 0.833 #> 22 2018 DET NFC NFC Nor… 16 6 6 10 0 0.375 0.333 #> 23 2018 GB NFC NFC Nor… 16 6.5 6 9 1 0.406 0.25 #> 24 2018 MIN NFC NFC Nor… 16 8.5 8 7 1 0.531 0.583 #> 25 2018 ATL NFC NFC Sou… 16 7 7 9 0 0.438 0.667 #> 26 2018 CAR NFC NFC Sou… 16 7 7 9 0 0.438 0.333 #> 27 2018 NO NFC NFC Sou… 16 13 13 3 0 0.812 0.667 #> 28 2018 TB NFC NFC Sou… 16 5 5 11 0 0.312 0.333 #> 29 2018 ARI NFC NFC West 16 3 3 13 0 0.188 0.333 #> 30 2018 LA NFC NFC West 16 13 13 3 0 0.812 1 #> 31 2018 SEA NFC NFC West 16 10 10 6 0 0.625 0.5 #> 32 2018 SF NFC NFC West 16 4 4 12 0 0.25 0.167 #> 33 2019 BUF AFC AFC East 16 10 10 6 0 0.625 0.5 #> 34 2019 MIA AFC AFC East 16 5 5 11 0 0.312 0.333 #> 35 2019 NE AFC AFC East 16 12 12 4 0 0.75 0.833 #> 36 2019 NYJ AFC AFC East 16 7 7 9 0 0.438 0.333 #> 37 2019 BAL AFC AFC Nor… 16 14 14 2 0 0.875 0.833 #> 38 2019 CIN AFC AFC Nor… 16 2 2 14 0 0.125 0.167 #> 39 2019 CLE AFC AFC Nor… 16 6 6 10 0 0.375 0.5 #> 40 2019 PIT AFC AFC Nor… 16 8 8 8 0 0.5 0.5 #> 41 2019 HOU AFC AFC Sou… 16 10 10 6 0 0.625 0.667 #> 42 2019 IND AFC AFC Sou… 16 7 7 9 0 0.438 0.5 #> 43 2019 JAX AFC AFC Sou… 16 6 6 10 0 0.375 0.333 #> 44 2019 TEN AFC AFC Sou… 16 9 9 7 0 0.562 0.5 #> 45 2019 DEN AFC AFC West 16 7 7 9 0 0.438 0.5 #> 46 2019 KC AFC AFC West 16 12 12 4 0 0.75 1 #> 47 2019 LAC AFC AFC West 16 5 5 11 0 0.312 0 #> 48 2019 OAK AFC AFC West 16 7 7 9 0 0.438 0.5 #> 49 2019 DAL NFC NFC East 16 8 8 8 0 0.5 0.833 #> 50 2019 NYG NFC NFC East 16 4 4 12 0 0.25 0.333 #> 51 2019 PHI NFC NFC East 16 9 9 7 0 0.562 0.833 #> 52 2019 WAS NFC NFC East 16 3 3 13 0 0.188 0 #> 53 2019 CHI NFC NFC Nor… 16 8 8 8 0 0.5 0.667 #> 54 2019 DET NFC NFC Nor… 16 3.5 3 12 1 0.219 0 #> 55 2019 GB NFC NFC Nor… 16 13 13 3 0 0.812 1 #> 56 2019 MIN NFC NFC Nor… 16 10 10 6 0 0.625 0.333 #> 57 2019 ATL NFC NFC Sou… 16 7 7 9 0 0.438 0.667 #> 58 2019 CAR NFC NFC Sou… 16 5 5 11 0 0.312 0.167 #> 59 2019 NO NFC NFC Sou… 16 13 13 3 0 0.812 0.833 #> 60 2019 TB NFC NFC Sou… 16 7 7 9 0 0.438 0.333 #> 61 2019 ARI NFC NFC West 16 5.5 5 10 1 0.344 0.167 #> 62 2019 LA NFC NFC West 16 9 9 7 0 0.562 0.5 #> 63 2019 SEA NFC NFC West 16 11 11 5 0 0.688 0.5 #> 64 2019 SF NFC NFC West 16 13 13 3 0 0.812 0.833 #> # ℹ 7 more variables: conf_pct , sov , sos , div_rank , #> # seed , exit , draft_order # Restore old options options(old) # }"},{"path":"https://nflseedr.com/reference/divisions.html","id":null,"dir":"Reference","previous_headings":"","what":"NFL team names and the conferences and divisions they belong to — divisions","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"NFL team names conferences divisions belong ","code":""},{"path":"https://nflseedr.com/reference/divisions.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"","code":"divisions"},{"path":"https://nflseedr.com/reference/divisions.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"data frame 36 rows 4 variables containing NFL team level information, including franchises multiple cities: team Team abbreviation conf Conference abbreviation division Division name sdiv Division abbreviation data frame created using teams_colors_logos data frame nflfastR package. Please see data-raw/divisions.R code create data.","code":""},{"path":"https://nflseedr.com/reference/divisions.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"NFL team names and the conferences and divisions they belong to — divisions","text":"","code":"# \\donttest{ divisions #> # A tibble: 36 × 4 #> team conf division sdiv #> #> 1 ARI NFC NFC West NFCW #> 2 ATL NFC NFC South NFCS #> 3 BAL AFC AFC North AFCN #> 4 BUF AFC AFC East AFCE #> 5 CAR NFC NFC South NFCS #> 6 CHI NFC NFC North NFCN #> 7 CIN AFC AFC North AFCN #> 8 CLE AFC AFC North AFCN #> 9 DAL NFC NFC East NFCE #> 10 DEN AFC AFC West AFCW #> # ℹ 26 more rows # }"},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":null,"dir":"Reference","previous_headings":"","what":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"function formats numeric vectors values 0 1 percentage strings special specifications. specifications : 0 1 converted \"0%\" \"100%\" respectively (takes machine precision account) values < 0.01 converted \"<1%\" values 0.01 0.995 rounded percentages without decimals values 0.995 0.999 rounded percentages 1 decimal values 0.999 1 converted \">99.9%\" unless closer 1 machine precision.","code":""},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"","code":"fmt_pct_special(x)"},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"x vector numerical values","code":""},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"character vector","code":""},{"path":"https://nflseedr.com/reference/fmt_pct_special.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Format Numerical Values to Special Percentage Strings — fmt_pct_special","text":"","code":"x <- c(0, 0.004, 0.009, 0.011, 0.9, 0.98, 0.994, .995, .9989, .999, .9991, .99999999) fmt <- fmt_pct_special(x) data.frame(x = x, fmt = fmt) #> x fmt #> 1 0.0000 0% #> 2 0.0040 <1% #> 3 0.0090 <1% #> 4 0.0110 1% #> 5 0.9000 90% #> 6 0.9800 98% #> 7 0.9940 99% #> 8 0.9950 99.5% #> 9 0.9989 99.9% #> 10 0.9990 99.9% #> 11 0.9991 >99.9% #> 12 1.0000 100%"},{"path":"https://nflseedr.com/reference/load_schedules.html","id":null,"dir":"Reference","previous_headings":"","what":"Load Lee Sharpe's Games File — load_schedules","title":"Load Lee Sharpe's Games File — load_schedules","text":"Lee Sharpe maintains important data set contains broadly used information games National Football League. function convenient helper download file memory without remember correct url.","code":""},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Load Lee Sharpe's Games File — load_schedules","text":"","code":"load_schedules(...) load_sharpe_games(...)"},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Load Lee Sharpe's Games File — load_schedules","text":"... Arguments passed nflreadr::load_schedules seasons numeric vector seasons return, default TRUE returns available data.","code":""},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Load Lee Sharpe's Games File — load_schedules","text":"data frame containing following variables NFL games since 1999: game_id ID game assigned nflverse. Note value matches game_id field nflfastR wish join data. season year NFL season. represents whole season, regular season games happen January well playoff games occur year number. game_type type game? One following values: REG regular season game WC wildcard playoff game DIV divisional round playoff game CON conference championship SB Super Bowl week week NFL season game occurs . Please note game_type differ weeks >= 18 season expansion 2021. Please use game_type filter regular season postseason. gameday date game occurred. weekday day week game occurred. gametime kickoff time game. represented 24-hour time Eastern time zone, regardless time zone game played . away_team away team. away_score number points away team scored. NA games yet played. home_team home team. Note contains designated home team games team playing home Super Bowls NFL International games. home_score number points home team scored. NA games yet played. location Either Home home team playing home stadium, Neutral game played neutral location. still shows Home games Giants Jets even though share home stadium. result Equals home_score - away_score. number points home team scored minus number points away team scored. NA games yet played. Convenient evaluating spread bets. total sum team's score game. Equals home_score + away_score. NA games yet played. Convenient evaluating /total bets. overtime Whether game went overtime (= 1) (= 0). old_game_id id game issued NFL Game Statistics & Information System. away_rest number days since away team's previous game (7 used team's first game season). home_rest number days since home team's previous game (7 used team's first game season). away_moneyline Odd away_team winning game. home_moneyline Odd home_team winning game. spread_line spread line game. positive number means home team favored many points, negative number means away team favored many points. lines result column. away_spread_odds Odd away_team covering spread_line. home_spread_odds Odd home_team covering spread_line. total_line total line game. under_odds Odd total total_line. over_odds Odd total total_line. div_game Whether game divisional game (= 1) (= 0). roof status stadium's roof? one following values: closed Stadium retractable roof closed dome indoor stadium open Stadium retractable roof open outdoors outdoor stadium surface type ground game played . temp temperature stadium (roof types outdoors open ). wind speed wind miles/hour (roof types outdoors open ). away_qb_id GSIS ID \"starting quarterback\" away team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. home_qb_id GSIS ID \"starting quarterback\" home team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. away_qb_name Full name \"starting quarterback\" away team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. home_qb_name Full name \"starting quarterback\" home team identified first quarterback (per roster data) listed passer (nflfastR play play data) 2+ plays game. final regular season game QB plays passer. away_coach Name head coach away team. home_coach Name head coach home team. referee Name game's referee (head official). stadium_id Pro Football Reference ID stadium. stadium Name stadium.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/load_schedules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Load Lee Sharpe's Games File — load_schedules","text":"","code":"# \\donttest{ try({#to avoid CRAN test problems games <- load_sharpe_games() dplyr::glimpse(games) }) #> Rows: 6,978 #> Columns: 46 #> $ game_id \"1999_01_MIN_ATL\", \"1999_01_KC_CHI\", \"1999_01_PIT_CLE… #> $ season 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,… #> $ game_type \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG\", \"REG… #> $ week 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,… #> $ gameday \"1999-09-12\", \"1999-09-12\", \"1999-09-12\", \"1999-09-12… #> $ weekday \"Sunday\", \"Sunday\", \"Sunday\", \"Sunday\", \"Sunday\", \"Su… #> $ gametime NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ away_team \"MIN\", \"KC\", \"PIT\", \"OAK\", \"BUF\", \"SF\", \"CAR\", \"NE\", … #> $ away_score 17, 17, 43, 24, 14, 3, 10, 30, 25, 28, 10, 17, 35, 41… #> $ home_team \"ATL\", \"CHI\", \"CLE\", \"GB\", \"IND\", \"JAX\", \"NO\", \"NYJ\",… #> $ home_score 14, 20, 0, 28, 31, 41, 19, 28, 24, 20, 27, 13, 36, 35… #> $ location \"Home\", \"Home\", \"Home\", \"Home\", \"Home\", \"Home\", \"Home… #> $ result -3, 3, -43, 4, 17, 38, 9, -2, -1, -8, 17, -4, 1, -6, … #> $ total 31, 37, 43, 52, 45, 44, 29, 58, 49, 48, 37, 30, 71, 7… #> $ overtime 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,… #> $ old_game_id \"1999091210\", \"1999091206\", \"1999091213\", \"1999091208… #> $ gsis 598, 597, 604, 602, 591, 603, 592, 600, 588, 596, 589… #> $ nfl_detail_id NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ pfr \"199909120atl\", \"199909120chi\", \"199909120cle\", \"1999… #> $ pff NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ espn \"190912001\", \"190912003\", \"190912005\", \"190912009\", \"… #> $ ftn NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ away_rest 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,… #> $ home_rest 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,… #> $ away_moneyline NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ home_moneyline NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ spread_line -4.0, -3.0, -6.0, 9.0, -3.0, 5.5, 3.5, 7.0, -3.0, 9.5… #> $ away_spread_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ home_spread_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ total_line 49.0, 38.0, 37.0, 43.0, 45.5, 49.0, 38.0, 44.5, 37.0,… #> $ under_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ over_odds NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N… #> $ div_game 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0,… #> $ roof \"dome\", \"outdoors\", \"outdoors\", \"outdoors\", \"dome\", \"… #> $ surface \"astroturf\", \"grass\", \"grass\", \"grass\", \"astroturf\", … #> $ temp NA, 80, 78, 67, NA, 76, NA, 73, 75, NA, NA, 88, 84, 7… #> $ wind NA, 12, 12, 10, NA, 8, NA, 5, 3, NA, NA, 8, 10, 0, 5,… #> $ away_qb_id \"00-0003761\", \"00-0006300\", \"00-0015700\", \"00-0005741… #> $ home_qb_id \"00-0002876\", \"00-0010560\", \"00-0004230\", \"00-0005106… #> $ away_qb_name \"Randall Cunningham\", \"Elvis Grbac\", \"Kordell Stewart… #> $ home_qb_name \"Chris Chandler\", \"Shane Matthews\", \"Ty Detmer\", \"Bre… #> $ away_coach \"Dennis Green\", \"Gunther Cunningham\", \"Bill Cowher\", … #> $ home_coach \"Dan Reeves\", \"Dick Jauron\", \"Chris Palmer\", \"Ray Rho… #> $ referee \"Gerry Austin\", \"Phil Luckett\", \"Bob McElwee\", \"Tony … #> $ stadium_id \"ATL00\", \"CHI98\", \"CLE00\", \"GNB00\", \"IND99\", \"JAX00\",… #> $ stadium \"Georgia Dome\", \"Soldier Field\", \"Cleveland Browns St… # }"},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute NFL Standings — nfl_standings","title":"Compute NFL Standings — nfl_standings","text":"Compute NFL Standings","code":""},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute NFL Standings — nfl_standings","text":"","code":"nfl_standings( games, ..., ranks = c(\"CONF\", \"DIV\", \"DRAFT\", \"NONE\"), tiebreaker_depth = c(\"SOS\", \"PRE-SOV\", \"RANDOM\"), playoff_seeds = NULL, verbosity = c(\"MIN\", \"MAX\", \"NONE\") )"},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute NFL Standings — nfl_standings","text":"games data frame containing real simulated game scores. following variables required: sim season simulation ID. Normally 1 - n simulated seasons. game_type One 'REG', 'WC', 'DIV', 'CON', 'SB' indicating game regular season game one playoff rounds. week week corresponding NFL season. away_team Team abbreviation away team (please see divisions valid team abbreviations). home_team Team abbreviation home team (please see divisions valid team abbreviations). result Equals home score - away score. ... currently used ranks One \"DIV\", \"CONF\", \"DRAFT\", \"NONE\" specify ranks - thus associated tiebreakers - determined. \"DIV\": Adds division ranking variable div_rank \"CONF\" (default): \"DIV\" + conference variable conf_rank. better performance, possible set playoff_seeds value < 16 make function skip tiebreakers irrelevant conference ranks. \"DRAFT\": \"CONF\" + draft variable draft_rank. actual pick draft based game results. trades course. tiebreaker_depth One \"SOS\", \"PRE-SOV\", \"RANDOM\". Controls tiebreakers applied. implemented tiebreakers documented https://nflseedr.com/articles/tiebreaker.html. values mean: \"SOS\" (default): Apply tiebreakers Strength Schedule. still remaining ties, break coin toss. \"PRE-SOV\": Apply tiebreakers Strength Victory. still remaining ties, break coin toss. Pre SOV? first tiebreaker requires knowledge teams played. \"RANDOM\": Breaks tiebreakers coin toss. really know, allow ... playoff_seeds NULL (default), compute 16 conference ranks. means, function applies conference tiebreakers conference ranks. better performance, possible set value < 16 make function skip tiebreakers conference ranks. verbosity One \"MIN\", \"MAX\", \"NONE\" allowing user set grade verbosity status reports. mean: \"MIN\" (default): Prints main steps process. \"MAX\": Prints steps complete tiebreaking process. \"NONE\": status reports . maximize performance.","code":""},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Compute NFL Standings — nfl_standings","text":"data.table NFL standings including ranks selected argument ranks","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/nfl_standings.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute NFL Standings — nfl_standings","text":"","code":"# \\donttest{ try({#to avoid CRAN test problems games <- nflreadr::load_schedules(2021:2022) standings <- nflseedR::nfl_standings(games) print(standings, digits = 3) }) #> ℹ 14:58:12 | Initiate Standings & Tiebreaking Data #> ℹ 14:58:12 | Compute Division Ranks #> ℹ 14:58:12 | Compute Conference Ranks #> season team conf division games wins true_wins losses ties pf #> #> 1: 2021 BUF AFC AFC East 17 11.0 11 6 0 483 #> 2: 2021 NE AFC AFC East 17 10.0 10 7 0 462 #> 3: 2021 MIA AFC AFC East 17 9.0 9 8 0 341 #> 4: 2021 NYJ AFC AFC East 17 4.0 4 13 0 310 #> 5: 2021 CIN AFC AFC North 17 10.0 10 7 0 460 #> 6: 2021 PIT AFC AFC North 17 9.5 9 7 1 343 #> 7: 2021 CLE AFC AFC North 17 8.0 8 9 0 349 #> 8: 2021 BAL AFC AFC North 17 8.0 8 9 0 387 #> 9: 2021 TEN AFC AFC South 17 12.0 12 5 0 419 #> 10: 2021 IND AFC AFC South 17 9.0 9 8 0 451 #> 11: 2021 HOU AFC AFC South 17 4.0 4 13 0 280 #> 12: 2021 JAX AFC AFC South 17 3.0 3 14 0 253 #> 13: 2021 KC AFC AFC West 17 12.0 12 5 0 480 #> 14: 2021 LV AFC AFC West 17 10.0 10 7 0 374 #> 15: 2021 LAC AFC AFC West 17 9.0 9 8 0 474 #> 16: 2021 DEN AFC AFC West 17 7.0 7 10 0 335 #> 17: 2021 DAL NFC NFC East 17 12.0 12 5 0 530 #> 18: 2021 PHI NFC NFC East 17 9.0 9 8 0 444 #> 19: 2021 WAS NFC NFC East 17 7.0 7 10 0 335 #> 20: 2021 NYG NFC NFC East 17 4.0 4 13 0 258 #> 21: 2021 GB NFC NFC North 17 13.0 13 4 0 450 #> 22: 2021 MIN NFC NFC North 17 8.0 8 9 0 425 #> 23: 2021 CHI NFC NFC North 17 6.0 6 11 0 311 #> 24: 2021 DET NFC NFC North 17 3.5 3 13 1 325 #> 25: 2021 TB NFC NFC South 17 13.0 13 4 0 511 #> 26: 2021 NO NFC NFC South 17 9.0 9 8 0 364 #> 27: 2021 ATL NFC NFC South 17 7.0 7 10 0 313 #> 28: 2021 CAR NFC NFC South 17 5.0 5 12 0 304 #> 29: 2021 LA NFC NFC West 17 12.0 12 5 0 460 #> 30: 2021 ARI NFC NFC West 17 11.0 11 6 0 449 #> 31: 2021 SF NFC NFC West 17 10.0 10 7 0 427 #> 32: 2021 SEA NFC NFC West 17 7.0 7 10 0 395 #> 33: 2022 BUF AFC AFC East 16 13.0 13 3 0 455 #> 34: 2022 MIA AFC AFC East 17 9.0 9 8 0 397 #> 35: 2022 NE AFC AFC East 17 8.0 8 9 0 364 #> 36: 2022 NYJ AFC AFC East 17 7.0 7 10 0 296 #> 37: 2022 CIN AFC AFC North 16 12.0 12 4 0 418 #> 38: 2022 BAL AFC AFC North 17 10.0 10 7 0 350 #> 39: 2022 PIT AFC AFC North 17 9.0 9 8 0 308 #> 40: 2022 CLE AFC AFC North 17 7.0 7 10 0 361 #> 41: 2022 JAX AFC AFC South 17 9.0 9 8 0 404 #> 42: 2022 TEN AFC AFC South 17 7.0 7 10 0 298 #> 43: 2022 IND AFC AFC South 17 4.5 4 12 1 289 #> 44: 2022 HOU AFC AFC South 17 3.5 3 13 1 289 #> 45: 2022 KC AFC AFC West 17 14.0 14 3 0 496 #> 46: 2022 LAC AFC AFC West 17 10.0 10 7 0 391 #> 47: 2022 LV AFC AFC West 17 6.0 6 11 0 395 #> 48: 2022 DEN AFC AFC West 17 5.0 5 12 0 287 #> 49: 2022 PHI NFC NFC East 17 14.0 14 3 0 477 #> 50: 2022 DAL NFC NFC East 17 12.0 12 5 0 467 #> 51: 2022 NYG NFC NFC East 17 9.5 9 7 1 365 #> 52: 2022 WAS NFC NFC East 17 8.5 8 8 1 321 #> 53: 2022 MIN NFC NFC North 17 13.0 13 4 0 424 #> 54: 2022 DET NFC NFC North 17 9.0 9 8 0 453 #> 55: 2022 GB NFC NFC North 17 8.0 8 9 0 370 #> 56: 2022 CHI NFC NFC North 17 3.0 3 14 0 326 #> 57: 2022 TB NFC NFC South 17 8.0 8 9 0 313 #> 58: 2022 CAR NFC NFC South 17 7.0 7 10 0 347 #> 59: 2022 NO NFC NFC South 17 7.0 7 10 0 330 #> 60: 2022 ATL NFC NFC South 17 7.0 7 10 0 365 #> 61: 2022 SF NFC NFC West 17 13.0 13 4 0 450 #> 62: 2022 SEA NFC NFC West 17 9.0 9 8 0 407 #> 63: 2022 LA NFC NFC West 17 5.0 5 12 0 307 #> 64: 2022 ARI NFC NFC West 17 4.0 4 13 0 340 #> season team conf division games wins true_wins losses ties pf #> pa pd win_pct div_pct conf_pct sov sos div_rank #> #> 1: 289 194 0.647 0.833 0.5833 0.428 0.472 1 #> 2: 303 159 0.588 0.500 0.6667 0.394 0.481 2 #> 3: 373 -32 0.529 0.667 0.5000 0.379 0.464 3 #> 4: 504 -194 0.235 0.000 0.3333 0.426 0.512 4 #> 5: 376 84 0.588 0.667 0.6667 0.462 0.472 1 #> 6: 398 -55 0.559 0.667 0.5833 0.490 0.521 2 #> 7: 371 -22 0.471 0.500 0.4167 0.415 0.514 3 #> 8: 392 -5 0.471 0.167 0.4167 0.460 0.531 4 #> 9: 354 65 0.706 0.833 0.6667 0.480 0.472 1 #> 10: 365 86 0.529 0.500 0.5833 0.431 0.495 2 #> 11: 452 -172 0.235 0.500 0.3333 0.397 0.498 3 #> 12: 457 -204 0.176 0.167 0.2500 0.569 0.512 4 #> 13: 364 116 0.706 0.833 0.5833 0.517 0.538 1 #> 14: 439 -65 0.588 0.500 0.6667 0.515 0.510 2 #> 15: 459 15 0.529 0.500 0.5000 0.500 0.510 3 #> 16: 322 13 0.412 0.167 0.2500 0.357 0.484 4 #> 17: 358 172 0.706 1.000 0.8333 0.431 0.488 1 #> 18: 385 59 0.529 0.500 0.5833 0.350 0.469 2 #> 19: 434 -99 0.412 0.333 0.5000 0.420 0.529 3 #> 20: 416 -158 0.235 0.167 0.2500 0.485 0.536 4 #> 21: 371 79 0.765 0.667 0.7500 0.480 0.479 1 #> 22: 426 -1 0.471 0.667 0.5000 0.434 0.507 2 #> 23: 407 -96 0.353 0.333 0.3333 0.373 0.524 3 #> 24: 467 -142 0.206 0.333 0.2500 0.627 0.528 4 #> 25: 353 158 0.765 0.667 0.6667 0.443 0.467 1 #> 26: 335 29 0.529 0.667 0.5833 0.516 0.512 2 #> 27: 459 -146 0.412 0.333 0.3333 0.315 0.472 3 #> 28: 404 -100 0.294 0.333 0.2500 0.412 0.509 4 #> 29: 372 88 0.706 0.500 0.6667 0.409 0.483 1 #> 30: 366 83 0.647 0.667 0.5833 0.492 0.490 2 #> 31: 365 62 0.588 0.333 0.5833 0.438 0.500 3 #> 32: 366 29 0.412 0.500 0.3333 0.424 0.519 4 #> 33: 286 169 0.812 0.667 0.8182 0.471 0.489 1 #> 34: 399 -2 0.529 0.500 0.5833 0.457 0.537 2 #> 35: 347 17 0.471 0.500 0.5000 0.415 0.502 3 #> 36: 316 -20 0.412 0.333 0.4167 0.458 0.538 4 #> 37: 322 96 0.750 0.500 0.7273 0.490 0.507 1 #> 38: 315 35 0.588 0.500 0.5000 0.456 0.509 2 #> 39: 346 -38 0.529 0.500 0.4167 0.451 0.519 3 #> 40: 381 -20 0.412 0.500 0.3333 0.492 0.524 4 #> 41: 350 54 0.529 0.667 0.6667 0.438 0.467 1 #> 42: 359 -61 0.412 0.500 0.4167 0.336 0.509 2 #> 43: 427 -138 0.265 0.250 0.3750 0.500 0.512 3 #> 44: 420 -131 0.206 0.583 0.2917 0.402 0.481 4 #> 45: 369 127 0.824 1.000 0.7500 0.422 0.453 1 #> 46: 384 7 0.588 0.333 0.5833 0.341 0.443 2 #> 47: 418 -23 0.353 0.500 0.4167 0.397 0.474 3 #> 48: 359 -72 0.294 0.167 0.2500 0.465 0.481 4 #> 49: 344 133 0.824 0.667 0.7500 0.460 0.474 1 #> 50: 342 125 0.706 0.667 0.6667 0.485 0.507 2 #> 51: 371 -6 0.559 0.250 0.3750 0.395 0.526 3 #> 52: 343 -22 0.500 0.417 0.4583 0.449 0.536 4 #> 53: 427 -3 0.765 0.667 0.6667 0.425 0.474 1 #> 54: 427 26 0.529 0.833 0.5833 0.451 0.535 2 #> 55: 371 -1 0.471 0.500 0.5000 0.449 0.524 3 #> 56: 463 -137 0.176 0.000 0.0833 0.480 0.571 4 #> 57: 358 -45 0.471 0.667 0.6667 0.426 0.503 1 #> 58: 374 -27 0.412 0.667 0.5000 0.437 0.474 2 #> 59: 345 -15 0.412 0.333 0.4167 0.462 0.507 3 #> 60: 386 -21 0.412 0.333 0.5000 0.429 0.467 4 #> 61: 277 173 0.765 1.000 0.8333 0.414 0.417 1 #> 62: 401 6 0.529 0.667 0.5000 0.382 0.462 2 #> 63: 384 -77 0.294 0.167 0.2500 0.341 0.517 3 #> 64: 449 -109 0.235 0.167 0.2500 0.368 0.529 4 #> pa pd win_pct div_pct conf_pct sov sos div_rank #> div_tie_broken_by conf_rank conf_tie_broken_by #> #> 1: 3 #> 2: 6 #> 3: 9 Common Games Win PCT (2) #> 4: 14 Head-To-Head Sweep (2) #> 5: 4 #> 6: 7 #> 7: Division Win PCT (2) 11 Division Tiebreaker #> 8: Division Win PCT (2) 12 Division Tiebreaker #> 9: 1 Head-To-Head Sweep (2) #> 10: 8 Conference Win PCT (3) #> 11: 15 #> 12: 16 #> 13: 2 #> 14: 5 Common Games Win PCT (2) #> 15: 10 #> 16: 13 #> 17: 3 Conference Win PCT (2) #> 18: 7 Head-To-Head Sweep (2) #> 19: 10 Head-To-Head Sweep (3) #> 20: 15 #> 21: 1 Conference Win PCT (2) #> 22: 9 #> 23: 13 #> 24: 16 #> 25: 2 #> 26: 8 #> 27: 12 #> 28: 14 #> 29: 4 #> 30: 5 #> 31: 6 #> 32: 11 Common Games Win PCT (2) #> 33: 2 #> 34: 7 Head-To-Head Sweep (2) #> 35: 9 #> 36: 10 SOV (3) #> 37: 3 #> 38: 6 #> 39: 8 #> 40: 12 #> 41: 4 #> 42: 11 Conference Win PCT (2) #> 43: 15 #> 44: 16 #> 45: 1 #> 46: 5 Conference Win PCT (2) #> 47: 13 #> 48: 14 #> 49: 1 #> 50: 5 #> 51: 6 #> 52: 9 #> 53: 3 #> 54: 8 #> 55: 10 #> 56: 16 #> 57: 4 #> 58: Head-To-Head Win PCT (3) 11 Division Tiebreaker #> 59: Head-To-Head Win PCT (3) 12 Division Tiebreaker #> 60: Head-To-Head Win PCT (3) 13 Division Tiebreaker #> 61: 2 Conference Win PCT (2) #> 62: 7 Head-To-Head Sweep (2) #> 63: 14 #> 64: 15 #> div_tie_broken_by conf_rank conf_tie_broken_by # }"},{"path":"https://nflseedr.com/reference/nflseedR-package.html","id":null,"dir":"Reference","previous_headings":"","what":"nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package","title":"nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package","text":"set functions simulate National Football League seasons including sophisticated tie-breaking procedures.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/nflseedR-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"nflseedR: Functions to Efficiently Simulate and Evaluate NFL Seasons — nflseedR-package","text":"Maintainer: Sebastian Carl mrcaseb@gmail.com [copyright holder] Authors: Lee Sharpe","code":""},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":null,"dir":"Reference","previous_headings":"","what":"Simulate an NFL Season — simulate_nfl","title":"Simulate an NFL Season — simulate_nfl","text":"function simulates given NFL season multiple times using custom functions estimate simulate game results computes outcome given season including playoffs draft order. possible run function parallel processes calling appropriate plan. Progress updates can activated calling handlers start simulations. Please see given section \"Details\" information.","code":""},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Simulate an NFL Season — simulate_nfl","text":"","code":"simulate_nfl( nfl_season = NULL, process_games = NULL, ..., playoff_seeds = ifelse(nfl_season >= 2020, 7, 6), if_ended_today = FALSE, fresh_season = FALSE, fresh_playoffs = FALSE, tiebreaker_depth = 3, test_week = NULL, simulations = 1000, sims_per_round = max(ceiling(simulations/future::availableCores() * 2), 100), .debug = FALSE, print_summary = FALSE, sim_include = c(\"DRAFT\", \"REG\", \"POST\") )"},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Simulate an NFL Season — simulate_nfl","text":"nfl_season Season simulate process_games function estimate simulate results games. Uses team, schedule, week number arguments. ... Additional parameters passed function process_games. playoff_seeds Number playoff teams per conference (increased 2020 6 7). if_ended_today Either TRUE FALSE. TRUE, ignore remaining regular season games cut playoffs based current regular season data. fresh_season Either TRUE FALSE. Whether blank game results simulate season scratch (TRUE) take game results far given simulate rest (FALSE). fresh_playoffs Either TRUE FALSE. Whether blank playoff game results simulate postseason scratch (TRUE) take game results far given simulate rest (FALSE). tiebreaker_depth single value equal 1, 2, 3. default 3. value controls depth tiebreakers shall applied. deepest currently implemented tiebreaker strength schedule. following values valid: tiebreaker_depth = 1 Break ties coinflip. Fastest variant. tiebreaker_depth = 2 Apply head--head division win percentage tiebreakers. Random still tied. tiebreaker_depth = 3 Apply tiebreakers strength schedule. Random still tied. test_week Aborts simulator reaches week returns results process games call. simulations Equals number times given NFL season shall simulated sims_per_round number simulations can split multiple rounds processed parallel. parameter controls number simulations per round. default value determines number locally available cores calculates number simulations per round equal half available cores (various benchmarks showed results optimal performance). .debug Either TRUE FALSE. Controls whether additional messages printed console showing tie-breaking algorithms currently performing. print_summary TRUE, prints summary statistics console. sim_include One \"REG\", \"POST\", \"DRAFT\" (default). Simulation behave follows: REG Simulate regular season compute standings, division ranks, playoff seeds POST REG + simulate postseason DRAFT POST + compute draft order","code":""},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Simulate an NFL Season — simulate_nfl","text":"nflseedR_simulation object containing list 6 data frames data frames results simulated games, final standings simulated season (incl. playoffs draft order), summary statistics across simulated seasons, simulation parameters. full list, please see package website.","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"more-speed-using-parallel-processing","dir":"Reference","previous_headings":"","what":"More Speed Using Parallel Processing","title":"Simulate an NFL Season — simulate_nfl","text":"recommend choosing default parallel processing method saving environment variable R user profile make sure futures resolved chosen method default. can done following given steps. First, run following line user profile opened automatically. saved environment variables yet, empty file. opened file add next line, save file restart R session. Please note example sets \"multisession\" default. users appropriate plan please make sure truly . session freshly restarted please check method worked running next line. output FALSE successfully set default non-sequential future::plan(). output TRUE functions behave like called purrr::map() multisession. information possible plans please see future package Readme.","code":"usethis::edit_r_environ() R_FUTURE_PLAN=\"multisession\" inherits(future::plan(), \"sequential\")"},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"get-progress-updates-while-functions-are-running","dir":"Reference","previous_headings":"","what":"Get Progress Updates while Functions are Running","title":"Simulate an NFL Season — simulate_nfl","text":"nflfastR functions able show progress updates using progressr::progressor() turned function called. least two basic ways either activating progress updates globally (current session) piping function call progressr::with_progress(): information work progress handlers please see progressr::progressr.","code":"progressr::handlers(global = TRUE) simulate_nfl(2020, fresh_season = TRUE) %>% progressr::with_progress()"},{"path":[]},{"path":"https://nflseedr.com/reference/simulate_nfl.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Simulate an NFL Season — simulate_nfl","text":"","code":"# \\donttest{ library(nflseedR) # Activate progress updates # progressr::handlers(global = TRUE) # Parallel processing can be activated via the following line # future::plan(\"multisession\") try({#to avoid CRAN test problems # Simulate the season 4 times in 2 rounds sim <- nflseedR::simulate_nfl( nfl_season = 2020, fresh_season = TRUE, simulations = 4, sims_per_round = 2 ) # Overview output dplyr::glimpse(sim) }) #> ℹ 14:58:14 | Loading games data #> ℹ Computation in multiple rounds can be accelerated with parallel processing. #> ℹ You should consider calling a `future::plan()`. Please see the function #> documentation for further information. #> ℹ Will go on sequentially... #> ℹ 14:58:14 | Beginning simulation of 4 seasons in 2 rounds #> ℹ 14:58:19 | Combining simulation data #> ℹ 14:58:19 | Aggregating across simulations #> ℹ 14:58:19 | DONE! #> List of 6 #> $ teams :Classes ‘data.table’ and 'data.frame':\t128 obs. of 18 variables: #> ..$ sim : num [1:128] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ team : chr [1:128] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ conf : chr [1:128] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division : chr [1:128] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ games : int [1:128] 16 16 16 16 16 16 16 16 16 16 ... #> ..$ wins : num [1:128] 8 3 12 4 8 7 12 3 4 1 ... #> ..$ true_wins : int [1:128] 8 3 12 4 8 7 12 3 4 1 ... #> ..$ losses : int [1:128] 8 13 4 12 8 9 4 13 12 15 ... #> ..$ ties : int [1:128] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ win_pct : num [1:128] 0.5 0.188 0.75 0.25 0.5 ... #> ..$ div_pct : num [1:128] 0.833 0 0.833 0.333 0.5 ... #> ..$ conf_pct : num [1:128] 0.583 0.167 0.833 0.25 0.5 ... #> ..$ sov : num [1:128] 0.305 0.354 0.417 0.156 0.383 ... #> ..$ sos : num [1:128] 0.516 0.547 0.457 0.523 0.5 ... #> ..$ div_rank : num [1:128] 2 4 1 3 2 3 1 4 3 4 ... #> ..$ seed : num [1:128] 7 NA 2 NA NA NA 3 NA NA NA ... #> ..$ exit : num [1:128] 18 17 19 17 17 17 18 17 17 17 ... #> ..$ draft_order: num [1:128] 19 4 27 7 16 13 23 3 8 1 ... #> ..- attr(*, \".internal.selfref\")= #> $ games :Classes ‘data.table’ and 'data.frame':\t1076 obs. of 9 variables: #> ..$ sim : num [1:1076] 1 2 1 2 1 2 1 2 1 2 ... #> ..$ game_type: chr [1:1076] \"REG\" \"REG\" \"REG\" \"REG\" ... #> ..$ week : int [1:1076] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ away_team: chr [1:1076] \"HOU\" \"HOU\" \"SEA\" \"SEA\" ... #> ..$ home_team: chr [1:1076] \"KC\" \"KC\" \"ATL\" \"ATL\" ... #> ..$ away_rest: num [1:1076] 7 7 7 7 7 7 7 7 7 7 ... #> ..$ home_rest: num [1:1076] 7 7 7 7 7 7 7 7 7 7 ... #> ..$ location : chr [1:1076] \"Home\" \"Home\" \"Home\" \"Home\" ... #> ..$ result : int [1:1076] 18 8 18 1 4 -16 17 30 -25 -7 ... #> ..- attr(*, \".internal.selfref\")= #> $ overall : tibble [32 × 11] (S3: tbl_df/tbl/data.frame) #> ..$ conf : chr [1:32] \"AFC\" \"AFC\" \"AFC\" \"AFC\" ... #> ..$ division: chr [1:32] \"AFC East\" \"AFC East\" \"AFC East\" \"AFC East\" ... #> ..$ team : chr [1:32] \"BUF\" \"MIA\" \"NE\" \"NYJ\" ... #> ..$ wins : num [1:32] 6.75 6 11 3.75 10.25 ... #> ..$ playoff : num [1:32] 0.25 0.5 1 0 0.5 0.75 0.5 0 0.5 0 ... #> ..$ div1 : num [1:32] 0 0.25 0.75 0 0.5 0.25 0.25 0 0.5 0 ... #> ..$ seed1 : num [1:32] 0 0 0 0 0.25 0.25 0 0 0 0 ... #> ..$ won_conf: num [1:32] 0 0 0 0 0 0.25 0 0 0 0 ... #> ..$ won_sb : num [1:32] 0 0 0 0 0 0.25 0 0 0 0 ... #> ..$ draft1 : num [1:32] 0 0.25 0 0 0 0 0 0 0 0.25 ... #> ..$ draft5 : num [1:32] 0 0.5 0 0.5 0 0 0 0.5 0.25 0.75 ... #> $ team_wins : tibble [1,056 × 4] (S3: tbl_df/tbl/data.frame) #> ..$ team : chr [1:1056] \"ARI\" \"ARI\" \"ARI\" \"ARI\" ... #> ..$ wins : num [1:1056] 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 ... #> ..$ over_prob : num [1:1056] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ under_prob: num [1:1056] 0 0 0 0 0 0 0 0 0 0 ... #> $ game_summary: tibble [306 × 11] (S3: tbl_df/tbl/data.frame) #> ..$ game_type : chr [1:306] \"REG\" \"REG\" \"REG\" \"REG\" ... #> ..$ week : int [1:306] 1 1 1 1 1 1 1 1 1 1 ... #> ..$ away_team : chr [1:306] \"ARI\" \"CHI\" \"CLE\" \"DAL\" ... #> ..$ home_team : chr [1:306] \"SF\" \"DET\" \"BAL\" \"LA\" ... #> ..$ away_wins : int [1:306] 1 4 1 2 3 1 1 1 2 1 ... #> ..$ home_wins : int [1:306] 3 0 3 2 1 3 3 3 2 3 ... #> ..$ ties : int [1:306] 0 0 0 0 0 0 0 0 0 0 ... #> ..$ result : num [1:306] 9.5 -12.25 7.25 8 -9 ... #> ..$ games_played : int [1:306] 4 4 4 4 4 4 4 4 4 4 ... #> ..$ away_percentage: num [1:306] 0.25 1 0.25 0.5 0.75 0.25 0.25 0.25 0.5 0.25 ... #> ..$ home_percentage: num [1:306] 0.75 0 0.75 0.5 0.25 0.75 0.75 0.75 0.5 0.75 ... #> $ sim_params :List of 14 #> ..$ nfl_season : num 2020 #> ..$ playoff_seeds : num 7 #> ..$ if_ended_today : logi FALSE #> ..$ fresh_season : logi TRUE #> ..$ fresh_playoffs : logi FALSE #> ..$ tiebreaker_depth: num 3 #> ..$ test_week : NULL #> ..$ simulations : num 4 #> ..$ sims_per_round : num 2 #> ..$ .debug : logi FALSE #> ..$ print_summary : logi FALSE #> ..$ sim_include : chr \"DRAFT\" #> ..$ nflseedR_version:Classes 'package_version', 'numeric_version' hidden list of 1 #> .. ..$ : int [1:4] 1 2 0 9901 #> ..$ finished_at : POSIXct[1:1], format: \"2024-12-23 14:58:19\" #> - attr(*, \"class\")= chr \"nflseedR_simulation\" # }"},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":null,"dir":"Reference","previous_headings":"","what":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"Uses R package gt create pretty html table nflseedR simulation summary data frame.","code":""},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"","code":"# S3 method for class 'nflseedR_simulation' summary(object, ...)"},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"object object summary desired. ... additional arguments passed methods (currently used).","code":""},{"path":[]},{"path":"https://nflseedr.com/reference/summary.nflseedR_simulation.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Compute Pretty Simulations Summary Table — summary.nflseedR_simulation","text":"","code":"# \\donttest{ library(nflseedR) # set seed for recreation, # internal parallelization requires a L'Ecuyer-CMRG random number generator set.seed(19980310, kind = \"L'Ecuyer-CMRG\") # Simulate the season 20 times in 1 round sim <- nflseedR::simulate_nfl( nfl_season = 2021, fresh_season = TRUE, simulations = 20 ) #> ℹ 14:58:20 | Loading games data #> ℹ 14:58:20 | Beginning simulation of 20 seasons in 1 round #> ℹ 14:58:25 | Combining simulation data #> ℹ 14:58:25 | Aggregating across simulations #> ℹ 14:58:26 | DONE! # Create Summary Tables tbl <- summary(sim) # The output of tbl is given in the above image. # }"},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-development-version","dir":"Changelog","previous_headings":"","what":"nflseedR (development version)","title":"nflseedR (development version)","text":"Fixed error simulate_nfl() crashes “fake schedule” isn’t tibble. (#43) summary method summary.nflseedR_simulation() explicitly sets columns width logo column columns hidden unclear scenarios. New function nfl_standings() high efficient standings calculation. functions compute_division_ranks(), compute_conference_seeds(), compute_draft_order() deprecated future release. summary method summary.nflseedR_simulation() now requires gt version v0.9.0 higher avoid warnings deprecated arguments.","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-120","dir":"Changelog","previous_headings":"","what":"nflseedR 1.2.0","title":"nflseedR 1.2.0","text":"CRAN release: 2023-01-05 simulate_nfl() gained new argument sim_include allow access actually simulated. makes possible skip playoff simulation (possibly heavy) computation draft order. (#34) summary method summary.nflseedR_simulation() now hides columns values NA. useful simulate_nfl() skips postseason draft order. method also re-formats number simulations subtitle, e.g. “10000” “10k” (requires scales >= 1.2.0, good idea update scales anyways). (#35) simulate_nfl() now uses data.table combine simulation rounds data. significant performance improvement. returned list \"sim_params\" now includes package version nflseedR (debugging) current system time simulation finished. (#36) Lots internal improvements reduce package dependencies messaging. (#36) summary method summary.nflseedR_simulation() now uses fmt_pct_special() format probability strings avoid impression overconfidence rounding integer percentages. (#37)","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-110","dir":"Changelog","previous_headings":"","what":"nflseedR 1.1.0","title":"nflseedR 1.1.0","text":"CRAN release: 2022-07-07 Added data frame game_summary output simulate_nfl() aggregates matchups across simulated seasons (#24) Updated description variables load_sharpe_games() (#24) output simulate_nfl() now class nflseedR_simulation allows implementation summary() method computes gt() table simulation summary data frame. (#26) standings data frame calculated compute_division_ranks() now outputs losses ties well. (#27)","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-102","dir":"Changelog","previous_headings":"","what":"nflseedR 1.0.2","title":"nflseedR 1.0.2","text":"CRAN release: 2021-04-10 Improved error handling function load_sharpe_games() CRAN tests","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-101","dir":"Changelog","previous_headings":"","what":"nflseedR 1.0.1","title":"nflseedR 1.0.1","text":"CRAN release: 2021-03-31 Added support fake schedule simulating upcoming season NFL released official schedule. updated documentation function load_sharpe_games() new columns away_qb_id, home_qb_id, away_qb_name home_qb_name.","code":""},{"path":"https://nflseedr.com/news/index.html","id":"nflseedr-100","dir":"Changelog","previous_headings":"","what":"nflseedR 1.0.0","title":"nflseedR 1.0.0","text":"Initial release.","code":""}]