├── .Rbuildignore ├── .gitignore ├── CRAN-SUBMISSION ├── DESCRIPTION ├── LICENSE ├── LICENSE.md ├── NAMESPACE ├── NEWS.md ├── R ├── RcppExports.R ├── absorption.R ├── check.R ├── cond_passage.R ├── data.R ├── dispersal.R ├── distribution.R ├── generics.R ├── internal-classes.R ├── internal-data.R ├── internal-functions.R ├── internal-utils.R ├── internal-validation.R ├── locate.R ├── location-class.R ├── map.R ├── mortality.R ├── pairwise.R ├── rasterize.R ├── samc-class.R ├── samc.R ├── survival.R ├── visitation.R └── zzz.R ├── README.md ├── _pkgdown.yml ├── cran-comments.md ├── data ├── example_maze.rda ├── example_split_corridor.rda └── example_toy_res.rda ├── docs ├── 404.html ├── LICENSE-text.html ├── LICENSE.html ├── articles │ ├── article-circuit-theory.html │ ├── article-circuit-theory_files │ │ └── figure-html │ │ │ ├── unnamed-chunk-1-1.png │ │ │ ├── unnamed-chunk-1-2.png │ │ │ ├── unnamed-chunk-2-1.png │ │ │ ├── unnamed-chunk-2-2.png │ │ │ ├── unnamed-chunk-5-1.png │ │ │ ├── unnamed-chunk-5-2.png │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-6-2.png │ │ │ ├── unnamed-chunk-6-3.png │ │ │ ├── unnamed-chunk-6-4.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ ├── unnamed-chunk-7-2.png │ │ │ ├── unnamed-chunk-8-1.png │ │ │ ├── unnamed-chunk-8-2.png │ │ │ └── unnamed-chunk-9-1.png │ ├── article-computation-methods.html │ ├── article-models.html │ ├── article-models_files │ │ └── figure-html │ │ │ ├── unnamed-chunk-1-1.png │ │ │ ├── unnamed-chunk-1-2.png │ │ │ ├── unnamed-chunk-1-3.png │ │ │ ├── unnamed-chunk-1-4.png │ │ │ ├── unnamed-chunk-1-5.png │ │ │ └── unnamed-chunk-1-6.png │ ├── code-snippets.html │ ├── code-snippets_files │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── data-disconnected.html │ ├── data-disconnected_files │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── example-coinflip.html │ ├── example-coinflip_files │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── example-maze-part1.html │ ├── example-maze-part1_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-10-1.png │ │ │ ├── unnamed-chunk-11-1.png │ │ │ ├── unnamed-chunk-12-1.png │ │ │ ├── unnamed-chunk-13-1.png │ │ │ ├── unnamed-chunk-14-1.png │ │ │ ├── unnamed-chunk-15-1.png │ │ │ ├── unnamed-chunk-16-1.png │ │ │ ├── unnamed-chunk-17-1.png │ │ │ ├── unnamed-chunk-18-1.png │ │ │ ├── unnamed-chunk-19-1.png │ │ │ ├── unnamed-chunk-2-1.png │ │ │ ├── unnamed-chunk-21-1.png │ │ │ ├── unnamed-chunk-22-1.png │ │ │ ├── unnamed-chunk-23-1.png │ │ │ ├── unnamed-chunk-24-1.png │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ ├── unnamed-chunk-5-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ ├── unnamed-chunk-8-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── example-maze-part2.html │ ├── example-maze-part2_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-1-1.png │ │ │ ├── unnamed-chunk-1-2.png │ │ │ ├── unnamed-chunk-1-3.png │ │ │ ├── unnamed-chunk-1-4.png │ │ │ ├── unnamed-chunk-1-5.png │ │ │ ├── unnamed-chunk-10-1.png │ │ │ ├── unnamed-chunk-10-2.png │ │ │ ├── unnamed-chunk-11-1.png │ │ │ ├── unnamed-chunk-13-1.png │ │ │ ├── unnamed-chunk-13-2.png │ │ │ ├── unnamed-chunk-14-1.png │ │ │ ├── unnamed-chunk-14-2.png │ │ │ ├── unnamed-chunk-15-1.png │ │ │ ├── unnamed-chunk-17-1.png │ │ │ ├── unnamed-chunk-18-1.png │ │ │ ├── unnamed-chunk-18-2.png │ │ │ ├── unnamed-chunk-19-1.png │ │ │ ├── unnamed-chunk-19-2.png │ │ │ ├── unnamed-chunk-2-1.png │ │ │ ├── unnamed-chunk-20-1.png │ │ │ ├── unnamed-chunk-21-1.png │ │ │ ├── unnamed-chunk-23-1.png │ │ │ ├── unnamed-chunk-23-2.png │ │ │ ├── unnamed-chunk-24-1.png │ │ │ ├── unnamed-chunk-24-2.png │ │ │ ├── unnamed-chunk-5-1.png │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ ├── unnamed-chunk-7-2.png │ │ │ ├── unnamed-chunk-8-1.png │ │ │ ├── unnamed-chunk-8-2.png │ │ │ ├── unnamed-chunk-9-1.png │ │ │ └── unnamed-chunk-9-2.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── example-maze-part3.html │ ├── example-maze-part3_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-1-1.png │ │ │ ├── unnamed-chunk-1-2.png │ │ │ ├── unnamed-chunk-1-3.png │ │ │ ├── unnamed-chunk-1-4.png │ │ │ ├── unnamed-chunk-1-5.png │ │ │ ├── unnamed-chunk-1-6.png │ │ │ ├── unnamed-chunk-1-7.png │ │ │ ├── unnamed-chunk-10-1.png │ │ │ ├── unnamed-chunk-11-1.png │ │ │ ├── unnamed-chunk-11-2.png │ │ │ ├── unnamed-chunk-13-1.png │ │ │ ├── unnamed-chunk-2-1.png │ │ │ ├── unnamed-chunk-6-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── img │ │ ├── br.png │ │ ├── bt.png │ │ ├── btr.png │ │ ├── btt.png │ │ ├── coinflipmatrix.svg │ │ ├── gganimate.gif │ │ ├── ggplot1.png │ │ ├── ggplot2.png │ │ ├── ggplot3.png │ │ ├── ggplot4.png │ │ ├── ggplot5.png │ │ └── gifski.gif │ ├── index.html │ ├── overview.html │ ├── overview_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-1-1.png │ │ │ ├── unnamed-chunk-1-2.png │ │ │ └── unnamed-chunk-1-3.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── parallel.html │ ├── parallel_files │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── performance.html │ ├── performance_files │ │ ├── figure-html │ │ │ ├── fig1-1.png │ │ │ ├── fig2-1.png │ │ │ └── fig3-1.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── troubleshooting.html │ ├── troubleshooting_files │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── tutorial-animations.html │ ├── tutorial-animations_files │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── tutorial-basic.html │ ├── tutorial-basic_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-2-1.png │ │ │ ├── unnamed-chunk-2-2.png │ │ │ ├── unnamed-chunk-2-3.png │ │ │ ├── unnamed-chunk-5-1.png │ │ │ ├── unnamed-chunk-5-2.png │ │ │ └── unnamed-chunk-5-3.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── tutorial-ggplot.html │ ├── tutorial-ggplot_files │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── tutorial-locations.html │ ├── tutorial-locations_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-3-2.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ └── unnamed-chunk-4-2.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── tutorial-multiple-absorption.html │ ├── tutorial-multiple-absorption_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-2-1.png │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ └── unnamed-chunk-5-1.png │ │ ├── header-attrs-2.10 │ │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ │ └── header-attrs.js │ ├── tutorial-temporal.html │ └── tutorial-temporal_files │ │ ├── figure-html │ │ ├── unnamed-chunk-3-1.png │ │ ├── unnamed-chunk-4-1.png │ │ ├── unnamed-chunk-4-2.png │ │ ├── unnamed-chunk-4-3.png │ │ ├── unnamed-chunk-4-4.png │ │ ├── unnamed-chunk-5-1.png │ │ ├── unnamed-chunk-5-2.png │ │ ├── unnamed-chunk-5-3.png │ │ └── unnamed-chunk-5-4.png │ │ ├── header-attrs-2.10 │ │ └── header-attrs.js │ │ ├── header-attrs-2.11 │ │ └── header-attrs.js │ │ └── header-attrs-2.14 │ │ └── header-attrs.js ├── authors.html ├── bootstrap-toc.css ├── bootstrap-toc.js ├── deps │ ├── Lato-0.4.9 │ │ ├── S6uyw4BMUTPHjx4wXg.woff2 │ │ ├── S6uyw4BMUTPHjxAwXjeu.woff2 │ │ └── font.css │ ├── Montserrat-0.4.9 │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw0aXpsog.woff2 │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw2aXpsog.woff2 │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw3aXpsog.woff2 │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXo.woff2 │ │ ├── JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw9aXpsog.woff2 │ │ └── font.css │ ├── Open_Sans-0.4.9 │ │ ├── font.css │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVI.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4iaVIGxA.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4jaVIGxA.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4kaVIGxA.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4saVIGxA.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4taVIGxA.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4uaVIGxA.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4vaVIGxA.woff2 │ │ ├── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B5OaVIGxA.woff2 │ │ └── memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B5caVIGxA.woff2 │ ├── Roboto-0.4.9 │ │ ├── KFOmCnqEu92Fr1Mu4WxKOzY.woff2 │ │ ├── KFOmCnqEu92Fr1Mu4mxK.woff2 │ │ ├── KFOmCnqEu92Fr1Mu5mxKOzY.woff2 │ │ ├── KFOmCnqEu92Fr1Mu72xKOzY.woff2 │ │ ├── KFOmCnqEu92Fr1Mu7GxKOzY.woff2 │ │ ├── KFOmCnqEu92Fr1Mu7WxKOzY.woff2 │ │ ├── KFOmCnqEu92Fr1Mu7mxKOzY.woff2 │ │ └── font.css │ ├── bootstrap-5.3.1 │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.min.css │ │ ├── font.css │ │ └── fonts │ │ │ ├── 07d40e985ad7c747025dabb9f22142c4.woff2 │ │ │ ├── 1Ptug8zYS_SKggPNyC0ITw.woff2 │ │ │ ├── 1Ptug8zYS_SKggPNyCAIT5lu.woff2 │ │ │ ├── 1Ptug8zYS_SKggPNyCIIT5lu.woff2 │ │ │ ├── 1Ptug8zYS_SKggPNyCMIT5lu.woff2 │ │ │ ├── 1Ptug8zYS_SKggPNyCkIT5lu.woff2 │ │ │ ├── 1f5e011d6aae0d98fc0518e1a303e99a.woff2 │ │ │ ├── 4iCs6KVjbNBYlgoKcQ72j00.woff2 │ │ │ ├── 4iCs6KVjbNBYlgoKcg72j00.woff2 │ │ │ ├── 4iCs6KVjbNBYlgoKcw72j00.woff2 │ │ │ ├── 4iCs6KVjbNBYlgoKew72j00.woff2 │ │ │ ├── 4iCs6KVjbNBYlgoKfA72j00.woff2 │ │ │ ├── 4iCs6KVjbNBYlgoKfw72.woff2 │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjsGyN.woff2 │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 │ │ │ ├── 4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 │ │ │ ├── 626330658504e338ee86aec8e957426b.woff2 │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 │ │ │ ├── 6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 │ │ │ ├── 6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 │ │ │ ├── 6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 │ │ │ ├── CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 │ │ │ ├── CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 │ │ │ ├── HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 │ │ │ ├── HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 │ │ │ ├── HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 │ │ │ ├── HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 │ │ │ ├── HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 │ │ │ ├── HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 │ │ │ ├── HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 │ │ │ ├── HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 │ │ │ ├── HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 │ │ │ ├── HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 │ │ │ ├── HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 │ │ │ ├── HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 │ │ │ ├── HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 │ │ │ ├── HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 │ │ │ ├── JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 │ │ │ ├── JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 │ │ │ ├── JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 │ │ │ ├── JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 │ │ │ ├── JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmEU9fBBc4.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmSU5fBBc4.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmWUlfBBc4.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 │ │ │ ├── KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 │ │ │ ├── KFOmCnqEu92Fr1Mu4WxKOzY.woff2 │ │ │ ├── KFOmCnqEu92Fr1Mu4mxK.woff2 │ │ │ ├── KFOmCnqEu92Fr1Mu5mxKOzY.woff2 │ │ │ ├── KFOmCnqEu92Fr1Mu72xKOzY.woff2 │ │ │ ├── KFOmCnqEu92Fr1Mu7GxKOzY.woff2 │ │ │ ├── KFOmCnqEu92Fr1Mu7WxKOzY.woff2 │ │ │ ├── KFOmCnqEu92Fr1Mu7mxKOzY.woff2 │ │ │ ├── QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 │ │ │ ├── S6u8w4BMUTPHjxsAUi-qJCY.woff2 │ │ │ ├── S6u8w4BMUTPHjxsAXC-q.woff2 │ │ │ ├── S6u9w4BMUTPHh6UVSwaPGR_p.woff2 │ │ │ ├── S6u9w4BMUTPHh6UVSwiPGQ.woff2 │ │ │ ├── S6u9w4BMUTPHh7USSwaPGR_p.woff2 │ │ │ ├── S6u9w4BMUTPHh7USSwiPGQ.woff2 │ │ │ ├── S6uyw4BMUTPHjx4wXg.woff2 │ │ │ ├── S6uyw4BMUTPHjxAwXjeu.woff2 │ │ │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa0ZL7SUc.woff2 │ │ │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7.woff2 │ │ │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1pL7SUc.woff2 │ │ │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa25L7SUc.woff2 │ │ │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2 │ │ │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2ZL7SUc.woff2 │ │ │ ├── UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2pL7SUc.woff2 │ │ │ ├── XRXV3I6Li01BKofIMeaBXso.woff2 │ │ │ ├── XRXV3I6Li01BKofINeaB.woff2 │ │ │ ├── XRXV3I6Li01BKofIO-aBXso.woff2 │ │ │ ├── XRXV3I6Li01BKofIOOaBXso.woff2 │ │ │ ├── XRXV3I6Li01BKofIOuaBXso.woff2 │ │ │ ├── c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 │ │ │ ├── ee91700cdbf7ce16c054c2bb8946c736.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 │ │ │ ├── memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 │ │ │ ├── memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 │ │ │ ├── q5uGsou0JOdh94bfuQltOxU.woff2 │ │ │ └── q5uGsou0JOdh94bfvQlt.woff2 │ ├── bootstrap-toc-1.0.1 │ │ └── bootstrap-toc.min.js │ ├── clipboard.js-2.0.11 │ │ └── clipboard.min.js │ ├── data-deps.txt │ ├── font-awesome-6.4.2 │ │ ├── css │ │ │ ├── all.css │ │ │ ├── all.min.css │ │ │ ├── v4-shims.css │ │ │ └── v4-shims.min.css │ │ └── webfonts │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff2 │ │ │ ├── fa-v4compatibility.ttf │ │ │ └── fa-v4compatibility.woff2 │ ├── headroom-0.11.0 │ │ ├── headroom.min.js │ │ └── jQuery.headroom.min.js │ ├── jquery-3.6.0 │ │ ├── jquery-3.6.0.js │ │ ├── jquery-3.6.0.min.js │ │ └── jquery-3.6.0.min.map │ └── search-1.0.0 │ │ ├── autocomplete.jquery.min.js │ │ ├── fuse.min.js │ │ └── mark.min.js ├── docsearch.css ├── docsearch.js ├── index.html ├── katex-auto.js ├── lightswitch.js ├── link.svg ├── news │ └── index.html ├── pkgdown.css ├── pkgdown.js ├── pkgdown.yml ├── reference │ ├── Rplot001.png │ ├── absorption.html │ ├── char_null-class.html │ ├── check.html │ ├── cond_passage.html │ ├── dispersal.html │ ├── distribution.html │ ├── ex_abs_data.html │ ├── ex_occ_data.html │ ├── ex_res_data.html │ ├── example_maze.html │ ├── example_split_corridor.html │ ├── example_toy_res.html │ ├── figures │ │ ├── 3d-stack-small.png │ │ └── 3d-stack.png │ ├── index.html │ ├── locate-1.png │ ├── locate.html │ ├── location-class.html │ ├── map.html │ ├── mat_null-class.html │ ├── mortality.html │ ├── pairwise.html │ ├── rasterize.html │ ├── samc-class-access.html │ ├── samc-class-modify.html │ ├── samc-class.html │ ├── samc.html │ ├── samc_data-class.html │ ├── survival.html │ ├── visitation.html │ └── visitation_net.html ├── search.json └── sitemap.xml ├── index.md ├── inst ├── CITATION └── examples │ ├── example.R │ ├── locate.R │ └── pairwise.R ├── man-roxygen ├── param-dest.R ├── param-init.R ├── param-origin.R ├── param-samc.R ├── param-time.R └── section-perf.R ├── man └── figures │ ├── 3d-stack-small.png │ └── 3d-stack.png ├── samc.Rproj ├── src ├── .gitignore ├── Makevars ├── Makevars.win ├── RcppExports.cpp ├── cond_passage.cpp ├── constants.h ├── convolution.cpp ├── convolution.h ├── dispersal.cpp ├── distribution.cpp ├── mortality.cpp ├── samc_types.h ├── solver-cache.cpp ├── solver-cache.h ├── survival.cpp └── visitation.cpp ├── tests ├── testthat.R └── testthat │ ├── helper-data.R │ ├── test-check.R │ ├── test-cond_passage.R │ ├── test-conv.R │ ├── test-dispersal.R │ ├── test-distribution.R │ ├── test-mortality.R │ ├── test-samc.R │ ├── test-survival.R │ └── test-visitation.R └── vignettes ├── article-circuit-theory.Rmd ├── article-computation-methods.Rmd ├── article-models.Rmd ├── code-snippets.Rmd ├── data-disconnected.Rmd ├── example-coinflip.Rmd ├── example-maze-part1.Rmd ├── example-maze-part2.Rmd ├── example-maze-part3.Rmd ├── img ├── br.png ├── bt.png ├── btr.png ├── btt.png ├── coinflipmatrix.svg ├── gganimate.gif ├── ggplot1.png ├── ggplot2.png ├── ggplot3.png ├── ggplot4.png ├── ggplot5.png └── gifski.gif ├── overview.Rmd ├── parallel.Rmd ├── performance.Rmd ├── scripts ├── example-coinflip.R ├── example-maze.R ├── tutorial-animations.R └── tutorial-ggplot.R ├── troubleshooting.Rmd ├── tutorial-animations.Rmd ├── tutorial-basic.Rmd ├── tutorial-ggplot.Rmd ├── tutorial-locations.Rmd ├── tutorial-multiple-absorption.Rmd └── tutorial-temporal.Rmd /.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^CRAN-RELEASE$ 2 | man-roxygen 3 | CONTRIBUTING.md 4 | other 5 | ^docs$ 6 | ^_pkgdown\.yml$ 7 | ^\.git$ 8 | ^corridor example$ 9 | ^.*\.Rproj$ 10 | ^\.Rproj\.user$ 11 | ^README\.md$ 12 | ^\.gitignore$ 13 | ^codebits\.R$ 14 | ^doc$ 15 | ^Meta$ 16 | benchmark 17 | LICENSE 18 | index.md 19 | ^CRAN-SUBMISSION$ 20 | ^cran-comments\.md$ 21 | ^vignettes/(?!overview.Rmd) 22 | ^LICENSE\.md$ 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | inst/doc 6 | doc 7 | Meta 8 | **/performance_cache 9 | *.pdf 10 | other 11 | benchmark 12 | man/*.Rd 13 | docs 14 | -------------------------------------------------------------------------------- /CRAN-SUBMISSION: -------------------------------------------------------------------------------- 1 | Version: 4.0.0 2 | Date: 2024-10-30 22:17:43 UTC 3 | SHA: 42c198ff5e53bcd381aeba5fc4967c93b7f07bc2 4 | -------------------------------------------------------------------------------- /DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: samc 2 | Type: Package 3 | Title: Spatial Absorbing Markov Chains 4 | Version: 4.0.0 5 | Authors@R: c( 6 | person("Andrew", "Marx", , "ajm.rpackages@gmail.com", role = c("aut", "cre", "cph"), 7 | comment = c(ORCID = "0000-0002-7456-1631") 8 | ), 9 | person("Robert", "Fletcher", , , role = c("ctb"), 10 | comment = c(ORCID = "0000-0003-1717-5707") 11 | ), 12 | person("Miguel", "Acevedo", , , role = c("ctb"), 13 | comment = c(ORCID = "0000-0002-8289-1497") 14 | ), 15 | person("Jorge", "Sefair", , , role = c("ctb"), 16 | comment = c(ORCID = "0000-0002-5887-8938") 17 | ), 18 | person("Chao", "Wang", , , role = c("ctb"), 19 | comment = c(ORCID = "0000-0003-2706-5122") 20 | ), 21 | person("Hughes", "Josie", , , role = c("ctb"), 22 | comment = c(ORCID = "0000-0001-7875-9015") 23 | ), 24 | person("Barrett", "Griffin", , , role = c("ctb")) 25 | ) 26 | Description: Implements functions for working with absorbing Markov chains. The 27 | implementation is based on the framework described in "Toward a unified 28 | framework for connectivity that disentangles movement and mortality in space 29 | and time" by Fletcher et al. (2019) , which applies 30 | them to spatial ecology. This framework incorporates both resistance and 31 | absorption with spatial absorbing Markov chains (SAMC) to provide several 32 | short-term and long-term predictions for metrics related to connectivity in 33 | landscapes. Despite the ecological context of the framework, this package 34 | can be used in any application of absorbing Markov chains. 35 | License: AGPL (>= 3) 36 | URL: https://andrewmarx.github.io/samc/ 37 | BugReports: https://github.com/andrewmarx/samc/issues/ 38 | Encoding: UTF-8 39 | LazyData: true 40 | Depends: R (>= 3.6.0) 41 | Imports: 42 | methods, 43 | Matrix (>= 1.5-3), 44 | raster, 45 | terra (>= 1.7-3), 46 | circular 47 | RoxygenNote: 7.3.2 48 | Suggests: knitr, 49 | rmarkdown, 50 | testthat, 51 | gdistance, 52 | viridisLite 53 | VignetteBuilder: knitr 54 | Collate: 55 | 'RcppExports.R' 56 | 'location-class.R' 57 | 'internal-classes.R' 58 | 'samc-class.R' 59 | 'absorption.R' 60 | 'check.R' 61 | 'cond_passage.R' 62 | 'data.R' 63 | 'visitation.R' 64 | 'dispersal.R' 65 | 'distribution.R' 66 | 'generics.R' 67 | 'internal-data.R' 68 | 'internal-functions.R' 69 | 'internal-utils.R' 70 | 'internal-validation.R' 71 | 'locate.R' 72 | 'map.R' 73 | 'mortality.R' 74 | 'pairwise.R' 75 | 'rasterize.R' 76 | 'samc.R' 77 | 'survival.R' 78 | 'zzz.R' 79 | LinkingTo: Rcpp (>= 1.0.10), RcppEigen (>= 0.3.3.9.3), RcppThread (>= 2.1.3) 80 | -------------------------------------------------------------------------------- /NAMESPACE: -------------------------------------------------------------------------------- 1 | useDynLib(samc) 2 | importClassesFrom("Matrix", "CsparseMatrix") 3 | importClassesFrom("Matrix", "dgCMatrix") 4 | importClassesFrom("raster", "RasterLayer") 5 | importClassesFrom("terra", "SpatRaster") 6 | importFrom("methods", "as") 7 | importFrom("methods", "new") 8 | importFrom("methods", "is") 9 | importFrom("stats", "aggregate") 10 | exportPattern("^[[:alpha:]]+") 11 | -------------------------------------------------------------------------------- /R/data.R: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Andrew Marx. All rights reserved. 2 | # Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #' Simple split corridor example 5 | #' 6 | #' A fabricated dataset of a simple split corridor. Contains resistance, 7 | #' absorption, and occupancy data. 8 | #' 9 | #' @format A list of three matrices. Matrices have 34 rows and 202 columns. 10 | #' 11 | #' @source Fletcher et al (2019) 12 | "example_split_corridor" 13 | 14 | 15 | #' Simple maze example 16 | #' 17 | #' A simple maze layout. 18 | #' 19 | #' @format A 20x20 matrix. 20 | #' 21 | #' @source Generated for Maze Example vignettes 22 | "example_maze" 23 | 24 | #' Toy resistance data 25 | #' 26 | #' Toy resistance data used in a workshop at IALE 2021 27 | #' 28 | #' @format A 10x10 matrix. 29 | #' 30 | #' @source IALE 2021 workshop 31 | "example_toy_res" 32 | -------------------------------------------------------------------------------- /R/internal-classes.R: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Andrew Marx. All rights reserved. 2 | # Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | NULL 4 | 5 | #' data class 6 | #' 7 | #' Contains the data fields used in the samc-class 8 | #' 9 | #' @slot f F matrix 10 | #' @slot t_abs Total absorption 11 | #' @slot c_abs Component absorption states 12 | #' 13 | #' @name samc_data-class 14 | #' @keywords internal 15 | 16 | setClass( 17 | # set the name of the class 18 | "samc_data", 19 | 20 | # define the slots 21 | slots = list(f = "CsparseMatrix", 22 | t_abs = "numeric", 23 | c_abs = "matrix") 24 | 25 | # set default values 26 | #prototype = list(p = NA) 27 | 28 | # create a function to validate the data 29 | # validity=function(object) 30 | # { 31 | # return(TRUE) 32 | # } 33 | ) 34 | 35 | 36 | #' samc char_null class 37 | #' 38 | #' Class for grouping character and NULL data types 39 | #' 40 | #' @name char_null-class 41 | #' @keywords internal 42 | #' 43 | setClassUnion("char_null", c("character", "NULL")) 44 | 45 | 46 | #' samc mat_null class 47 | #' 48 | #' Class for grouping matrix and NULL data types 49 | #' 50 | #' @name mat_null-class 51 | #' @keywords internal 52 | #' 53 | setClassUnion("mat_null", c("matrix", "NULL")) 54 | -------------------------------------------------------------------------------- /R/internal-utils.R: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Andrew Marx. All rights reserved. 2 | # Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | # This file is for internal functions. They are subject to change and should not 5 | # be used by users. 6 | 7 | 8 | #' Used to disable CRW 9 | #' 10 | #' Disable CRW 11 | #' 12 | #' @param samc samc model 13 | #' @noRd 14 | .disable_crw = function(samc) { 15 | if (samc@model$name == "CRW") stop("Metric/parameter combination not currently supported for CRW", call. = FALSE) 16 | } 17 | 18 | #' Used to disable convolution 19 | #' 20 | #' Disable convolution 21 | #' 22 | #' @param samc samc model 23 | #' @noRd 24 | .disable_conv = function(samc) { 25 | if (samc@solver == "conv") stop("Metric/parameter combinaton not currently supported for the convolution algorithm", call. = FALSE) 26 | } 27 | -------------------------------------------------------------------------------- /R/location-class.R: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Andrew Marx. All rights reserved. 2 | # Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | 5 | #' location class 6 | #' 7 | #' Union class for location inputs 8 | #' 9 | #' The location class is a union class of the "numeric" and "character" classes. 10 | #' Users generally do not need to worry about it except to know that any method 11 | #' parameter with "location" as the type can have either an integer or a character 12 | #' name provided as input. 13 | #' 14 | #' @export location 15 | 16 | setClassUnion("location", c("numeric", "matrix", "character")) 17 | -------------------------------------------------------------------------------- /R/rasterize.R: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Andrew Marx. All rights reserved. 2 | # Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #' @include samc-class.R 5 | NULL 6 | 7 | 8 | #' Rasterize input 9 | #' 10 | #' Convert input to a SpatRaster object 11 | #' 12 | #' This function is primarily used to convert an input matrix or raster to a SpatRaster 13 | #' object. The main thing it is useful for is setting a standard extent and CRS for 14 | #' converting matrices. It is used internally by the package to ensure consistent 15 | #' results for the different data types for maps. 16 | #' 17 | #' When converting matrices, the extents are set to match the number of rows and 18 | #' columns of the matrix. Pixels in the result are centered on whole number coordinates 19 | #' with (1,1) corresponding to the bottom left pixel. The CRS is set to "local", which 20 | #' treats it as Euclidean (Cartesian) plane with the units in meters. 21 | #' 22 | #' The main benefit will be for users that want an easy way to plot matrix data. 23 | #' If the input type to the \code{\link{samc}} function is matrices, then the output 24 | #' of \code{\link{map}} will also be matrices. Plotting these matrices can require 25 | #' more work than simply using SpatRaster objects for \code{\link{samc}} and getting 26 | #' SpatRaster results back from \code{\link{map}}. 27 | #' 28 | #' The raster and terra packages both also have a rasterize function that serves 29 | #' a different purpose. If either of these packages are used directly, then the order of 30 | #' package loading becomes very important because it will determine which version 31 | #' of rasterize is used by default. 32 | #' 33 | #' @param x A matrix, RasterLayer, or SpatRaster 34 | # 35 | #' @return A SpatRaster object 36 | #' 37 | #' @example inst/examples/example.R 38 | #' 39 | #' @export 40 | setGeneric( 41 | "rasterize", 42 | function(x) { 43 | standardGeneric("rasterize") 44 | }) 45 | 46 | #' @rdname rasterize 47 | setMethod( 48 | "rasterize", 49 | signature(x = "matrix"), 50 | function(x) { 51 | terra::rast(x, extent = terra::ext(0.5, ncol(x) + 0.5, 0.5, nrow(x) + 0.5), crs = "local") 52 | }) 53 | 54 | #' @rdname rasterize 55 | setMethod( 56 | "rasterize", 57 | signature(x = "RasterLayer"), 58 | function(x) { 59 | terra::rast(x) 60 | }) 61 | 62 | #' @rdname rasterize 63 | setMethod( 64 | "rasterize", 65 | signature(x = "SpatRaster"), 66 | function(x) { 67 | x 68 | }) 69 | -------------------------------------------------------------------------------- /R/zzz.R: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Andrew Marx. All rights reserved. 2 | # Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | # .onLoad <- function(libname, pkgname) { 5 | # assign("samc_env", new.env(parent = emptyenv()), parent.env()) 6 | # } 7 | 8 | .onAttach <- function(libname, pkgname) { 9 | msg = paste("Old code may be affected by breaking changes. Check the package website and release notes for details.") 10 | packageStartupMessage(msg) 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # samc 2 | 3 | [![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/samc)](https://cran.r-project.org/package=samc) 4 | [![metacran downloads](https://cranlogs.r-pkg.org/badges/grand-total/samc)](https://cran.r-project.org/package=samc) 5 | [![Gitter](https://badges.gitter.im/samc-package/community.svg)](https://gitter.im/samc-package/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 6 | 7 | 8 | ## Introduction 9 | 10 | This is an R package that implements functions for working with absorbing Markov chains using theorems described in the book "Finite Markov Chains" by Kemeny and Snell. The design of this package is based on the implementation of these theorems in the framework described by Fletcher et al. in [*Toward a unified framework for connectivity that disentangles movement and mortality in space and time*](https://onlinelibrary.wiley.com/doi/abs/10.1111/ele.13333) (Ecology Letters, 2019; DOI: [10.1111/ele.13333](https://doi.org/10.1111/ele.13333)), which applies them to spatial ecology. Despite the ecological context of the package, these functions can be used in any application of absorbing Markov chains. 11 | 12 | For more information, and recommended installation instructions, most users should visit the main home page at https://andrewmarx.github.io/samc. The remainder of this document is dedicated to installing the package from the source (not recommended). 13 | 14 | 15 | ## Installing From GitHub 16 | 17 | #### Pre v1.0.0 18 | 19 | Specific versions of the package can be installed by using the `ref` parameter. In the case of Fletcher et al. (2019), version 0.1.0 of the package was used. To run the code example in the SI of that paper, you would need to install that specific version of samc using: 20 | 21 | ```R 22 | devtools::install_github("andrewmarx/samc", ref = "0.1.0") 23 | ``` 24 | 25 | #### v1.0.0 and Later 26 | 27 | Version 1.0.0 and newer requires C++ development tools to install from source. The steps required to install the appropriate development tools vary by the operating system and are beyond the scope of this document. Users will have to locate and follow appropriate external documentation to set up the devtools if they wish to install the newest version of the samc package from the source. 28 | 29 | If the devtools are installed and setup correctly, then the latest version of the package can be installed directly from GitHub using the following command: 30 | 31 | ```R 32 | devtools::install_github("andrewmarx/samc") 33 | ``` 34 | 35 | ## Support 36 | 37 | We have a Github discussions page for anything and everything related to the package here: [Github Discussions](https://github.com/andrewmarx/samc/discussions) 38 | -------------------------------------------------------------------------------- /_pkgdown.yml: -------------------------------------------------------------------------------- 1 | template: 2 | bootstrap: 5 3 | bootswatch: cosmo 4 | 5 | navbar: 6 | bg: dark 7 | title: "samc" 8 | left: 9 | - text: "Articles" 10 | menu: 11 | - text: "Overview" 12 | href: articles/overview.html 13 | - text: "Circuit Theory" 14 | href: articles/article-circuit-theory.html 15 | - text: "Computation Methods" 16 | href: articles/article-computation-methods.html 17 | - text: "Models" 18 | href: articles/article-models.html 19 | - text: "Performance" 20 | href: articles/performance.html 21 | - text: "Parallel Computing" 22 | href: articles/parallel.html 23 | - text: "Troubleshooting" 24 | href: articles/troubleshooting.html 25 | - text: "Code Snippets" 26 | href: articles/code-snippets.html 27 | - text: "Data" 28 | menu: 29 | - text: "Disconnected Data" 30 | href: articles/data-disconnected.html 31 | - text: "Tutorials" 32 | menu: 33 | - text: "Basic Tutorial" 34 | href: articles/tutorial-basic.html 35 | - text: "Locations" 36 | href: articles/tutorial-locations.html 37 | - text: "ggplot Visualization" 38 | href: articles/tutorial-ggplot.html 39 | - text: "Temporal Analysis" 40 | href: articles/tutorial-temporal.html 41 | - text: "Animations" 42 | href: articles/tutorial-animations.html 43 | - text: "Multiple Absorption" 44 | href: articles/tutorial-multiple-absorption.html 45 | - text: "Examples" 46 | menu: 47 | - text: "Coin Flip" 48 | href: articles/example-coinflip.html 49 | - text: "Maze (Part 1)" 50 | href: articles/example-maze-part1.html 51 | - text: "Maze (Part 2)" 52 | href: articles/example-maze-part2.html 53 | - text: "Maze (Part 3)" 54 | href: articles/example-maze-part3.html 55 | - text: "Reference" 56 | href: reference/index.html 57 | - text: News 58 | href: news/index.html 59 | right: 60 | - icon: fa-github 61 | href: https://github.com/andrewmarx/samc 62 | 63 | reference: 64 | - title: "Classes" 65 | contents: 66 | - samc-class 67 | - location-class 68 | - title: "Utility Functions" 69 | contents: 70 | - check 71 | - locate 72 | - map 73 | - pairwise 74 | - rasterize 75 | - samc 76 | - title: "Analytical Functions" 77 | contents: 78 | - absorption 79 | - cond_passage 80 | - dispersal 81 | - distribution 82 | - mortality 83 | - survival 84 | - visitation 85 | - visitation_net 86 | - title: "Built-in Data" 87 | contents: 88 | - example_maze 89 | - example_split_corridor 90 | - example_toy_res 91 | -------------------------------------------------------------------------------- /cran-comments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/cran-comments.md -------------------------------------------------------------------------------- /data/example_maze.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/data/example_maze.rda -------------------------------------------------------------------------------- /data/example_split_corridor.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/data/example_split_corridor.rda -------------------------------------------------------------------------------- /data/example_toy_res.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/data/example_toy_res.rda -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-1-2.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-2-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-2-2.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-5-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-5-2.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-2.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-3.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-6-4.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-7-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-7-2.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-8-1.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-8-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-8-2.png -------------------------------------------------------------------------------- /docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-circuit-theory_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/article-models_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-models_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /docs/articles/article-models_files/figure-html/unnamed-chunk-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-models_files/figure-html/unnamed-chunk-1-2.png -------------------------------------------------------------------------------- /docs/articles/article-models_files/figure-html/unnamed-chunk-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-models_files/figure-html/unnamed-chunk-1-3.png -------------------------------------------------------------------------------- /docs/articles/article-models_files/figure-html/unnamed-chunk-1-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-models_files/figure-html/unnamed-chunk-1-4.png -------------------------------------------------------------------------------- /docs/articles/article-models_files/figure-html/unnamed-chunk-1-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-models_files/figure-html/unnamed-chunk-1-5.png -------------------------------------------------------------------------------- /docs/articles/article-models_files/figure-html/unnamed-chunk-1-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/article-models_files/figure-html/unnamed-chunk-1-6.png -------------------------------------------------------------------------------- /docs/articles/code-snippets_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/code-snippets_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/code-snippets_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/data-disconnected_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/data-disconnected_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/data-disconnected_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-coinflip_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-coinflip_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-11-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-12-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-12-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-13-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-13-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-14-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-14-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-15-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-15-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-16-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-16-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-17-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-17-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-18-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-18-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-19-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-19-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-21-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-21-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-22-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-22-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-23-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-23-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-24-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-24-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-8-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part1_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part1_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-3.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-4.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-1-5.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-10-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-10-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-11-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-13-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-13-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-13-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-13-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-14-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-14-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-14-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-14-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-15-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-15-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-17-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-17-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-18-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-18-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-18-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-18-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-19-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-19-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-19-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-19-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-20-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-20-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-21-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-21-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-23-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-23-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-23-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-23-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-24-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-24-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-24-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-24-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-7-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-7-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-8-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-8-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-8-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-9-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part2_files/figure-html/unnamed-chunk-9-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part2_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-3.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-4.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-5.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-6.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-1-7.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-10-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-10-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-11-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-11-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-11-2.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-13-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-13-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/example-maze-part3_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/example-maze-part3_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/img/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/br.png -------------------------------------------------------------------------------- /docs/articles/img/bt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/bt.png -------------------------------------------------------------------------------- /docs/articles/img/btr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/btr.png -------------------------------------------------------------------------------- /docs/articles/img/btt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/btt.png -------------------------------------------------------------------------------- /docs/articles/img/gganimate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/gganimate.gif -------------------------------------------------------------------------------- /docs/articles/img/ggplot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/ggplot1.png -------------------------------------------------------------------------------- /docs/articles/img/ggplot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/ggplot2.png -------------------------------------------------------------------------------- /docs/articles/img/ggplot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/ggplot3.png -------------------------------------------------------------------------------- /docs/articles/img/ggplot4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/ggplot4.png -------------------------------------------------------------------------------- /docs/articles/img/ggplot5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/ggplot5.png -------------------------------------------------------------------------------- /docs/articles/img/gifski.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/img/gifski.gif -------------------------------------------------------------------------------- /docs/articles/overview_files/figure-html/unnamed-chunk-1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/overview_files/figure-html/unnamed-chunk-1-1.png -------------------------------------------------------------------------------- /docs/articles/overview_files/figure-html/unnamed-chunk-1-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/overview_files/figure-html/unnamed-chunk-1-2.png -------------------------------------------------------------------------------- /docs/articles/overview_files/figure-html/unnamed-chunk-1-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/overview_files/figure-html/unnamed-chunk-1-3.png -------------------------------------------------------------------------------- /docs/articles/overview_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/overview_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/overview_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/parallel_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/parallel_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/parallel_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/performance_files/figure-html/fig1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/performance_files/figure-html/fig1-1.png -------------------------------------------------------------------------------- /docs/articles/performance_files/figure-html/fig2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/performance_files/figure-html/fig2-1.png -------------------------------------------------------------------------------- /docs/articles/performance_files/figure-html/fig3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/performance_files/figure-html/fig3-1.png -------------------------------------------------------------------------------- /docs/articles/performance_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/performance_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/performance_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/troubleshooting_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/troubleshooting_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/troubleshooting_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-animations_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-animations_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-animations_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-2-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-2-2.png -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-2-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-2-3.png -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-5-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-5-2.png -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-5-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-basic_files/figure-html/unnamed-chunk-5-3.png -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-basic_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-ggplot_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-ggplot_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-ggplot_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-3-2.png -------------------------------------------------------------------------------- /docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-locations_files/figure-html/unnamed-chunk-4-2.png -------------------------------------------------------------------------------- /docs/articles/tutorial-locations_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-locations_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-locations_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-2-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-multiple-absorption_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-multiple-absorption_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-multiple-absorption_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-multiple-absorption_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-2.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-3.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-4-4.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-2.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-3.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/articles/tutorial-temporal_files/figure-html/unnamed-chunk-5-4.png -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/header-attrs-2.10/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/header-attrs-2.11/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/tutorial-temporal_files/header-attrs-2.14/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/bootstrap-toc.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) 3 | * Copyright 2015 Aidan Feldman 4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ 5 | 6 | /* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */ 7 | 8 | /* All levels of nav */ 9 | nav[data-toggle='toc'] .nav > li > a { 10 | display: block; 11 | padding: 4px 20px; 12 | font-size: 13px; 13 | font-weight: 500; 14 | color: #767676; 15 | } 16 | nav[data-toggle='toc'] .nav > li > a:hover, 17 | nav[data-toggle='toc'] .nav > li > a:focus { 18 | padding-left: 19px; 19 | color: #563d7c; 20 | text-decoration: none; 21 | background-color: transparent; 22 | border-left: 1px solid #563d7c; 23 | } 24 | nav[data-toggle='toc'] .nav > .active > a, 25 | nav[data-toggle='toc'] .nav > .active:hover > a, 26 | nav[data-toggle='toc'] .nav > .active:focus > a { 27 | padding-left: 18px; 28 | font-weight: bold; 29 | color: #563d7c; 30 | background-color: transparent; 31 | border-left: 2px solid #563d7c; 32 | } 33 | 34 | /* Nav: second level (shown on .active) */ 35 | nav[data-toggle='toc'] .nav .nav { 36 | display: none; /* Hide by default, but at >768px, show it */ 37 | padding-bottom: 10px; 38 | } 39 | nav[data-toggle='toc'] .nav .nav > li > a { 40 | padding-top: 1px; 41 | padding-bottom: 1px; 42 | padding-left: 30px; 43 | font-size: 12px; 44 | font-weight: normal; 45 | } 46 | nav[data-toggle='toc'] .nav .nav > li > a:hover, 47 | nav[data-toggle='toc'] .nav .nav > li > a:focus { 48 | padding-left: 29px; 49 | } 50 | nav[data-toggle='toc'] .nav .nav > .active > a, 51 | nav[data-toggle='toc'] .nav .nav > .active:hover > a, 52 | nav[data-toggle='toc'] .nav .nav > .active:focus > a { 53 | padding-left: 28px; 54 | font-weight: 500; 55 | } 56 | 57 | /* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */ 58 | nav[data-toggle='toc'] .nav > .active > ul { 59 | display: block; 60 | } 61 | -------------------------------------------------------------------------------- /docs/deps/Lato-0.4.9/S6uyw4BMUTPHjx4wXg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Lato-0.4.9/S6uyw4BMUTPHjx4wXg.woff2 -------------------------------------------------------------------------------- /docs/deps/Lato-0.4.9/S6uyw4BMUTPHjxAwXjeu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Lato-0.4.9/S6uyw4BMUTPHjxAwXjeu.woff2 -------------------------------------------------------------------------------- /docs/deps/Lato-0.4.9/font.css: -------------------------------------------------------------------------------- 1 | /* latin-ext */ 2 | @font-face { 3 | font-family: 'Lato'; 4 | font-style: normal; 5 | font-weight: 400; 6 | font-display: swap; 7 | src: url(S6uyw4BMUTPHjxAwXjeu.woff2) format('woff2'); 8 | 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; 9 | } 10 | /* latin */ 11 | @font-face { 12 | font-family: 'Lato'; 13 | font-style: normal; 14 | font-weight: 400; 15 | font-display: swap; 16 | src: url(S6uyw4BMUTPHjx4wXg.woff2) format('woff2'); 17 | 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; 18 | } 19 | -------------------------------------------------------------------------------- /docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw0aXpsog.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw0aXpsog.woff2 -------------------------------------------------------------------------------- /docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw2aXpsog.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw2aXpsog.woff2 -------------------------------------------------------------------------------- /docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw3aXpsog.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw3aXpsog.woff2 -------------------------------------------------------------------------------- /docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXo.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXo.woff2 -------------------------------------------------------------------------------- /docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw9aXpsog.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Montserrat-0.4.9/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw9aXpsog.woff2 -------------------------------------------------------------------------------- /docs/deps/Montserrat-0.4.9/font.css: -------------------------------------------------------------------------------- 1 | /* cyrillic-ext */ 2 | @font-face { 3 | font-family: 'Montserrat'; 4 | font-style: normal; 5 | font-weight: 400; 6 | font-display: swap; 7 | src: url(JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw0aXpsog.woff2) format('woff2'); 8 | unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 9 | } 10 | /* cyrillic */ 11 | @font-face { 12 | font-family: 'Montserrat'; 13 | font-style: normal; 14 | font-weight: 400; 15 | font-display: swap; 16 | src: url(JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw9aXpsog.woff2) format('woff2'); 17 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 18 | } 19 | /* vietnamese */ 20 | @font-face { 21 | font-family: 'Montserrat'; 22 | font-style: normal; 23 | font-weight: 400; 24 | font-display: swap; 25 | src: url(JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw2aXpsog.woff2) format('woff2'); 26 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; 27 | } 28 | /* latin-ext */ 29 | @font-face { 30 | font-family: 'Montserrat'; 31 | font-style: normal; 32 | font-weight: 400; 33 | font-display: swap; 34 | src: url(JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw3aXpsog.woff2) format('woff2'); 35 | 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; 36 | } 37 | /* latin */ 38 | @font-face { 39 | font-family: 'Montserrat'; 40 | font-style: normal; 41 | font-weight: 400; 42 | font-display: swap; 43 | src: url(JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXo.woff2) format('woff2'); 44 | 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; 45 | } 46 | -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVI.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4gaVI.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4iaVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4iaVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4jaVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4jaVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4kaVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4kaVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4saVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4saVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4taVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4taVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4uaVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4uaVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4vaVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B4vaVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B5OaVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B5OaVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B5caVIGxA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Open_Sans-0.4.9/memSYaGs126MiZpBA-UvWbX2vVnXBbObj2OVZyOOSr4dVJWUgsjZ0B5caVIGxA.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu4WxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu4mxK.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu4mxK.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu5mxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu72xKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu72xKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu7GxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu7WxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu7mxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/Roboto-0.4.9/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/Roboto-0.4.9/font.css: -------------------------------------------------------------------------------- 1 | /* cyrillic-ext */ 2 | @font-face { 3 | font-family: 'Roboto'; 4 | font-style: normal; 5 | font-weight: 400; 6 | font-display: swap; 7 | src: url(KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); 8 | unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; 9 | } 10 | /* cyrillic */ 11 | @font-face { 12 | font-family: 'Roboto'; 13 | font-style: normal; 14 | font-weight: 400; 15 | font-display: swap; 16 | src: url(KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); 17 | unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 18 | } 19 | /* greek-ext */ 20 | @font-face { 21 | font-family: 'Roboto'; 22 | font-style: normal; 23 | font-weight: 400; 24 | font-display: swap; 25 | src: url(KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); 26 | unicode-range: U+1F00-1FFF; 27 | } 28 | /* greek */ 29 | @font-face { 30 | font-family: 'Roboto'; 31 | font-style: normal; 32 | font-weight: 400; 33 | font-display: swap; 34 | src: url(KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); 35 | unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; 36 | } 37 | /* vietnamese */ 38 | @font-face { 39 | font-family: 'Roboto'; 40 | font-style: normal; 41 | font-weight: 400; 42 | font-display: swap; 43 | src: url(KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); 44 | unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; 45 | } 46 | /* latin-ext */ 47 | @font-face { 48 | font-family: 'Roboto'; 49 | font-style: normal; 50 | font-weight: 400; 51 | font-display: swap; 52 | src: url(KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); 53 | 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; 54 | } 55 | /* latin */ 56 | @font-face { 57 | font-family: 'Roboto'; 58 | font-style: normal; 59 | font-weight: 400; 60 | font-display: swap; 61 | src: url(KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); 62 | 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; 63 | } 64 | -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/07d40e985ad7c747025dabb9f22142c4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/07d40e985ad7c747025dabb9f22142c4.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyC0ITw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCAIT5lu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCIIT5lu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCMIT5lu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/1Ptug8zYS_SKggPNyCkIT5lu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/1f5e011d6aae0d98fc0518e1a303e99a.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcQ72j00.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcg72j00.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKcw72j00.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKew72j00.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKew72j00.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfA72j00.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfw72.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCs6KVjbNBYlgoKfw72.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/626330658504e338ee86aec8e957426b.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/626330658504e338ee86aec8e957426b.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/CSR54z1Qlv-GDxkbKVQ_dFsvWNpeudwk.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fO4KTet_.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/CSR64z1Qlv-GDxkbKVQ_fOAKTQ.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvQlMIXxw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvUlMI.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvXlMIXxw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvYlMIXxw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvZlMIXxw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvalMIXxw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_QiYsKILxRpg3hIP6sJ7fM7PqlONvblMIXxw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vWjMY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMOvWjMY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMevWjMY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlMuvWjMY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlOevWjMY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPevW.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/HI_SiYsKILxRpg3hIP6sJ7fM7PqlPuvWjMY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fBBc4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fBBc4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fBBc4.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfBBc4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu72xKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/QGYpz_kZZAGCONcK2A4bGOj8mNhN.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAUi-qJCY.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAXC-q.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6u8w4BMUTPHjxsAXC-q.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwaPGR_p.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh6UVSwiPGQ.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwaPGR_p.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6u9w4BMUTPHh7USSwiPGQ.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjx4wXg.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjx4wXg.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjxAwXjeu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/S6uyw4BMUTPHjxAwXjeu.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa0ZL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa0ZL7SUc.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1ZL7.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1pL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa1pL7SUc.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa25L7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa25L7SUc.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2JL7SUc.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2ZL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2ZL7SUc.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2pL7SUc.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/UcC73FwrK3iLTeHuS_fvQtMwCp50KnMa2pL7SUc.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIMeaBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIMeaBXso.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofINeaB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofINeaB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIO-aBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIO-aBXso.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOOaBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOOaBXso.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOuaBXso.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/XRXV3I6Li01BKofIOuaBXso.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/c2f002b3a87d3f9bfeebb23d32cfd9f8.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/ee91700cdbf7ce16c054c2bb8946c736.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfuQltOxU.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfuQltOxU.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfvQlt.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/bootstrap-5.3.1/fonts/q5uGsou0JOdh94bfvQlt.woff2 -------------------------------------------------------------------------------- /docs/deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/) 3 | * Copyright 2015 Aidan Feldman 4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ 5 | !function(a){"use strict";window.Toc={helpers:{findOrFilter:function(e,t){var n=e.find(t);return e.filter(t).add(n).filter(":not([data-toc-skip])")},generateUniqueIdBase:function(e){return a(e).text().trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,64).replace(/^-+|-+$/gm,"").toLowerCase()||e.tagName.toLowerCase()},generateUniqueId:function(e){for(var t=this.generateUniqueIdBase(e),n=0;;n++){var r=t;if(0')},createChildNavList:function(e){var t=this.createNavList();return e.append(t),t},generateNavEl:function(e,t){var n=a('');n.attr("href","#"+e),n.text(t);var r=a("
  • ");return r.append(n),r},generateNavItem:function(e){var t=this.generateAnchor(e),n=a(e),r=n.data("toc-text")||n.text();return this.generateNavEl(t,r)},getTopLevel:function(e){for(var t=1;t<=6;t++){if(1 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /docs/deps/headroom-0.11.0/jQuery.headroom.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it 3 | * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js 4 | * License: MIT 5 | */ 6 | 7 | !function(a){a&&(a.fn.headroom=function(b){return this.each(function(){var c=a(this),d=c.data("headroom"),e="object"==typeof b&&b;e=a.extend(!0,{},Headroom.options,e),d||(d=new Headroom(this,e),d.init(),c.data("headroom",d)),"string"==typeof b&&(d[b](),"destroy"===b&&c.removeData("headroom"))})},a("[data-headroom]").each(function(){var b=a(this);b.headroom(b.data())}))}(window.Zepto||window.jQuery); -------------------------------------------------------------------------------- /docs/docsearch.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | // register a handler to move the focus to the search bar 4 | // upon pressing shift + "/" (i.e. "?") 5 | $(document).on('keydown', function(e) { 6 | if (e.shiftKey && e.keyCode == 191) { 7 | e.preventDefault(); 8 | $("#search-input").focus(); 9 | } 10 | }); 11 | 12 | $(document).ready(function() { 13 | // do keyword highlighting 14 | /* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */ 15 | var mark = function() { 16 | 17 | var referrer = document.URL ; 18 | var paramKey = "q" ; 19 | 20 | if (referrer.indexOf("?") !== -1) { 21 | var qs = referrer.substr(referrer.indexOf('?') + 1); 22 | var qs_noanchor = qs.split('#')[0]; 23 | var qsa = qs_noanchor.split('&'); 24 | var keyword = ""; 25 | 26 | for (var i = 0; i < qsa.length; i++) { 27 | var currentParam = qsa[i].split('='); 28 | 29 | if (currentParam.length !== 2) { 30 | continue; 31 | } 32 | 33 | if (currentParam[0] == paramKey) { 34 | keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20")); 35 | } 36 | } 37 | 38 | if (keyword !== "") { 39 | $(".contents").unmark({ 40 | done: function() { 41 | $(".contents").mark(keyword); 42 | } 43 | }); 44 | } 45 | } 46 | }; 47 | 48 | mark(); 49 | }); 50 | }); 51 | 52 | /* Search term highlighting ------------------------------*/ 53 | 54 | function matchedWords(hit) { 55 | var words = []; 56 | 57 | var hierarchy = hit._highlightResult.hierarchy; 58 | // loop to fetch from lvl0, lvl1, etc. 59 | for (var idx in hierarchy) { 60 | words = words.concat(hierarchy[idx].matchedWords); 61 | } 62 | 63 | var content = hit._highlightResult.content; 64 | if (content) { 65 | words = words.concat(content.matchedWords); 66 | } 67 | 68 | // return unique words 69 | var words_uniq = [...new Set(words)]; 70 | return words_uniq; 71 | } 72 | 73 | function updateHitURL(hit) { 74 | 75 | var words = matchedWords(hit); 76 | var url = ""; 77 | 78 | if (hit.anchor) { 79 | url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor; 80 | } else { 81 | url = hit.url + '?q=' + escape(words.join(" ")); 82 | } 83 | 84 | return url; 85 | } 86 | -------------------------------------------------------------------------------- /docs/katex-auto.js: -------------------------------------------------------------------------------- 1 | // https://github.com/jgm/pandoc/blob/29fa97ab96b8e2d62d48326e1b949a71dc41f47a/src/Text/Pandoc/Writers/HTML.hs#L332-L345 2 | document.addEventListener("DOMContentLoaded", function () { 3 | var mathElements = document.getElementsByClassName("math"); 4 | var macros = []; 5 | for (var i = 0; i < mathElements.length; i++) { 6 | var texText = mathElements[i].firstChild; 7 | if (mathElements[i].tagName == "SPAN") { 8 | katex.render(texText.data, mathElements[i], { 9 | displayMode: mathElements[i].classList.contains("display"), 10 | throwOnError: false, 11 | macros: macros, 12 | fleqn: false 13 | }); 14 | }}}); 15 | -------------------------------------------------------------------------------- /docs/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /docs/pkgdown.yml: -------------------------------------------------------------------------------- 1 | pandoc: '3.5' 2 | pkgdown: 2.1.1 3 | pkgdown_sha: ~ 4 | articles: 5 | article-circuit-theory: article-circuit-theory.html 6 | article-computation-methods: article-computation-methods.html 7 | article-models: article-models.html 8 | code-snippets: code-snippets.html 9 | data-disconnected: data-disconnected.html 10 | example-coinflip: example-coinflip.html 11 | example-maze-part1: example-maze-part1.html 12 | example-maze-part2: example-maze-part2.html 13 | example-maze-part3: example-maze-part3.html 14 | overview: overview.html 15 | parallel: parallel.html 16 | performance: performance.html 17 | troubleshooting: troubleshooting.html 18 | tutorial-animations: tutorial-animations.html 19 | tutorial-basic: tutorial-basic.html 20 | tutorial-ggplot: tutorial-ggplot.html 21 | tutorial-locations: tutorial-locations.html 22 | tutorial-multiple-absorption: tutorial-multiple-absorption.html 23 | tutorial-temporal: tutorial-temporal.html 24 | last_built: 2024-10-31T01:58Z 25 | -------------------------------------------------------------------------------- /docs/reference/Rplot001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/reference/Rplot001.png -------------------------------------------------------------------------------- /docs/reference/figures/3d-stack-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/reference/figures/3d-stack-small.png -------------------------------------------------------------------------------- /docs/reference/figures/3d-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/reference/figures/3d-stack.png -------------------------------------------------------------------------------- /docs/reference/locate-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/docs/reference/locate-1.png -------------------------------------------------------------------------------- /inst/CITATION: -------------------------------------------------------------------------------- 1 | citation(auto = meta) 2 | 3 | bibentry( 4 | bibtype = "Article", 5 | title = "samc: an R package for connectivity modeling with spatial absorbing Markov chains", 6 | author = c(person(c("Andrew", "J."), "Marx"), 7 | person(c("Chao"), "Wang"), 8 | person(c("Jorge", "A."), "Sefair"), 9 | person(c("Miguel", "A."), "Acevedo"), 10 | person(c("Robert", "J."), "Fletcher Jr.")), 11 | journal = "Ecography", 12 | year = "2020", 13 | volume = "43", 14 | number = "4", 15 | pages = "518-527", 16 | url = "https://onlinelibrary.wiley.com/doi/abs/10.1111/ecog.04891" 17 | ) 18 | -------------------------------------------------------------------------------- /inst/examples/example.R: -------------------------------------------------------------------------------- 1 | # "Load" the data. In this case we are using data built into the package. 2 | # In practice, users will likely load raster data using the raster() function 3 | # from the raster package. 4 | res_data <- samc::example_split_corridor$res 5 | abs_data <- samc::example_split_corridor$abs 6 | init_data <- samc::example_split_corridor$init 7 | 8 | 9 | # Make sure our data meets the basic input requirements of the package using 10 | # the check() function. 11 | check(res_data, abs_data) 12 | check(res_data, init_data) 13 | 14 | # Setup the details for a random-walk model 15 | rw_model <- list(fun = function(x) 1/mean(x), # Function for calculating transition probabilities 16 | dir = 8, # Directions of the transitions. Either 4 or 8. 17 | sym = TRUE) # Is the function symmetric? 18 | 19 | 20 | # Create a `samc-class` object with the resistance and absorption data using 21 | # the samc() function. We use the recipricol of the arithmetic mean for 22 | # calculating the transition matrix. Note, the input data here are matrices, 23 | # not RasterLayers. 24 | samc_obj <- samc(res_data, abs_data, model = rw_model) 25 | 26 | 27 | # Convert the initial state data to probabilities 28 | init_prob_data <- init_data / sum(init_data, na.rm = TRUE) 29 | 30 | 31 | # Calculate short- and long-term metrics using the analytical functions 32 | short_mort <- mortality(samc_obj, init_prob_data, time = 50) 33 | short_dist <- distribution(samc_obj, origin = 3, time = 50) 34 | long_disp <- dispersal(samc_obj, init_prob_data) 35 | visit <- visitation(samc_obj, dest = 4) 36 | surv <- survival(samc_obj) 37 | 38 | 39 | # Use the map() function to turn vector results into RasterLayer objects. 40 | short_mort_map <- map(samc_obj, short_mort) 41 | short_dist_map <- map(samc_obj, short_dist) 42 | long_disp_map <- map(samc_obj, long_disp) 43 | visit_map <- map(samc_obj, visit) 44 | surv_map <- map(samc_obj, surv) 45 | -------------------------------------------------------------------------------- /inst/examples/locate.R: -------------------------------------------------------------------------------- 1 | library(terra) 2 | library(samc) 3 | 4 | 5 | # Load example data 6 | res_data <- samc::example_split_corridor$res 7 | abs_data <- samc::example_split_corridor$abs 8 | 9 | 10 | # Create samc-class object 11 | samc_obj <- samc(res_data, abs_data, 12 | model = list(fun = function(x) 1/mean(x), dir = 8, sym = TRUE)) 13 | 14 | 15 | # We can use locate() to return an object with the cell numbers encoded as data 16 | # in the cells 17 | cell_raster <- locate(samc_obj) 18 | print(cell_raster) 19 | 20 | # We can use a variety of spatial inputs to get cell numbers using locate() 21 | # The simplest is a two-column data.frame 22 | coords <- data.frame(x = c(50, 79, 22), 23 | y = c(25, 11, 19)) 24 | print(coords) 25 | locate(samc_obj, coords) 26 | 27 | # You will get an error if you input a coordinate that does not correspond 28 | # to a non-NA cell 29 | coords <- data.frame(x = c(1), 30 | y = c(1)) 31 | print(coords) 32 | try(locate(samc_obj, coords)) 33 | -------------------------------------------------------------------------------- /inst/examples/pairwise.R: -------------------------------------------------------------------------------- 1 | library(samc) 2 | 3 | # Load example data 4 | res_data <- samc::example_split_corridor$res 5 | abs_data <- samc::example_split_corridor$abs 6 | 7 | 8 | # Create samc-class object 9 | samc_obj <- samc(res_data, abs_data, 10 | model = list(fun = function(x) 1/mean(x), dir = 8, sym = TRUE)) 11 | 12 | # pairwise() example 13 | pw <- pairwise(cond_passage, samc_obj, origin = 1:4, dest = 5) 14 | print(pw) 15 | 16 | # pairwise() example without dest 17 | pw <- pairwise(dispersal, samc_obj, origin = c(2, 7)) 18 | print(pw) 19 | 20 | 21 | -------------------------------------------------------------------------------- /man-roxygen/param-dest.R: -------------------------------------------------------------------------------- 1 | #' @param dest A positive integer or character name representing transient state 2 | #' \eqn{\mathit{j}}. Corresponds to column \eqn{\mathit{j}} of matrix \eqn{\mathbf{P}} 3 | #' in the \code{\link{samc-class}} object. When paired with the \code{origin} parameter, 4 | #' multiple values may be provided as a vector. 5 | -------------------------------------------------------------------------------- /man-roxygen/param-init.R: -------------------------------------------------------------------------------- 1 | #' @param init Sets the initial state \eqn{\psi} of the transients states. Input 2 | #' must be able to pass the \code{\link{check}} function when compared against 3 | #' the \code{\link{samc-class}} object. Can only contain positive finite values. 4 | #' 5 | -------------------------------------------------------------------------------- /man-roxygen/param-origin.R: -------------------------------------------------------------------------------- 1 | #' @param origin A positive integer or character name representing transient state 2 | #' \eqn{\mathit{i}}. Corresponds to row \eqn{\mathit{i}} of matrix \eqn{\mathbf{P}} 3 | #' in the \code{\link{samc-class}} object. When paired with the \code{dest} 4 | #' parameter, multiple values may be provided as a vector. 5 | -------------------------------------------------------------------------------- /man-roxygen/param-samc.R: -------------------------------------------------------------------------------- 1 | #' @param samc A \code{\link{samc-class}} object created using the \code{\link{samc}} function. 2 | -------------------------------------------------------------------------------- /man-roxygen/param-time.R: -------------------------------------------------------------------------------- 1 | #' @param time A positive integer or a vector of positive integers representing 2 | #' \eqn{\mathit{t}} time steps. Vectors must be ordered and contain no duplicates. 3 | #' Vectors may not be used for metrics that return dense matrices. The maximum time 4 | #' step value is capped at 10,000 due to numerical precision issues. 5 | -------------------------------------------------------------------------------- /man-roxygen/section-perf.R: -------------------------------------------------------------------------------- 1 | #' @section Performance: 2 | #' 3 | #' Any relevant performance information about this function can be found in the 4 | #' performance vignette: \href{../doc/performance.html}{\code{vignette("performance", package = "samc")}} 5 | -------------------------------------------------------------------------------- /man/figures/3d-stack-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/man/figures/3d-stack-small.png -------------------------------------------------------------------------------- /man/figures/3d-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/man/figures/3d-stack.png -------------------------------------------------------------------------------- /samc.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | 18 | BuildType: Package 19 | PackageUseDevtools: Yes 20 | PackageInstallArgs: --no-multiarch --with-keep.source 21 | -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.so 3 | *.dll 4 | -------------------------------------------------------------------------------- /src/Makevars: -------------------------------------------------------------------------------- 1 | ## Sets -latomic/-lpthread if required by the system. 2 | PKG_LIBS = `"$(R_HOME)/bin/Rscript" -e "RcppThread::LdFlags()"` 3 | 4 | ## With R 3.1.0 or later, you can uncomment the following line to tell R to 5 | ## enable compilation with C++11 (or even C++14) where available 6 | CXX_STD = CXX17 7 | -------------------------------------------------------------------------------- /src/Makevars.win: -------------------------------------------------------------------------------- 1 | ## With Rcpp 0.11.0 and later, we no longer need to set PKG_LIBS as there is 2 | ## no user-facing library. The include path to headers is already set by R. 3 | #PKG_LIBS = 4 | 5 | ## With R 3.1.0 or later, you can uncomment the following line to tell R to 6 | ## enable compilation with C++11 (or even C++14) where available 7 | CXX_STD = CXX17 8 | -------------------------------------------------------------------------------- /src/cond_passage.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #include 5 | #include 6 | 7 | // [[Rcpp::export(".cond_t")]] 8 | Rcpp::List cond_t(const Eigen::Map > &IQ, 9 | const Eigen::VectorXd &qj) 10 | { 11 | Eigen::SparseLU > solver; 12 | 13 | solver.compute(IQ); 14 | if(solver.info() != Eigen::Success) { 15 | Rcpp::stop("Decomposition failed in cond_t"); 16 | } 17 | 18 | Eigen::VectorXd b = solver.solve(qj); 19 | if(solver.info() != Eigen::Success) { 20 | Rcpp::stop("Solver failed in cond_t (1)"); 21 | } 22 | 23 | Eigen::VectorXd fb = solver.solve(b); 24 | if(solver.info() != Eigen::Success) { 25 | Rcpp::stop("Solver failed in cond_t (2)"); 26 | } 27 | 28 | Rcpp::List res = Rcpp::List::create(Rcpp::Named("b") = b, Rcpp::Named("fb") = fb); 29 | 30 | return res; 31 | } 32 | 33 | // [[Rcpp::export(".cond_t_iter")]] 34 | Rcpp::List cond_t_iter(const Eigen::Map > &IQ, 35 | const Eigen::VectorXd &qj) 36 | { 37 | Eigen::BiCGSTAB, Eigen::IncompleteLUT > solver; 38 | 39 | solver.compute(IQ); 40 | if(solver.info() != Eigen::Success) { 41 | Rcpp::stop("Decomposition failed in cond_t_iter"); 42 | } 43 | 44 | Eigen::VectorXd b = solver.solve(qj); 45 | if(solver.info() != Eigen::Success) { 46 | Rcpp::stop("Solver failed in cond_t_iter (1)"); 47 | } 48 | 49 | Eigen::VectorXd fb = solver.solve(b); 50 | if(solver.info() != Eigen::Success) { 51 | Rcpp::stop("Solver failed in cond_t_iter (2)"); 52 | } 53 | 54 | Rcpp::List res = Rcpp::List::create(Rcpp::Named("b") = b, Rcpp::Named("fb") = fb); 55 | 56 | return res; 57 | } 58 | -------------------------------------------------------------------------------- /src/constants.h: -------------------------------------------------------------------------------- 1 | // constants.h 2 | #ifndef CONSTANTS_H 3 | #define CONSTANTS_H 4 | 5 | const int INTERRUPT_CHECK_INTERVAL = 1000; 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /src/convolution.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under GPLv3.0. See LICENSE file in the project root for details. 3 | // 4 | // Derived from https://github.com/LandSciTech/LSTDConnect/blob/8927cac418454bb7910be8f832dffb9b62b34223/inst/include/samc.h 5 | // Which was licensed under GPLv3.0 at the time of use 6 | 7 | #ifndef __CONVOLUTION_H__ 8 | #define __CONVOLUTION_H__ 9 | 10 | #include 11 | 12 | template 13 | struct kernel_point_t{ 14 | std::ptrdiff_t x_off; 15 | std::ptrdiff_t y_off; 16 | T num = 1; 17 | }; 18 | 19 | template 20 | struct convolution_cache{ 21 | std::size_t ncol; 22 | std::size_t nrow; 23 | std::size_t cell_count; 24 | std::size_t kernel_size; 25 | std::size_t left_extra_cols; 26 | std::size_t right_extra_cols; 27 | std::vector movement_rate; /* size should be ncol*nrow*kernel_size */ 28 | std::vector absorption; /* size should be ncol*nrow or empty*/ 29 | std::vector kernel; /* a list of offsets from a given point to all of the places that it needs to look in the list of points */ 30 | }; 31 | 32 | #endif /* __CONVOLUTION_H__ */ 33 | -------------------------------------------------------------------------------- /src/distribution.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #include 5 | #include 6 | 7 | #include "constants.h" 8 | 9 | // [[Rcpp::export(".qpow_row")]] 10 | Rcpp::List qpow_row(const Eigen::Map > &M, 11 | const Eigen::Map &vec, 12 | const Rcpp::NumericVector &t) 13 | { 14 | int n = t.size(); 15 | 16 | Rcpp::List res(n - 1); 17 | 18 | Eigen::RowVectorXd time_res = vec; 19 | 20 | for(int i = 1; i < n; i++) { 21 | int t_start = t[i - 1]; 22 | int t_end = t[i]; 23 | 24 | for (int j = t_start; j < t_end; j++) { 25 | if(j % INTERRUPT_CHECK_INTERVAL == 0) { 26 | Rcpp::checkUserInterrupt(); 27 | } 28 | 29 | time_res = time_res * M; 30 | } 31 | 32 | res[i - 1] = Rcpp::wrap(time_res); 33 | } 34 | 35 | return res; 36 | } 37 | 38 | // [[Rcpp::export(".qpow_col")]] 39 | Rcpp::List qpow_col(const Eigen::Map > &M, 40 | const Eigen::Map &vec, 41 | const Rcpp::NumericVector &t) 42 | { 43 | int n = t.size(); 44 | 45 | Rcpp::List res(n - 1); 46 | 47 | Eigen::VectorXd time_res = M * vec; 48 | 49 | for(int i = 1; i < n; i++) { 50 | int t_start = t[i - 1]; 51 | int t_end = t[i]; 52 | 53 | for (int j = t_start; j < t_end; j++) { 54 | if(j % INTERRUPT_CHECK_INTERVAL == 0) { 55 | Rcpp::checkUserInterrupt(); 56 | } 57 | 58 | time_res = M * time_res; 59 | } 60 | 61 | res[i - 1] = Rcpp::wrap(time_res); 62 | } 63 | 64 | return res; 65 | } 66 | -------------------------------------------------------------------------------- /src/mortality.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #include 5 | #include 6 | 7 | #include "solver-cache.h" 8 | #include "constants.h" 9 | 10 | // [[Rcpp::export(".sum_qpowrv")]] 11 | Rcpp::List sum_qpowrv(const Eigen::Map > &M, 12 | const Eigen::Map &rv, 13 | const Rcpp::NumericVector &t) 14 | { 15 | int n = t.size(); 16 | 17 | Rcpp::List res(n - 1); 18 | 19 | Eigen::VectorXd qrv = rv; 20 | Eigen::VectorXd time_res = qrv; 21 | 22 | for(int i = 1; i < n; i++) { 23 | int t_start = t[i - 1]; 24 | int t_end = t[i]; 25 | 26 | for (int j = t_start; j < t_end; j++) { 27 | if(j % INTERRUPT_CHECK_INTERVAL == 0) { 28 | Rcpp::checkUserInterrupt(); 29 | } 30 | 31 | qrv = M * qrv; 32 | time_res += qrv; 33 | } 34 | 35 | res[i - 1] = Rcpp::wrap(time_res); 36 | } 37 | 38 | return res; 39 | } 40 | -------------------------------------------------------------------------------- /src/samc_types.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #ifndef SAMC_TYPES_H 5 | #define SAMC_TYPES_H 6 | 7 | #include "solver-cache.h" 8 | #include "convolution.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/solver-cache.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #include 5 | #include 6 | 7 | #include "solver-cache.h" 8 | 9 | // [[Rcpp::export(".solver_cache")]] 10 | Rcpp::XPtr solver_cache() 11 | { 12 | SolverCache* sc = new SolverCache(); 13 | Rcpp::XPtr ptr(sc, true); 14 | return ptr; 15 | } 16 | 17 | void SolverCache::buildSolver(const Eigen::SparseMatrix &M, 18 | const std::string &fun) 19 | { 20 | if (name != fun) { 21 | m_solver.compute(M); 22 | if (m_solver.info() != Eigen::Success) { 23 | Rcpp::stop("Solver failed in buildSolver"); 24 | } 25 | 26 | name = fun; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/solver-cache.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #ifndef SOLVERCACHE_H 5 | #define SOLVERCACHE_H 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | class SolverCache { 12 | typedef Eigen::SparseLU > Solver; 13 | 14 | Solver m_solver; 15 | std::string name; 16 | 17 | public: 18 | SolverCache() : name("") { } 19 | void buildSolver(const Eigen::SparseMatrix &M, const std::string &fun); 20 | Solver& solver() { return m_solver; } 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /src/survival.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2024 Andrew Marx where applicable. 2 | // Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | #include 5 | #include 6 | 7 | #include "solver-cache.h" 8 | 9 | // [[Rcpp::export(".f1")]] 10 | Rcpp::NumericVector f1(const Eigen::Map > &M, 11 | Rcpp::XPtr &SC) 12 | { 13 | Eigen::VectorXd one(M.rows()); 14 | one.fill(1.0); 15 | 16 | SC->buildSolver(M, "m"); 17 | 18 | Eigen::VectorXd res = SC->solver().solve(one); 19 | if(SC->solver().info() != Eigen::Success) { 20 | Rcpp::stop("Solver failed in f1"); 21 | } 22 | 23 | return Rcpp::wrap(res); 24 | } 25 | 26 | // [[Rcpp::export(".f1_iter")]] 27 | Rcpp::NumericVector f1_iter(const Eigen::Map > &M) 28 | { 29 | Eigen::VectorXd one(M.rows()); 30 | one.fill(1.0); 31 | 32 | Eigen::BiCGSTAB, Eigen::IncompleteLUT > solver; 33 | 34 | solver.compute(M); 35 | if(solver.info() != Eigen::Success) { 36 | Rcpp::stop("Decomposition failed in f1_iter"); 37 | } 38 | 39 | Eigen::VectorXd res = solver.solve(one); 40 | if(solver.info() != Eigen::Success) { 41 | Rcpp::stop("Solver failed in f1_iter"); 42 | } 43 | 44 | return Rcpp::wrap(res); 45 | } 46 | -------------------------------------------------------------------------------- /tests/testthat.R: -------------------------------------------------------------------------------- 1 | library(testthat) 2 | library(samc) 3 | 4 | test_check("samc") 5 | -------------------------------------------------------------------------------- /tests/testthat/test-cond_passage.R: -------------------------------------------------------------------------------- 1 | context("Conditional Passage Time") 2 | 3 | br_function <- function(samc, col) { 4 | # Calculate the results based on De Sanctis and de Koning 2018 5 | Q <- samc$q_matrix 6 | Q <- as.matrix(Q) 7 | 8 | qj <- Q[-col, col] 9 | Qj <- Q[-col, -col] 10 | 11 | I <- diag(nrow(Qj)) 12 | 13 | r <- samc@data@t_abs 14 | r <- r[-col] 15 | 16 | R <- cbind(r, qj) 17 | 18 | f <- solve(I - Qj) 19 | 20 | b <- as.matrix(f %*% R) 21 | bdg <- Matrix::sparseMatrix(i = 1:nrow(b), 22 | j = 1:nrow(b), 23 | x = b[, 2], 24 | index1 = TRUE) 25 | 26 | bdg <- as.matrix(bdg) 27 | 28 | res <- solve(bdg) %*% f %*% bdg %*% rep(1, nrow(bdg)) 29 | return(as.numeric(res)) 30 | } 31 | 32 | test_num = 0 33 | for(test in testlist) { 34 | test_num = test_num + 1 35 | 36 | # TODO cond_passage does not work in all cases yet. Remove this when it does 37 | if (!(test$id %in% c(1, 2))) next 38 | 39 | # Create the samc object 40 | samc_obj <- test$samc 41 | 42 | # Create a version from P matrix 43 | samc_p <- samc(samc_obj$p_matrix) 44 | samc_p@clumps = samc_obj@clumps # TODO: remove when creation of samc object from P matrix calculates clumps 45 | 46 | 47 | # Run the tests 48 | test_that(paste("Testing cond_passage(samc, dest):", test_num), { 49 | 50 | base_result <- br_function(samc_obj, col_vec[1]) 51 | 52 | r1 <- cond_passage(samc_p, dest = col_vec[1]) 53 | r2 <- cond_passage(samc_p, dest = as.character(col_vec[1])) 54 | 55 | r1 <- r1[-col_vec[1]] 56 | r2 <- r2[-col_vec[1]] 57 | 58 | # Verify 59 | expect_equal(dim(r1), dim(base_result)) 60 | expect_equal(as.vector(r1), as.vector(base_result)) 61 | expect_equal(r1, r2) 62 | }) 63 | 64 | test_that(paste("Testing cond_passage(samc, origin, dest)", test_num), { 65 | vector_result <- cond_passage(samc_p, origin = row_vec, dest = col_vec) 66 | vector_result_char <- cond_passage(samc_p, origin = as.character(row_vec), dest = as.character(col_vec)) 67 | 68 | expect_equal(vector_result, vector_result_char) 69 | 70 | for (i in 1:length(row_vec)) { 71 | base_result <- cond_passage(samc_obj, dest = col_vec[i]) 72 | 73 | r <- cond_passage(samc_p, origin = row_vec[i], dest = col_vec[i]) 74 | 75 | expect_equal(r, unname(base_result[row_vec[i]])) 76 | expect_equal(vector_result[i], r) 77 | } 78 | }) 79 | } 80 | -------------------------------------------------------------------------------- /tests/testthat/test-conv.R: -------------------------------------------------------------------------------- 1 | context("Convolution") 2 | 3 | 4 | conv_samc = samc(testlist[[1]]$res, 5 | pmax(testlist[[1]]$abs, 0.00001), 6 | testlist[[1]]$fid, 7 | model = list(fun = "1/mean(x)", dir = 8, sym = TRUE), 8 | options = list(threads = 1, 9 | method = "conv", 10 | override = FALSE)) 11 | 12 | samc_obj = samc(testlist[[1]]$res, 13 | pmax(testlist[[1]]$abs, 0.00001), 14 | testlist[[1]]$fid, 15 | model = list(fun = function(x) 1/mean(x), dir = 8, sym = TRUE)) 16 | 17 | 18 | test_that("Convolution short-term distribution()", { 19 | r1 = distribution(samc_obj, testlist[[1]]$init, time = time) 20 | r2 = distribution(conv_samc, testlist[[1]]$init, time = time) 21 | 22 | expect_equal(r1, r2) 23 | }) 24 | 25 | test_that("Convolution short-term mortality()", { 26 | r1 = mortality(samc_obj, testlist[[1]]$init, time = time) 27 | r2 = mortality(conv_samc, testlist[[1]]$init, time = time) 28 | 29 | expect_equal(r1, r2) 30 | }) 31 | 32 | test_that("Convolution short-term visitation()", { 33 | r1 = as.vector(visitation(samc_obj, testlist[[1]]$init, time = time)) 34 | r2 = visitation(conv_samc, testlist[[1]]$init, time = time) 35 | 36 | expect_equal(r1, r2) 37 | }) 38 | 39 | test_that("Convolution long-term mortality()", { 40 | r1 = mortality(samc_obj, testlist[[1]]$init) 41 | r2 = mortality(conv_samc, testlist[[1]]$init) 42 | 43 | expect_equal(r1, r2) 44 | }) 45 | 46 | test_that("Convolution long-term visitation()", { 47 | r1 = as.vector(visitation(samc_obj, testlist[[1]]$init)) 48 | r2 = visitation(conv_samc, testlist[[1]]$init) 49 | 50 | expect_equal(r1, r2) 51 | }) 52 | -------------------------------------------------------------------------------- /tests/testthat/test-samc.R: -------------------------------------------------------------------------------- 1 | context("SAMC test") 2 | 3 | 4 | test_that("samc p matrix row sums equal 1 without fidelity data", { 5 | 6 | # Create the samc object and get the row sums of the p matrix 7 | samc_obj <- samc(testlist[[1]]$res, testlist[[1]]$abs, model = list(fun = function(x) 1/mean(x), dir = 8, sym = TRUE)) 8 | rs <- Matrix::rowSums(samc_obj$p_matrix) 9 | 10 | # Create a vector of the expected result based on the number of non-NA cells 11 | # in the original data and an extra entry for the last row of the p matrix 12 | length <- sum(!is.na(as.vector(testlist[[1]]$res))) 13 | v <- numeric(length + 1) 14 | v[] <- 1 15 | 16 | # Verify equality 17 | expect_equal(rs, v, check.names = FALSE) 18 | }) 19 | 20 | test_that("samc p matrix row sums equal 1 with fidelity data", { 21 | 22 | # Create the samc object and get the row sums of the p matrix 23 | samc_obj <- samc(testlist[[1]]$res, testlist[[1]]$abs, testlist[[1]]$fid, model = list(fun = function(x) 1/mean(x), dir = 8, sym = TRUE)) 24 | rs <- Matrix::rowSums(samc_obj$p_matrix) 25 | 26 | # Create a vector of the expected result based on the number of non-NA cells 27 | # in the original data and an extra entry for the last row of the p matrix 28 | length <- sum(!is.na(as.vector(testlist[[1]]$res))) 29 | v <- numeric(length + 1) 30 | v[] <- 1 31 | 32 | # Verify equality 33 | expect_equal(rs, v, check.names = FALSE) 34 | }) 35 | -------------------------------------------------------------------------------- /tests/testthat/test-survival.R: -------------------------------------------------------------------------------- 1 | context("Survival") 2 | 3 | for(test in testlist) { 4 | # Create the samc object 5 | samc_obj <- test$samc 6 | 7 | # Extract Q 8 | Q <- samc_obj$q_matrix 9 | Q <- as.matrix(Q) 10 | 11 | # Create an indentity matrix 12 | I <- diag(nrow(Q)) 13 | 14 | # Fundamental matrix 15 | F_mat <- solve(I - Q) 16 | 17 | # Prepare the occupancy data 18 | occ_ras <- raster::raster(test$init) 19 | pv <- as.vector(occ_ras) 20 | pv <- pv[is.finite(pv)] 21 | 22 | 23 | # Run the tests 24 | test_that("Testing survival(samc)", { 25 | 26 | r1 <- survival(samc_obj) 27 | 28 | v1 <- numeric(nrow(Q)) 29 | v1[] <- 1 30 | 31 | r2 <- F_mat %*% v1 32 | 33 | # Verify equality 34 | expect_equal(as.vector(r1), as.vector(r2)) 35 | }) 36 | 37 | test_that("Testing survival(samc, init)", { 38 | # Calculate psi*z using survival(samc, init) 39 | r1 <- survival(samc_obj, test$init) 40 | 41 | v1 <- numeric(nrow(Q)) 42 | v1[] <- 1 43 | 44 | r2 <- pv %*% F_mat %*% v1 45 | 46 | # Verify equality 47 | expect_equal(as.vector(r1), as.vector(r2)) 48 | }) 49 | } 50 | -------------------------------------------------------------------------------- /vignettes/article-models.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Models" 3 | author: "Andrew Marx" 4 | date: "`r Sys.Date()`" 5 | license: "CC BY-NC-SA 4.0" 6 | output: rmarkdown::html_vignette 7 | vignette: > 8 | %\VignetteIndexEntry{Models} 9 | %\VignetteEngine{knitr::rmarkdown} 10 | %\VignetteEncoding{UTF-8} 11 | --- 12 | 13 | ```{r setup, include = FALSE} 14 | knitr::opts_chunk$set( 15 | collapse = TRUE, 16 | comment = "#>" 17 | ) 18 | ``` 19 | 20 | ## Background 21 | 22 | The samc package currently supports a random-walk (RW) model. The random-walk is the default model that always has been used by the package. Version 3 made breaking changes to the samc() function to setup a structure for specifying different models, with plans for a correlated random-walk model in the future. 23 | 24 | ## Models 25 | 26 | Models in the samc package are defined as a list with various components depending on the context: 27 | 28 | ``` 29 | list(name, fun, dir, sym) 30 | ``` 31 | 32 | ### Random-Walk 33 | 34 | The basic random-walk is the default model used by the package and uses the following properties: 35 | 36 | - `name`: can be omitted or set to `"RW"` 37 | - `fun`: a function for calculating transition probabilities from the data input. The convolution algorithm does not allow for custom functions, so this should be omitted in that context. 38 | - `dir` can be either `4` or `8` 39 | - `sym` can be either `TRUE` or `FALSE`, and is used as an optimization when calculating transition probabilities. 40 | 41 | 42 | ## Examples 43 | 44 | ```{r, message = FALSE, fig.show='hold', fig.width=5, fig.height=3, fig.align='center'} 45 | library("terra") 46 | library("samc") 47 | library("viridisLite") 48 | 49 | res_data <- samc::rasterize(example_toy_res) 50 | abs_data <- samc::rasterize(example_toy_res * 0 + 0.05) 51 | 52 | plot(res_data, main = "Resistance") 53 | 54 | rw_model <- list(fun = "1/mean(x)", dir = 8, sym = TRUE) 55 | 56 | samc_rw <- samc(res_data, abs_data, model = rw_model) 57 | 58 | origin = 85 # Centered near the bottom 59 | dir = 1 # Up and left 60 | 61 | vis_rw <- as.vector(visitation(samc_rw, origin = origin)) 62 | 63 | # The RW results 64 | plot(map(samc_rw, vis_rw), col = viridis(1024), main = "RW") 65 | 66 | ``` 67 | -------------------------------------------------------------------------------- /vignettes/code-snippets.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Code Snippets" 3 | author: "Andrew Marx" 4 | date: "`r Sys.Date()`" 5 | license: "CC BY-NC-SA 4.0" 6 | output: rmarkdown::html_vignette 7 | vignette: > 8 | %\VignetteIndexEntry{Code Snippets} 9 | %\VignetteEngine{knitr::rmarkdown} 10 | %\VignetteEncoding{UTF-8} 11 | --- 12 | 13 | ```{r setup, include = FALSE} 14 | knitr::opts_chunk$set( 15 | collapse = TRUE, 16 | comment = "#>" 17 | ) 18 | ``` 19 | 20 | ## Introduction 21 | 22 | This page is home to code that isn't suitable for inclusion in the samc package or dedicated vignettes, but that users may find beneficial nonetheless. Some of what is included here may eventually be integrated into the package. Code here is not as thoroughly tested as the package and may not work in all situations or versions of the package. 23 | 24 | 25 | ## Reshaping output from pairwise() 26 | 27 | 28 | ```{r eval = FALSE} 29 | # df will be a "long" format data.frame with columns "origin", "dest", and "result" 30 | df <- pairwise(...) 31 | 32 | # Use reshape2 to convert to a pairwise matrix 33 | reshape2::acast(df, origin ~ dest, value.var = "result") 34 | 35 | ``` 36 | 37 | -------------------------------------------------------------------------------- /vignettes/data-disconnected.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Disconnected Data" 3 | author: "Andrew Marx" 4 | date: "`r Sys.Date()`" 5 | license: "CC BY-NC-SA 4.0" 6 | output: rmarkdown::html_vignette 7 | vignette: > 8 | %\VignetteIndexEntry{Disconnected Data} 9 | %\VignetteEngine{knitr::rmarkdown} 10 | %\VignetteEncoding{UTF-8} 11 | --- 12 | 13 | ```{r setup, include = FALSE} 14 | knitr::opts_chunk$set( 15 | collapse = TRUE, 16 | comment = "#>" 17 | ) 18 | 19 | required <- c("viridis") 20 | if (!all(sapply(required, requireNamespace, quietly = TRUE))) { 21 | knitr::opts_chunk$set(eval = FALSE) 22 | } 23 | 24 | library("raster") 25 | library("samc") 26 | library("viridisLite") 27 | ``` 28 | 29 | *Note: this vignette is far from complete and only contains a brief discussion (originally from an email) of the topic in the context of rasters. It will be rewritten and expanded in future releases.* 30 | 31 | ## Rasters 32 | 33 | Imagine you have a raster with 2 islands, and that water separating the islands in the raster is represented with `NA`'s. These two islands would be disconnected and will result in `"Warning: Input contains disconnected regions. This does not work with the cond_passage() metric."`. The warning isn't an issue if you don't need the `cond_passage()` function. 34 | 35 | Now, each island (aka region) must have at least one pixel with a non-zero absorbing value. The math algorithms don't work without that. If a region does not have at least one non-zero absorbing value, then the `samc()` function will result in `Error: All disconnected regions must have at least one non-zero absorption value` 36 | 37 | Now the tricky part; an island/region can be as small as a single pixel. So, if you're not careful with your raster, you might have very small, isolated patches as small as a pixel floating around somewhere. If you're using just 4 directions for the transition function, they could even be immediately diagonal to another patch. 38 | 39 | The easiest way to spot these is to pick one of your rasters and set all your non-`NA` values to the same value, like 1. Then turn all the `NA`'s to a different value, like 0. Then plot it. Code: 40 | 41 | ```{r eval = FALSE} 42 | raster[!is.na(raster[])) <- 1 43 | raster[is.na(raster[])) <- 0 44 | plot(raster) 45 | ``` 46 | 47 | If your raster is particularly large, then you might need to save it to a high-res image to spot solo pixels in an external picture editor or viewer. 48 | 49 | -------------------------------------------------------------------------------- /vignettes/img/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/br.png -------------------------------------------------------------------------------- /vignettes/img/bt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/bt.png -------------------------------------------------------------------------------- /vignettes/img/btr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/btr.png -------------------------------------------------------------------------------- /vignettes/img/btt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/btt.png -------------------------------------------------------------------------------- /vignettes/img/gganimate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/gganimate.gif -------------------------------------------------------------------------------- /vignettes/img/ggplot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/ggplot1.png -------------------------------------------------------------------------------- /vignettes/img/ggplot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/ggplot2.png -------------------------------------------------------------------------------- /vignettes/img/ggplot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/ggplot3.png -------------------------------------------------------------------------------- /vignettes/img/ggplot4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/ggplot4.png -------------------------------------------------------------------------------- /vignettes/img/ggplot5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/ggplot5.png -------------------------------------------------------------------------------- /vignettes/img/gifski.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrewmarx/samc/409f3871d3cbccd52ec340d8975a7aa8a81710a1/vignettes/img/gifski.gif -------------------------------------------------------------------------------- /vignettes/scripts/example-coinflip.R: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2024 Andrew Marx. All rights reserved. 2 | # Licensed under AGPLv3.0. See LICENSE file in the project root for details. 3 | 4 | # This script is the source of the code for the coin flip example vignette 5 | # The lines with `@knitr` are for processing by knitr 6 | 7 | # TODO Incorporate more comments to make the script more useful on it's own 8 | # without the vignette 9 | 10 | 11 | ## @knitr Part1 12 | # 13 | # Part 1 ---- 14 | # 15 | 16 | ## @knitr library_1 17 | library(samc) 18 | 19 | 20 | ## @knitr setup_1 21 | # Coin flip probabilities 22 | p <- 0.5 # Probability of heads 23 | q <- 1 - p # Probability of tails 24 | 25 | p_mat <- matrix(c(0, 0, 0, 0, 0, 0, q, p, 26 | q, p, 0, 0, 0, 0, 0, 0, 27 | 0, 0, 0, 0, 0, 0, q, p, 28 | q, p, 0, 0, 0, 0, 0, 0, 29 | 0, 0, 0, 0, q, p, 0, 0, 30 | 0, 0, q, p, 0, 0, 0, 0, 31 | 0, 0, 0, 0, q, p, 0, 0, 32 | 0, 0, 0, 0, 0, 0, 0, 1), 33 | 8, byrow = TRUE) 34 | 35 | rownames(p_mat) <- c("HHT", "HHH", "THT", "THH", "TTT", "TTH", "HTT", "HTH") 36 | colnames(p_mat) <- rownames(p_mat) 37 | 38 | # A samc object is the core of the package 39 | samc_obj <- samc(p_mat) 40 | 41 | 42 | ## @knitr metric_1 43 | # Given the last 3 flips, how many more flips until we hit HTH (absorption)? 44 | survival(samc_obj) 45 | 46 | 47 | ## @knitr metric_2_1 48 | # Given a starting point (in this case, a sequence of 3 flips), how many times 49 | # would we expect the different combinations of 3 flips to occur before absorption? 50 | visitation(samc_obj, origin = "HHT") 51 | 52 | sum(visitation(samc_obj, origin = "HHT")) # Compare to survival() result 53 | 54 | 55 | ## @knitr metric_2_2 56 | # Instead of a start point, we can look at an endpoint and how often we expect 57 | # it to occur for each of the possible starting points 58 | visitation(samc_obj, dest = "THT") 59 | 60 | # These results are just rows/cols of a larger matrix. We can get the entire matrix 61 | # of the start/end possibilities but first, we have to disable some safety measures 62 | # in place because this package is designed to work with extremely large P matrices 63 | # (millions of rows/cols) where these types of results will consume too much RAM and 64 | # crash R 65 | samc_obj$override <- TRUE 66 | visitation(samc_obj) 67 | 68 | rowSums(visitation(samc_obj)) # equivalent to survival() above 69 | 70 | 71 | ## @knitr metric_3 72 | dispersal(samc_obj, dest = "TTT", time = 5) 73 | 74 | -------------------------------------------------------------------------------- /vignettes/tutorial-animations.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Animations" 3 | author: "Andrew Marx" 4 | date: "`r Sys.Date()`" 5 | license: "CC BY-NC-SA 4.0" 6 | output: rmarkdown::html_vignette 7 | vignette: > 8 | %\VignetteIndexEntry{Animations} 9 | %\VignetteEngine{knitr::rmarkdown} 10 | %\VignetteEncoding{UTF-8} 11 | --- 12 | 13 | ```{r setup, include = FALSE} 14 | knitr::opts_chunk$set( 15 | collapse = TRUE, 16 | comment = "#>" 17 | ) 18 | 19 | do.call(knitr::read_chunk, list(path = "scripts/tutorial-animations.R")) 20 | ``` 21 | 22 | ## Introduction 23 | 24 | This tutorial illustrates two different approaches for creating animated plots from temporal analyses. The first is using the base plot tools in R with the gifski package. The second is using gganimate (which uses gifski under the hood). While the gganimate approach might be the more user friendly of the two, it does not appear to have a mechanism available for dynamically adjusting the color scale each frame, so later frames will appear dark as the probability values in the results decrease over time (as seen below). The gifski package simply merges several different plots, so the color scale can be different for each frame. It can also be used with ggplot instead of base plot if users desire the style of ggplot with dynamic color scales. 25 | 26 | 27 | ## Setup 28 | 29 | ```{r eval = FALSE} 30 | <> 31 | ``` 32 | 33 | 34 | ## Using gifski 35 | 36 | ```{r eval = FALSE} 37 | <> 38 | ``` 39 | 40 | ```{r fig1, out.width = '100%', fig.align = "center", echo = FALSE} 41 | knitr::include_graphics("img/gifski.gif") 42 | ``` 43 | 44 | 45 | ## Using gganimate 46 | 47 | ```{r eval = FALSE} 48 | <> 49 | ``` 50 | 51 | ```{r fig2, out.width = '100%', fig.align = "center", echo = FALSE} 52 | knitr::include_graphics("img/gganimate.gif") 53 | ``` 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /vignettes/tutorial-ggplot.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "ggplot Visualization" 3 | author: "Andrew Marx" 4 | date: "`r Sys.Date()`" 5 | license: "CC BY-NC-SA 4.0" 6 | output: rmarkdown::html_vignette 7 | vignette: > 8 | %\VignetteIndexEntry{ggplot Visualization} 9 | %\VignetteEngine{knitr::rmarkdown} 10 | %\VignetteEncoding{UTF-8} 11 | --- 12 | 13 | ```{r setup, include = FALSE} 14 | knitr::opts_chunk$set( 15 | collapse = TRUE, 16 | comment = "#>" 17 | ) 18 | 19 | do.call(knitr::read_chunk, list(path = "scripts/tutorial-ggplot.R")) 20 | ``` 21 | 22 | ## Introduction 23 | 24 | This tutorial shows how to plot samc analyses using ggplot2. It is based on the code in the basic tutorial. 25 | 26 | 27 | ## Setup 28 | 29 | ```{r eval=FALSE} 30 | <> 31 | ``` 32 | 33 | 34 | ## Visualization With ggplot2 35 | 36 | ```{r eval=FALSE} 37 | <> 38 | ``` 39 | 40 | ```{r fig1, out.width = '100%', fig.align = "center", echo = FALSE} 41 | knitr::include_graphics("img/ggplot1.png") 42 | ``` 43 | 44 | ```{r fig2, out.width = '100%', fig.align = "center", echo = FALSE} 45 | knitr::include_graphics("img/ggplot2.png") 46 | ``` 47 | 48 | ```{r eval=FALSE} 49 | <> 50 | ``` 51 | 52 | ```{r fig3, out.width = '100%', fig.align = "center", echo = FALSE} 53 | knitr::include_graphics("img/ggplot3.png") 54 | ``` 55 | 56 | ```{r fig4, out.width = '100%', fig.align = "center", echo = FALSE} 57 | knitr::include_graphics("img/ggplot4.png") 58 | ``` 59 | 60 | ```{r fig5, out.width = '100%', fig.align = "center", echo = FALSE} 61 | knitr::include_graphics("img/ggplot5.png") 62 | ``` 63 | --------------------------------------------------------------------------------