From e630cb0268de8108a62debd2a7bfb8a7be122a08 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Jun 2023 00:11:28 +0000 Subject: [PATCH] Deploy to GitHub pages --- 404.html | 2 +- 404/index.html | 2 +- chunk-map.json | 2 +- component---src-pages-index-jsx-1e690ff2353b33d0340b.js | 3 +++ ...--src-pages-index-jsx-1e690ff2353b33d0340b.js.LICENSE.txt | 5 +++++ component---src-pages-index-jsx-1e690ff2353b33d0340b.js.map | 1 + index.html | 2 +- offline-plugin-app-shell-fallback/index.html | 2 +- page-data/app-data.json | 2 +- sw.js | 4 ++-- webpack-runtime-3a0e605e9f817cf44edb.js | 2 ++ webpack-runtime-3a0e605e9f817cf44edb.js.map | 1 + webpack.stats.json | 2 +- 13 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 component---src-pages-index-jsx-1e690ff2353b33d0340b.js create mode 100644 component---src-pages-index-jsx-1e690ff2353b33d0340b.js.LICENSE.txt create mode 100644 component---src-pages-index-jsx-1e690ff2353b33d0340b.js.map create mode 100644 webpack-runtime-3a0e605e9f817cf44edb.js create mode 100644 webpack-runtime-3a0e605e9f817cf44edb.js.map diff --git a/404.html b/404.html index 732849ab53e..a9dc5e7ead1 100644 --- a/404.html +++ b/404.html @@ -2,4 +2,4 @@ /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,input,optgroup,select,textarea{font-family:inherit}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=search]::-webkit-search-decoration{-webkit-appearance:none}details{display:block}.border-box,a,article,aside,blockquote,body,code,dd,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,nav,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.bb{border-bottom-style:solid;border-bottom-width:1px}.b--black-20{border-color:rgba(0,0,0,.2)}.b--initial{border-color:initial}.b--unset{border-color:unset}.br-inherit{border-radius:inherit}.br-initial{border-radius:initial}.br-unset{border-radius:unset}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.b{font-weight:700}.lh-solid{line-height:1}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.rotate-45{-webkit-transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.gray{color:#777}.silver{color:#999}.bg-light-gray{background-color:#eee}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.pl4{padding-left:2rem}.mv4{margin-bottom:2rem;margin-top:2rem}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9)}.grow-large{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95)}.nested-copy-indent p+p{text-indent:1em}.nested-copy-separator p+p{margin-top:1.5em}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAFElEQVR4AWPAC97/9x0eCsAEPgwAVLshdpENIxcAAAAASUVORK5CYII=) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVR4AWOgCLz/b0epAa6UGuBOqQHOQHLUgFEDnAbcBZ4UGwDOkiCnkIhdgNgNxAYAiYlD+8sEuo8AAAAASUVORK5CYII=) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/gif;base64,R0lGODdhCAAIAPEAAADw/wDx/////wAAACwAAAAACAAIAAACDZQvgaeb/lxbAIKA8y0AOw==) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/gif;base64,R0lGODdhEAAQAPEAAADw/wDx/xXy/////ywAAAAAEAAQAAACIZyPKckYDQFsb6ZqD85jZ2+BkwiRFKehhqQCQgDHcgwEBQA7) repeat 0 0}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-ns{border-radius:inherit}.br-initial-ns{border-radius:initial}.br-unset-ns{border-radius:unset}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-m{border-radius:inherit}.br-initial-m{border-radius:initial}.br-unset-m{border-radius:unset}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-l{border-radius:inherit}.br-initial-l{border-radius:initial}.br-unset-l{border-radius:unset}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}} -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em)and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}@media screen and (min-width:30em){.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}}@media screen and (min-width:30em)and (max-width:60em){.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}}@media screen and (min-width:60em){.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em)and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}@media screen and (min-width:30em){.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}}@media screen and (min-width:30em)and (max-width:60em){.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}}@media screen and (min-width:60em){.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb,hr{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em)and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.013)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20,hr{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.013)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em)and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em)and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em)and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em)and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em)and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em)and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em)and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em)and (max-width:60em){.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em)and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em)and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}.normal{font-weight:400}.b,b,strong{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em)and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em)and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em)and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}.lh-solid,h1,h2,h3,h4,h5{line-height:1}.lh-title{line-height:1.25}.lh-copy,ol,ol li,p,ul,ul li{line-height:1.5}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em)and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}}.link,ol li a,p a,ul li a{text-decoration:none}.link,.link:active,.link:hover,.link:link,.link:visited,ol li a,ol li a:active,ol li a:hover,ol li a:link,ol li a:visited,p a,p a:active,p a:hover,p a:link,p a:visited,ul li a,ul li a:active,ul li a:hover,ul li a:link,ul li a:visited{transition:color .15s ease-in}.link:focus,ol li a:focus,p a:focus,ul li a:focus{outline:1px dotted currentColor;transition:color .15s ease-in}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em)and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.3333333333%}.w-two-thirds{width:66.6666666667%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.3333333333%}.w-two-thirds-ns{width:66.6666666667%}.w-auto-ns{width:auto}}@media screen and (min-width:30em)and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.3333333333%}.w-two-thirds-m{width:66.6666666667%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.3333333333%}.w-two-thirds-l{width:66.6666666667%}.w-auto-l{width:auto}}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em)and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em)and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.rotate-45-ns{transform:rotate(45deg)}.rotate-90-ns{transform:rotate(90deg)}.rotate-135-ns{transform:rotate(135deg)}.rotate-180-ns{transform:rotate(180deg)}.rotate-225-ns{transform:rotate(225deg)}.rotate-270-ns{transform:rotate(270deg)}.rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em)and (max-width:60em){.rotate-45-m{transform:rotate(45deg)}.rotate-90-m{transform:rotate(90deg)}.rotate-135-m{transform:rotate(135deg)}.rotate-180-m{transform:rotate(180deg)}.rotate-225-m{transform:rotate(225deg)}.rotate-270-m{transform:rotate(270deg)}.rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.rotate-45-l{transform:rotate(45deg)}.rotate-90-l{transform:rotate(90deg)}.rotate-135-l{transform:rotate(135deg)}.rotate-180-l{transform:rotate(180deg)}.rotate-225-l{transform:rotate(225deg)}.rotate-270-l{transform:rotate(270deg)}.rotate-315-l{transform:rotate(315deg)}}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black,b,strong{color:#000}.near-black,h1,h2,h3,h4,h5{color:#111}.dark-gray,nav a,ol,p,ul{color:#333}.mid-gray{color:#555}.gray,time{color:#777}.silver,nav a.active{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray,.markdown-content .grvsc-container{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4,ol,ul{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-bottom:0;padding-top:0}.pv1{padding-bottom:.25rem;padding-top:.25rem}.pv2{padding-bottom:.5rem;padding-top:.5rem}.pv3{padding-bottom:1rem;padding-top:1rem}.pv4{padding-bottom:2rem;padding-top:2rem}.pv5{padding-bottom:4rem;padding-top:4rem}.pv6{padding-bottom:8rem;padding-top:8rem}.pv7{padding-bottom:16rem;padding-top:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-bottom:0;margin-top:0}.mv1{margin-bottom:.25rem;margin-top:.25rem}.mv2{margin-bottom:.5rem;margin-top:.5rem}.mv3{margin-bottom:1rem;margin-top:1rem}.mv4,hr{margin-bottom:2rem;margin-top:2rem}.mv5{margin-bottom:4rem;margin-top:4rem}.mv6{margin-bottom:8rem;margin-top:8rem}.mv7{margin-bottom:16rem;margin-top:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em)and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}@media screen and (min-width:30em){.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em)and (max-width:60em){.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em)and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}}@media screen and (min-width:30em)and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em)and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}@media screen and (min-width:30em){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}}@media screen and (min-width:30em)and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps{font-variant:small-caps}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em)and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}@media screen and (min-width:30em){.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em)and (max-width:60em){.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}}.clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}@media screen and (min-width:30em){.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:30em)and (max-width:60em){.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:60em){.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em)and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em)and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover,ol li a:focus,ol li a:hover,p a:focus,p a:hover,ul li a:focus,ul li a:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.grow:focus,.grow:hover{transform:scale(1.05)}.grow:active{transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{transform:scale(1.2)}.grow-large:active{transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{display:block;max-width:100%;width:100%}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.theme-blue-washed-red{background-color:#357edd;color:#ffdfdf;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red b,.theme-blue-washed-red h1,.theme-blue-washed-red h2,.theme-blue-washed-red h3,.theme-blue-washed-red h4,.theme-blue-washed-red h5,.theme-blue-washed-red strong{color:#ffdfdf}.theme-blue-washed-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red nav a{color:#ffdfdf}.theme-blue-washed-red nav a.active{color:#fff9f9}.theme-blue-washed-red p{color:#ffdfdf}.theme-blue-washed-red p a{color:#ffdfdf;font-weight:700;text-decoration:underline}.theme-blue-washed-red a.post-colophon-link,.theme-blue-washed-red a.post-colophon-link:visited{color:hsla(0,100%,94%,.3)!important}.theme-blue-washed-red hr{border-color:hsla(0,100%,94%,.1)!important;width:90%}.theme-blue-washed-red ol,.theme-blue-washed-red ul{color:#ffdfdf}.theme-blue-washed-red time{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content blockquote{border-color:#ffdfdf!important}.theme-blue-washed-red .markdown-content table:not(.highlight){background-color:#488adf}.theme-blue-washed-red .markdown-content table:not(.highlight) tr{border-color:#e7caca}.theme-blue-washed-red .markdown-content p>code{background-color:hsla(0,100%,94%,.2)!important;color:#ffdfdf!important}.theme-blue-washed-red .markdown-content a.footnote-backref{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-blue-washed-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-green-red{background-color:#e8fdf5;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red b,.theme-washed-green-red h1,.theme-washed-green-red h2,.theme-washed-green-red h3,.theme-washed-green-red h4,.theme-washed-green-red h5,.theme-washed-green-red strong{color:#ff4136}.theme-washed-green-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red nav a{color:#ff4136}.theme-washed-green-red nav a.active{color:#ff5950}.theme-washed-green-red p{color:#ff4136}.theme-washed-green-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-green-red a.post-colophon-link,.theme-washed-green-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-green-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-green-red ol,.theme-washed-green-red ul{color:#ff4136}.theme-washed-green-red time{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-green-red .markdown-content table:not(.highlight){background-color:#e9fcf5}.theme-washed-green-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-green-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-green-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-green-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-blue-red{background-color:#f6fffe;color:#ff4136;font-family:helvetica neue,helvetica,sans-serif}.theme-washed-blue-red b,.theme-washed-blue-red h1,.theme-washed-blue-red h2,.theme-washed-blue-red h3,.theme-washed-blue-red h4,.theme-washed-blue-red h5,.theme-washed-blue-red strong{color:#ff4136}.theme-washed-blue-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-blue-red nav a{color:#ff4136}.theme-washed-blue-red nav a.active{color:#ff5950}.theme-washed-blue-red p{color:#ff4136}.theme-washed-blue-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-blue-red a.post-colophon-link,.theme-washed-blue-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-blue-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-blue-red ol,.theme-washed-blue-red ul{color:#ff4136}.theme-washed-blue-red time{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-blue-red .markdown-content table:not(.highlight){background-color:#f6fefd}.theme-washed-blue-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-blue-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-blue-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-blue-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-yellow-red{background-color:#fffceb;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red b,.theme-washed-yellow-red h1,.theme-washed-yellow-red h2,.theme-washed-yellow-red h3,.theme-washed-yellow-red h4,.theme-washed-yellow-red h5,.theme-washed-yellow-red strong{color:#ff4136}.theme-washed-yellow-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red nav a{color:#ff4136}.theme-washed-yellow-red nav a.active{color:#ff5950}.theme-washed-yellow-red p{color:#ff4136}.theme-washed-yellow-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-yellow-red a.post-colophon-link,.theme-washed-yellow-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-yellow-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-yellow-red ol,.theme-washed-yellow-red ul{color:#ff4136}.theme-washed-yellow-red time{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-yellow-red .markdown-content table:not(.highlight){background-color:#fefbec}.theme-washed-yellow-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-yellow-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-yellow-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-yellow-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-navy-light-red{background-color:#001b44;color:#ff725c;font-family:avenir next,avenir,sans-serif}.theme-navy-light-red b,.theme-navy-light-red h1,.theme-navy-light-red h2,.theme-navy-light-red h3,.theme-navy-light-red h4,.theme-navy-light-red h5,.theme-navy-light-red strong{color:#ff725c}.theme-navy-light-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-navy-light-red nav a{color:#ff725c}.theme-navy-light-red nav a.active{color:#ff8876}.theme-navy-light-red p{color:#ff725c}.theme-navy-light-red p a{color:#ff725c;font-weight:700;text-decoration:underline}.theme-navy-light-red a.post-colophon-link,.theme-navy-light-red a.post-colophon-link:visited{color:rgba(255,114,92,.3)!important}.theme-navy-light-red hr{border-color:rgba(255,114,92,.1)!important;width:90%}.theme-navy-light-red ol,.theme-navy-light-red ul{color:#ff725c}.theme-navy-light-red time{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content blockquote{border-color:#ff725c!important}.theme-navy-light-red .markdown-content table:not(.highlight){background-color:#183156}.theme-navy-light-red .markdown-content table:not(.highlight) tr{border-color:#e76855}.theme-navy-light-red .markdown-content p>code{background-color:rgba(255,114,92,.2)!important;color:#ff725c!important}.theme-navy-light-red .markdown-content a.footnote-backref{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-navy-light-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-gold{background-color:#111;color:#ffb700;font-family:avenir next,avenir,sans-serif}.theme-near-black-gold b,.theme-near-black-gold h1,.theme-near-black-gold h2,.theme-near-black-gold h3,.theme-near-black-gold h4,.theme-near-black-gold h5,.theme-near-black-gold strong{color:#ffb700}.theme-near-black-gold nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-gold nav a{color:#ffb700}.theme-near-black-gold nav a.active{color:#ffbe1a}.theme-near-black-gold p{color:#ffb700}.theme-near-black-gold p a{color:#ffb700;font-weight:700;text-decoration:underline}.theme-near-black-gold a.post-colophon-link,.theme-near-black-gold a.post-colophon-link:visited{color:rgba(255,183,0,.3)!important}.theme-near-black-gold hr{border-color:rgba(255,183,0,.1)!important;width:90%}.theme-near-black-gold ol,.theme-near-black-gold ul{color:#ffb700}.theme-near-black-gold time{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content blockquote{border-color:#ffb700!important}.theme-near-black-gold .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-gold .markdown-content table:not(.highlight) tr{border-color:#e7a602}.theme-near-black-gold .markdown-content p>code{background-color:rgba(255,183,0,.2)!important;color:#ffb700!important}.theme-near-black-gold .markdown-content a.footnote-backref{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-gold .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-light-yellow{background-color:#111;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow b,.theme-near-black-light-yellow h1,.theme-near-black-light-yellow h2,.theme-near-black-light-yellow h3,.theme-near-black-light-yellow h4,.theme-near-black-light-yellow h5,.theme-near-black-light-yellow strong{color:#fbf1a9}.theme-near-black-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow nav a{color:#fbf1a9}.theme-near-black-light-yellow nav a.active{color:#fcf5c1}.theme-near-black-light-yellow p{color:#fbf1a9}.theme-near-black-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-near-black-light-yellow a.post-colophon-link,.theme-near-black-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-near-black-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-near-black-light-yellow ol,.theme-near-black-light-yellow ul{color:#fbf1a9}.theme-near-black-light-yellow time{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-near-black-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-red-light-yellow{background-color:#ff4136;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow b,.theme-red-light-yellow h1,.theme-red-light-yellow h2,.theme-red-light-yellow h3,.theme-red-light-yellow h4,.theme-red-light-yellow h5,.theme-red-light-yellow strong{color:#fbf1a9}.theme-red-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow nav a{color:#fbf1a9}.theme-red-light-yellow nav a.active{color:#fcf5c1}.theme-red-light-yellow p{color:#fbf1a9}.theme-red-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-red-light-yellow a.post-colophon-link,.theme-red-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-red-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-red-light-yellow ol,.theme-red-light-yellow ul{color:#fbf1a9}.theme-red-light-yellow time{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-red-light-yellow .markdown-content table:not(.highlight){background-color:#fe5349}.theme-red-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-red-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-red-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-red-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-purple-light-gray{background-color:#5e2ca5;color:#eee;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray b,.theme-purple-light-gray h1,.theme-purple-light-gray h2,.theme-purple-light-gray h3,.theme-purple-light-gray h4,.theme-purple-light-gray h5,.theme-purple-light-gray strong{color:#eee}.theme-purple-light-gray nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray nav a{color:#eee}.theme-purple-light-gray nav a.active{color:#fbfbfb}.theme-purple-light-gray p{color:#eee}.theme-purple-light-gray p a{color:#eee;font-weight:700;text-decoration:underline}.theme-purple-light-gray a.post-colophon-link,.theme-purple-light-gray a.post-colophon-link:visited{color:hsla(0,0%,93%,.3)!important}.theme-purple-light-gray hr{border-color:hsla(0,0%,93%,.1)!important;width:90%}.theme-purple-light-gray ol,.theme-purple-light-gray ul{color:#eee}.theme-purple-light-gray time{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content blockquote{border-color:#eee!important}.theme-purple-light-gray .markdown-content table:not(.highlight){background-color:#6d40ad}.theme-purple-light-gray .markdown-content table:not(.highlight) tr{border-color:#d8d8d8}.theme-purple-light-gray .markdown-content p>code{background-color:hsla(0,0%,93%,.2)!important;color:#eee!important}.theme-purple-light-gray .markdown-content a.footnote-backref{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content .grvsc-container{font-size:.875rem!important}.theme-purple-light-gray .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-light-gray-purple{background-color:#eee;color:#5e2ca5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple b,.theme-light-gray-purple h1,.theme-light-gray-purple h2,.theme-light-gray-purple h3,.theme-light-gray-purple h4,.theme-light-gray-purple h5,.theme-light-gray-purple strong{color:#5e2ca5}.theme-light-gray-purple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple nav a{color:#5e2ca5}.theme-light-gray-purple nav a.active{color:#6931b9}.theme-light-gray-purple p{color:#5e2ca5}.theme-light-gray-purple p a{color:#5e2ca5;font-weight:700;text-decoration:underline}.theme-light-gray-purple a.post-colophon-link,.theme-light-gray-purple a.post-colophon-link:visited{color:rgba(94,44,165,.3)!important}.theme-light-gray-purple hr{border-color:rgba(94,44,165,.1)!important;width:90%}.theme-light-gray-purple ol,.theme-light-gray-purple ul{color:#5e2ca5}.theme-light-gray-purple time{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content blockquote{border-color:#5e2ca5!important}.theme-light-gray-purple .markdown-content table:not(.highlight){background-color:#efefef}.theme-light-gray-purple .markdown-content table:not(.highlight) tr{border-color:#562996}.theme-light-gray-purple .markdown-content p>code{background-color:rgba(94,44,165,.2)!important;color:#5e2ca5!important}.theme-light-gray-purple .markdown-content a.footnote-backref{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-light-gray-purple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-run{background-color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run,.theme-run b,.theme-run h1,.theme-run h2,.theme-run h3,.theme-run h4,.theme-run h5,.theme-run strong{color:#e0ed5e}.theme-run nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run nav a{color:#e0ed5e}.theme-run nav a.active{color:#e4f075}.theme-run p{color:#e0ed5e}.theme-run p a{color:#e0ed5e;font-weight:700;text-decoration:underline}.theme-run a.post-colophon-link,.theme-run a.post-colophon-link:visited{color:rgba(224,237,94,.3)!important}.theme-run hr{border-color:rgba(224,237,94,.1)!important;width:90%}.theme-run ol,.theme-run ul{color:#e0ed5e}.theme-run time{color:#e0ed5e;font-weight:700}.theme-run .markdown-content blockquote{border-color:#e0ed5e!important}.theme-run .markdown-content table:not(.highlight){background-color:#303030}.theme-run .markdown-content table:not(.highlight) tr{border-color:#cbd756}.theme-run .markdown-content p>code{background-color:rgba(224,237,94,.2)!important;color:#e0ed5e!important}.theme-run .markdown-content a.footnote-backref{color:#e0ed5e;font-weight:700}.theme-run .markdown-content .grvsc-container{font-size:.875rem!important}.theme-run .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-sign-in-with-apple{background-color:#f4f4f4;color:#000;font-family:San Francisco,helvetica neue,helvetica,sans-serif}.theme-sign-in-with-apple b,.theme-sign-in-with-apple h1,.theme-sign-in-with-apple h2,.theme-sign-in-with-apple h3,.theme-sign-in-with-apple h4,.theme-sign-in-with-apple h5,.theme-sign-in-with-apple strong{color:#000}.theme-sign-in-with-apple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-sign-in-with-apple nav a{color:#000}.theme-sign-in-with-apple nav a.active{color:#0d0d0d}.theme-sign-in-with-apple p{color:#000}.theme-sign-in-with-apple p a{color:#000;font-weight:700;text-decoration:underline}.theme-sign-in-with-apple a.post-colophon-link,.theme-sign-in-with-apple a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.theme-sign-in-with-apple hr{border-color:rgba(0,0,0,.1)!important;width:90%}.theme-sign-in-with-apple ol,.theme-sign-in-with-apple ul{color:#000}.theme-sign-in-with-apple time{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content blockquote{border-color:#000!important}.theme-sign-in-with-apple .markdown-content table:not(.highlight){background-color:#f4f4f4}.theme-sign-in-with-apple .markdown-content table:not(.highlight) tr{border-color:#020202}.theme-sign-in-with-apple .markdown-content p>code{background-color:rgba(0,0,0,.2)!important;color:#000!important}.theme-sign-in-with-apple .markdown-content a.footnote-backref{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-sign-in-with-apple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-checklist-manifesto{background-color:#fbf8de;color:#db572b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto b,.theme-checklist-manifesto h1,.theme-checklist-manifesto h2,.theme-checklist-manifesto h3,.theme-checklist-manifesto h4,.theme-checklist-manifesto h5,.theme-checklist-manifesto strong{color:#db572b}.theme-checklist-manifesto nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto nav a{color:#db572b}.theme-checklist-manifesto nav a.active{color:#df6841}.theme-checklist-manifesto p{color:#db572b}.theme-checklist-manifesto p a{color:#db572b;font-weight:700;text-decoration:underline}.theme-checklist-manifesto a.post-colophon-link,.theme-checklist-manifesto a.post-colophon-link:visited{color:rgba(219,87,43,.3)!important}.theme-checklist-manifesto hr{border-color:rgba(219,87,43,.1)!important;width:90%}.theme-checklist-manifesto ol,.theme-checklist-manifesto ul{color:#db572b}.theme-checklist-manifesto time{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content blockquote{border-color:#db572b!important}.theme-checklist-manifesto .markdown-content table:not(.highlight){background-color:#faf8e0}.theme-checklist-manifesto .markdown-content table:not(.highlight) tr{border-color:#c75028}.theme-checklist-manifesto .markdown-content p>code{background-color:rgba(219,87,43,.2)!important;color:#db572b!important}.theme-checklist-manifesto .markdown-content a.footnote-backref{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content .grvsc-container{font-size:.875rem!important}.theme-checklist-manifesto .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-enron{background-color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron,.theme-enron b,.theme-enron h1,.theme-enron h2,.theme-enron h3,.theme-enron h4,.theme-enron h5,.theme-enron strong{color:#9eebcf}.theme-enron nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron nav a{color:#9eebcf}.theme-enron nav a.active{color:#b3efd9}.theme-enron p{color:#9eebcf}.theme-enron p a{color:#9eebcf;font-weight:700;text-decoration:underline}.theme-enron a.post-colophon-link,.theme-enron a.post-colophon-link:visited{color:rgba(158,235,207,.3)!important}.theme-enron hr{border-color:rgba(158,235,207,.1)!important;width:90%}.theme-enron ol,.theme-enron ul{color:#9eebcf}.theme-enron time{color:#9eebcf;font-weight:700}.theme-enron .markdown-content blockquote{border-color:#9eebcf!important}.theme-enron .markdown-content table:not(.highlight){background-color:#282828}.theme-enron .markdown-content table:not(.highlight) tr{border-color:#90d5bc}.theme-enron .markdown-content p>code{background-color:rgba(158,235,207,.2)!important;color:#9eebcf!important}.theme-enron .markdown-content a.footnote-backref{color:#9eebcf;font-weight:700}.theme-enron .markdown-content .grvsc-container{font-size:.875rem!important}.theme-enron .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-boardgames{background-color:#daedf0;background:linear-gradient(240deg,#6c95c7,#daedf0 26%,#d4ebed 39%,#bbe1e0 63%,#f2eee1);color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames b,.theme-boardgames h1,.theme-boardgames h2,.theme-boardgames h3,.theme-boardgames h4,.theme-boardgames h5,.theme-boardgames strong{color:#111}.theme-boardgames nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames nav a{color:#111}.theme-boardgames nav a.active{color:#1e1e1e}.theme-boardgames p{color:#111}.theme-boardgames p a{color:#111;font-weight:700;text-decoration:underline}.theme-boardgames a.post-colophon-link,.theme-boardgames a.post-colophon-link:visited{color:hsla(0,0%,7%,.3)!important}.theme-boardgames hr{border-color:hsla(0,0%,7%,.1)!important;width:90%}.theme-boardgames ol,.theme-boardgames ul{color:#111}.theme-boardgames time{color:#111;font-weight:700}.theme-boardgames .markdown-content blockquote{border-color:#111!important}.theme-boardgames .markdown-content table:not(.highlight){background-color:#ddeef0}.theme-boardgames .markdown-content table:not(.highlight) tr{border-color:#111}.theme-boardgames .markdown-content p>code{background-color:hsla(0,0%,7%,.2)!important;color:#111!important}.theme-boardgames .markdown-content a.footnote-backref{color:#111;font-weight:700}.theme-boardgames .markdown-content .grvsc-container{font-size:.875rem!important}.theme-boardgames .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}img::selection{background:transparent}img::-moz-selection{background:transparent}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:400;text-rendering:optimizeLegibility}iframe{border:none}hr{border-top:none}a.post-colophon-link,a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.gist table tr:last-child{border-bottom:1px}h2 .header-link,h3 .header-link{margin-top:2rem}h5 .header-link{margin-top:-.14rem}.markdown-content .grvsc-container{font-size:.875rem!important}.markdown-content .grvsc-container::-webkit-scrollbar{display:none}.markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.markdown-content .gatsby-resp-image-wrapper{margin-top:1rem}.style-module--body--a1572{background-color:#1a1a1a;color:#e0ed5e}.style-module--body--a1572 a,.style-module--body--a1572 h1,.style-module--body--a1572 h3,.style-module--body--a1572 h4,.style-module--body--a1572 li,.style-module--body--a1572 p{color:#e0ed5e;text-decoration:none}.style-module--body--a1572 h1{font-size:3rem;font-weight:700}.style-module--yearSVG--347ec{border:0;height:65%;margin:1rem 0 0;padding:0;width:65%}.style-module--locationSVG--2adbd{border:0;height:100%;margin:1rem 0 0;padding:0;width:100%}.style-module--buttons--4da44{margin:0 auto;padding-right:70px}.style-module--button--1573e{color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1rem;margin-top:.1rem;padding:1.3rem .4rem;position:relative;text-align:center}.style-module--fullscreenButton--4aa1d{opacity:.3;padding:1.2rem;right:0;top:0}.style-module--runTitle--09504{bottom:0;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:29px;left:120px;position:absolute;width:710px}@media only screen and (max-width:700px){.style-module--runTable--84570 td:nth-child(4),.style-module--runTable--84570 th:nth-child(4){display:none}}.style-module--runTable--84570{font-variant:tabular-nums;margin:2rem 0 5rem;width:100%}.style-module--runTable--84570 thead{color:#ccc;text-align:right}.style-module--runTable--84570 thead th{padding:.5rem}.style-module--runRow--42c85 td{border:0;padding:.5rem;text-align:right}.style-module--runRow--42c85 td:first-child{text-align:left}.style-module--runRow--42c85:hover{background-color:#222}.style-module--tableContainer--b302a{overflow-x:scroll;width:100%}.style-module--runDate--b8f52{color:#ccc}.style-module--runSVG--e35c5{height:250%;margin:1rem 0 0;width:100%}Running Page

404

This page doesn't exist.

If you wanna more message, you could visit https://yihong.run

\ No newline at end of file +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em)and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}@media screen and (min-width:30em){.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}}@media screen and (min-width:30em)and (max-width:60em){.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}}@media screen and (min-width:60em){.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em)and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}@media screen and (min-width:30em){.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}}@media screen and (min-width:30em)and (max-width:60em){.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}}@media screen and (min-width:60em){.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb,hr{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em)and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.013)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20,hr{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.013)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em)and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em)and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em)and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em)and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em)and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em)and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em)and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em)and (max-width:60em){.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em)and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em)and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}.normal{font-weight:400}.b,b,strong{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em)and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em)and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em)and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}.lh-solid,h1,h2,h3,h4,h5{line-height:1}.lh-title{line-height:1.25}.lh-copy,ol,ol li,p,ul,ul li{line-height:1.5}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em)and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}}.link,ol li a,p a,ul li a{text-decoration:none}.link,.link:active,.link:hover,.link:link,.link:visited,ol li a,ol li a:active,ol li a:hover,ol li a:link,ol li a:visited,p a,p a:active,p a:hover,p a:link,p a:visited,ul li a,ul li a:active,ul li a:hover,ul li a:link,ul li a:visited{transition:color .15s ease-in}.link:focus,ol li a:focus,p a:focus,ul li a:focus{outline:1px dotted currentColor;transition:color .15s ease-in}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em)and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.3333333333%}.w-two-thirds{width:66.6666666667%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.3333333333%}.w-two-thirds-ns{width:66.6666666667%}.w-auto-ns{width:auto}}@media screen and (min-width:30em)and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.3333333333%}.w-two-thirds-m{width:66.6666666667%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.3333333333%}.w-two-thirds-l{width:66.6666666667%}.w-auto-l{width:auto}}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em)and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em)and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.rotate-45-ns{transform:rotate(45deg)}.rotate-90-ns{transform:rotate(90deg)}.rotate-135-ns{transform:rotate(135deg)}.rotate-180-ns{transform:rotate(180deg)}.rotate-225-ns{transform:rotate(225deg)}.rotate-270-ns{transform:rotate(270deg)}.rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em)and (max-width:60em){.rotate-45-m{transform:rotate(45deg)}.rotate-90-m{transform:rotate(90deg)}.rotate-135-m{transform:rotate(135deg)}.rotate-180-m{transform:rotate(180deg)}.rotate-225-m{transform:rotate(225deg)}.rotate-270-m{transform:rotate(270deg)}.rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.rotate-45-l{transform:rotate(45deg)}.rotate-90-l{transform:rotate(90deg)}.rotate-135-l{transform:rotate(135deg)}.rotate-180-l{transform:rotate(180deg)}.rotate-225-l{transform:rotate(225deg)}.rotate-270-l{transform:rotate(270deg)}.rotate-315-l{transform:rotate(315deg)}}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black,b,strong{color:#000}.near-black,h1,h2,h3,h4,h5{color:#111}.dark-gray,nav a,ol,p,ul{color:#333}.mid-gray{color:#555}.gray,time{color:#777}.silver,nav a.active{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray,.markdown-content .grvsc-container{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4,ol,ul{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-bottom:0;padding-top:0}.pv1{padding-bottom:.25rem;padding-top:.25rem}.pv2{padding-bottom:.5rem;padding-top:.5rem}.pv3{padding-bottom:1rem;padding-top:1rem}.pv4{padding-bottom:2rem;padding-top:2rem}.pv5{padding-bottom:4rem;padding-top:4rem}.pv6{padding-bottom:8rem;padding-top:8rem}.pv7{padding-bottom:16rem;padding-top:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-bottom:0;margin-top:0}.mv1{margin-bottom:.25rem;margin-top:.25rem}.mv2{margin-bottom:.5rem;margin-top:.5rem}.mv3{margin-bottom:1rem;margin-top:1rem}.mv4,hr{margin-bottom:2rem;margin-top:2rem}.mv5{margin-bottom:4rem;margin-top:4rem}.mv6{margin-bottom:8rem;margin-top:8rem}.mv7{margin-bottom:16rem;margin-top:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em)and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}@media screen and (min-width:30em){.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em)and (max-width:60em){.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em)and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}}@media screen and (min-width:30em)and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em)and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}@media screen and (min-width:30em){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}}@media screen and (min-width:30em)and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps{font-variant:small-caps}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em)and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}@media screen and (min-width:30em){.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em)and (max-width:60em){.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}}.clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}@media screen and (min-width:30em){.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:30em)and (max-width:60em){.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:60em){.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em)and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em)and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover,ol li a:focus,ol li a:hover,p a:focus,p a:hover,ul li a:focus,ul li a:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.grow:focus,.grow:hover{transform:scale(1.05)}.grow:active{transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{transform:scale(1.2)}.grow-large:active{transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{display:block;max-width:100%;width:100%}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.theme-blue-washed-red{background-color:#357edd;color:#ffdfdf;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red b,.theme-blue-washed-red h1,.theme-blue-washed-red h2,.theme-blue-washed-red h3,.theme-blue-washed-red h4,.theme-blue-washed-red h5,.theme-blue-washed-red strong{color:#ffdfdf}.theme-blue-washed-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red nav a{color:#ffdfdf}.theme-blue-washed-red nav a.active{color:#fff9f9}.theme-blue-washed-red p{color:#ffdfdf}.theme-blue-washed-red p a{color:#ffdfdf;font-weight:700;text-decoration:underline}.theme-blue-washed-red a.post-colophon-link,.theme-blue-washed-red a.post-colophon-link:visited{color:hsla(0,100%,94%,.3)!important}.theme-blue-washed-red hr{border-color:hsla(0,100%,94%,.1)!important;width:90%}.theme-blue-washed-red ol,.theme-blue-washed-red ul{color:#ffdfdf}.theme-blue-washed-red time{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content blockquote{border-color:#ffdfdf!important}.theme-blue-washed-red .markdown-content table:not(.highlight){background-color:#488adf}.theme-blue-washed-red .markdown-content table:not(.highlight) tr{border-color:#e7caca}.theme-blue-washed-red .markdown-content p>code{background-color:hsla(0,100%,94%,.2)!important;color:#ffdfdf!important}.theme-blue-washed-red .markdown-content a.footnote-backref{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-blue-washed-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-green-red{background-color:#e8fdf5;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red b,.theme-washed-green-red h1,.theme-washed-green-red h2,.theme-washed-green-red h3,.theme-washed-green-red h4,.theme-washed-green-red h5,.theme-washed-green-red strong{color:#ff4136}.theme-washed-green-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red nav a{color:#ff4136}.theme-washed-green-red nav a.active{color:#ff5950}.theme-washed-green-red p{color:#ff4136}.theme-washed-green-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-green-red a.post-colophon-link,.theme-washed-green-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-green-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-green-red ol,.theme-washed-green-red ul{color:#ff4136}.theme-washed-green-red time{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-green-red .markdown-content table:not(.highlight){background-color:#e9fcf5}.theme-washed-green-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-green-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-green-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-green-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-blue-red{background-color:#f6fffe;color:#ff4136;font-family:helvetica neue,helvetica,sans-serif}.theme-washed-blue-red b,.theme-washed-blue-red h1,.theme-washed-blue-red h2,.theme-washed-blue-red h3,.theme-washed-blue-red h4,.theme-washed-blue-red h5,.theme-washed-blue-red strong{color:#ff4136}.theme-washed-blue-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-blue-red nav a{color:#ff4136}.theme-washed-blue-red nav a.active{color:#ff5950}.theme-washed-blue-red p{color:#ff4136}.theme-washed-blue-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-blue-red a.post-colophon-link,.theme-washed-blue-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-blue-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-blue-red ol,.theme-washed-blue-red ul{color:#ff4136}.theme-washed-blue-red time{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-blue-red .markdown-content table:not(.highlight){background-color:#f6fefd}.theme-washed-blue-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-blue-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-blue-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-blue-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-yellow-red{background-color:#fffceb;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red b,.theme-washed-yellow-red h1,.theme-washed-yellow-red h2,.theme-washed-yellow-red h3,.theme-washed-yellow-red h4,.theme-washed-yellow-red h5,.theme-washed-yellow-red strong{color:#ff4136}.theme-washed-yellow-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red nav a{color:#ff4136}.theme-washed-yellow-red nav a.active{color:#ff5950}.theme-washed-yellow-red p{color:#ff4136}.theme-washed-yellow-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-yellow-red a.post-colophon-link,.theme-washed-yellow-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-yellow-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-yellow-red ol,.theme-washed-yellow-red ul{color:#ff4136}.theme-washed-yellow-red time{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-yellow-red .markdown-content table:not(.highlight){background-color:#fefbec}.theme-washed-yellow-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-yellow-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-yellow-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-yellow-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-navy-light-red{background-color:#001b44;color:#ff725c;font-family:avenir next,avenir,sans-serif}.theme-navy-light-red b,.theme-navy-light-red h1,.theme-navy-light-red h2,.theme-navy-light-red h3,.theme-navy-light-red h4,.theme-navy-light-red h5,.theme-navy-light-red strong{color:#ff725c}.theme-navy-light-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-navy-light-red nav a{color:#ff725c}.theme-navy-light-red nav a.active{color:#ff8876}.theme-navy-light-red p{color:#ff725c}.theme-navy-light-red p a{color:#ff725c;font-weight:700;text-decoration:underline}.theme-navy-light-red a.post-colophon-link,.theme-navy-light-red a.post-colophon-link:visited{color:rgba(255,114,92,.3)!important}.theme-navy-light-red hr{border-color:rgba(255,114,92,.1)!important;width:90%}.theme-navy-light-red ol,.theme-navy-light-red ul{color:#ff725c}.theme-navy-light-red time{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content blockquote{border-color:#ff725c!important}.theme-navy-light-red .markdown-content table:not(.highlight){background-color:#183156}.theme-navy-light-red .markdown-content table:not(.highlight) tr{border-color:#e76855}.theme-navy-light-red .markdown-content p>code{background-color:rgba(255,114,92,.2)!important;color:#ff725c!important}.theme-navy-light-red .markdown-content a.footnote-backref{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-navy-light-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-gold{background-color:#111;color:#ffb700;font-family:avenir next,avenir,sans-serif}.theme-near-black-gold b,.theme-near-black-gold h1,.theme-near-black-gold h2,.theme-near-black-gold h3,.theme-near-black-gold h4,.theme-near-black-gold h5,.theme-near-black-gold strong{color:#ffb700}.theme-near-black-gold nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-gold nav a{color:#ffb700}.theme-near-black-gold nav a.active{color:#ffbe1a}.theme-near-black-gold p{color:#ffb700}.theme-near-black-gold p a{color:#ffb700;font-weight:700;text-decoration:underline}.theme-near-black-gold a.post-colophon-link,.theme-near-black-gold a.post-colophon-link:visited{color:rgba(255,183,0,.3)!important}.theme-near-black-gold hr{border-color:rgba(255,183,0,.1)!important;width:90%}.theme-near-black-gold ol,.theme-near-black-gold ul{color:#ffb700}.theme-near-black-gold time{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content blockquote{border-color:#ffb700!important}.theme-near-black-gold .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-gold .markdown-content table:not(.highlight) tr{border-color:#e7a602}.theme-near-black-gold .markdown-content p>code{background-color:rgba(255,183,0,.2)!important;color:#ffb700!important}.theme-near-black-gold .markdown-content a.footnote-backref{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-gold .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-light-yellow{background-color:#111;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow b,.theme-near-black-light-yellow h1,.theme-near-black-light-yellow h2,.theme-near-black-light-yellow h3,.theme-near-black-light-yellow h4,.theme-near-black-light-yellow h5,.theme-near-black-light-yellow strong{color:#fbf1a9}.theme-near-black-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow nav a{color:#fbf1a9}.theme-near-black-light-yellow nav a.active{color:#fcf5c1}.theme-near-black-light-yellow p{color:#fbf1a9}.theme-near-black-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-near-black-light-yellow a.post-colophon-link,.theme-near-black-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-near-black-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-near-black-light-yellow ol,.theme-near-black-light-yellow ul{color:#fbf1a9}.theme-near-black-light-yellow time{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-near-black-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-red-light-yellow{background-color:#ff4136;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow b,.theme-red-light-yellow h1,.theme-red-light-yellow h2,.theme-red-light-yellow h3,.theme-red-light-yellow h4,.theme-red-light-yellow h5,.theme-red-light-yellow strong{color:#fbf1a9}.theme-red-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow nav a{color:#fbf1a9}.theme-red-light-yellow nav a.active{color:#fcf5c1}.theme-red-light-yellow p{color:#fbf1a9}.theme-red-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-red-light-yellow a.post-colophon-link,.theme-red-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-red-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-red-light-yellow ol,.theme-red-light-yellow ul{color:#fbf1a9}.theme-red-light-yellow time{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-red-light-yellow .markdown-content table:not(.highlight){background-color:#fe5349}.theme-red-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-red-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-red-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-red-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-purple-light-gray{background-color:#5e2ca5;color:#eee;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray b,.theme-purple-light-gray h1,.theme-purple-light-gray h2,.theme-purple-light-gray h3,.theme-purple-light-gray h4,.theme-purple-light-gray h5,.theme-purple-light-gray strong{color:#eee}.theme-purple-light-gray nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray nav a{color:#eee}.theme-purple-light-gray nav a.active{color:#fbfbfb}.theme-purple-light-gray p{color:#eee}.theme-purple-light-gray p a{color:#eee;font-weight:700;text-decoration:underline}.theme-purple-light-gray a.post-colophon-link,.theme-purple-light-gray a.post-colophon-link:visited{color:hsla(0,0%,93%,.3)!important}.theme-purple-light-gray hr{border-color:hsla(0,0%,93%,.1)!important;width:90%}.theme-purple-light-gray ol,.theme-purple-light-gray ul{color:#eee}.theme-purple-light-gray time{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content blockquote{border-color:#eee!important}.theme-purple-light-gray .markdown-content table:not(.highlight){background-color:#6d40ad}.theme-purple-light-gray .markdown-content table:not(.highlight) tr{border-color:#d8d8d8}.theme-purple-light-gray .markdown-content p>code{background-color:hsla(0,0%,93%,.2)!important;color:#eee!important}.theme-purple-light-gray .markdown-content a.footnote-backref{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content .grvsc-container{font-size:.875rem!important}.theme-purple-light-gray .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-light-gray-purple{background-color:#eee;color:#5e2ca5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple b,.theme-light-gray-purple h1,.theme-light-gray-purple h2,.theme-light-gray-purple h3,.theme-light-gray-purple h4,.theme-light-gray-purple h5,.theme-light-gray-purple strong{color:#5e2ca5}.theme-light-gray-purple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple nav a{color:#5e2ca5}.theme-light-gray-purple nav a.active{color:#6931b9}.theme-light-gray-purple p{color:#5e2ca5}.theme-light-gray-purple p a{color:#5e2ca5;font-weight:700;text-decoration:underline}.theme-light-gray-purple a.post-colophon-link,.theme-light-gray-purple a.post-colophon-link:visited{color:rgba(94,44,165,.3)!important}.theme-light-gray-purple hr{border-color:rgba(94,44,165,.1)!important;width:90%}.theme-light-gray-purple ol,.theme-light-gray-purple ul{color:#5e2ca5}.theme-light-gray-purple time{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content blockquote{border-color:#5e2ca5!important}.theme-light-gray-purple .markdown-content table:not(.highlight){background-color:#efefef}.theme-light-gray-purple .markdown-content table:not(.highlight) tr{border-color:#562996}.theme-light-gray-purple .markdown-content p>code{background-color:rgba(94,44,165,.2)!important;color:#5e2ca5!important}.theme-light-gray-purple .markdown-content a.footnote-backref{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-light-gray-purple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-run{background-color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run,.theme-run b,.theme-run h1,.theme-run h2,.theme-run h3,.theme-run h4,.theme-run h5,.theme-run strong{color:#e0ed5e}.theme-run nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run nav a{color:#e0ed5e}.theme-run nav a.active{color:#e4f075}.theme-run p{color:#e0ed5e}.theme-run p a{color:#e0ed5e;font-weight:700;text-decoration:underline}.theme-run a.post-colophon-link,.theme-run a.post-colophon-link:visited{color:rgba(224,237,94,.3)!important}.theme-run hr{border-color:rgba(224,237,94,.1)!important;width:90%}.theme-run ol,.theme-run ul{color:#e0ed5e}.theme-run time{color:#e0ed5e;font-weight:700}.theme-run .markdown-content blockquote{border-color:#e0ed5e!important}.theme-run .markdown-content table:not(.highlight){background-color:#303030}.theme-run .markdown-content table:not(.highlight) tr{border-color:#cbd756}.theme-run .markdown-content p>code{background-color:rgba(224,237,94,.2)!important;color:#e0ed5e!important}.theme-run .markdown-content a.footnote-backref{color:#e0ed5e;font-weight:700}.theme-run .markdown-content .grvsc-container{font-size:.875rem!important}.theme-run .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-sign-in-with-apple{background-color:#f4f4f4;color:#000;font-family:San Francisco,helvetica neue,helvetica,sans-serif}.theme-sign-in-with-apple b,.theme-sign-in-with-apple h1,.theme-sign-in-with-apple h2,.theme-sign-in-with-apple h3,.theme-sign-in-with-apple h4,.theme-sign-in-with-apple h5,.theme-sign-in-with-apple strong{color:#000}.theme-sign-in-with-apple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-sign-in-with-apple nav a{color:#000}.theme-sign-in-with-apple nav a.active{color:#0d0d0d}.theme-sign-in-with-apple p{color:#000}.theme-sign-in-with-apple p a{color:#000;font-weight:700;text-decoration:underline}.theme-sign-in-with-apple a.post-colophon-link,.theme-sign-in-with-apple a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.theme-sign-in-with-apple hr{border-color:rgba(0,0,0,.1)!important;width:90%}.theme-sign-in-with-apple ol,.theme-sign-in-with-apple ul{color:#000}.theme-sign-in-with-apple time{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content blockquote{border-color:#000!important}.theme-sign-in-with-apple .markdown-content table:not(.highlight){background-color:#f4f4f4}.theme-sign-in-with-apple .markdown-content table:not(.highlight) tr{border-color:#020202}.theme-sign-in-with-apple .markdown-content p>code{background-color:rgba(0,0,0,.2)!important;color:#000!important}.theme-sign-in-with-apple .markdown-content a.footnote-backref{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-sign-in-with-apple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-checklist-manifesto{background-color:#fbf8de;color:#db572b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto b,.theme-checklist-manifesto h1,.theme-checklist-manifesto h2,.theme-checklist-manifesto h3,.theme-checklist-manifesto h4,.theme-checklist-manifesto h5,.theme-checklist-manifesto strong{color:#db572b}.theme-checklist-manifesto nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto nav a{color:#db572b}.theme-checklist-manifesto nav a.active{color:#df6841}.theme-checklist-manifesto p{color:#db572b}.theme-checklist-manifesto p a{color:#db572b;font-weight:700;text-decoration:underline}.theme-checklist-manifesto a.post-colophon-link,.theme-checklist-manifesto a.post-colophon-link:visited{color:rgba(219,87,43,.3)!important}.theme-checklist-manifesto hr{border-color:rgba(219,87,43,.1)!important;width:90%}.theme-checklist-manifesto ol,.theme-checklist-manifesto ul{color:#db572b}.theme-checklist-manifesto time{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content blockquote{border-color:#db572b!important}.theme-checklist-manifesto .markdown-content table:not(.highlight){background-color:#faf8e0}.theme-checklist-manifesto .markdown-content table:not(.highlight) tr{border-color:#c75028}.theme-checklist-manifesto .markdown-content p>code{background-color:rgba(219,87,43,.2)!important;color:#db572b!important}.theme-checklist-manifesto .markdown-content a.footnote-backref{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content .grvsc-container{font-size:.875rem!important}.theme-checklist-manifesto .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-enron{background-color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron,.theme-enron b,.theme-enron h1,.theme-enron h2,.theme-enron h3,.theme-enron h4,.theme-enron h5,.theme-enron strong{color:#9eebcf}.theme-enron nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron nav a{color:#9eebcf}.theme-enron nav a.active{color:#b3efd9}.theme-enron p{color:#9eebcf}.theme-enron p a{color:#9eebcf;font-weight:700;text-decoration:underline}.theme-enron a.post-colophon-link,.theme-enron a.post-colophon-link:visited{color:rgba(158,235,207,.3)!important}.theme-enron hr{border-color:rgba(158,235,207,.1)!important;width:90%}.theme-enron ol,.theme-enron ul{color:#9eebcf}.theme-enron time{color:#9eebcf;font-weight:700}.theme-enron .markdown-content blockquote{border-color:#9eebcf!important}.theme-enron .markdown-content table:not(.highlight){background-color:#282828}.theme-enron .markdown-content table:not(.highlight) tr{border-color:#90d5bc}.theme-enron .markdown-content p>code{background-color:rgba(158,235,207,.2)!important;color:#9eebcf!important}.theme-enron .markdown-content a.footnote-backref{color:#9eebcf;font-weight:700}.theme-enron .markdown-content .grvsc-container{font-size:.875rem!important}.theme-enron .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-boardgames{background-color:#daedf0;background:linear-gradient(240deg,#6c95c7,#daedf0 26%,#d4ebed 39%,#bbe1e0 63%,#f2eee1);color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames b,.theme-boardgames h1,.theme-boardgames h2,.theme-boardgames h3,.theme-boardgames h4,.theme-boardgames h5,.theme-boardgames strong{color:#111}.theme-boardgames nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames nav a{color:#111}.theme-boardgames nav a.active{color:#1e1e1e}.theme-boardgames p{color:#111}.theme-boardgames p a{color:#111;font-weight:700;text-decoration:underline}.theme-boardgames a.post-colophon-link,.theme-boardgames a.post-colophon-link:visited{color:hsla(0,0%,7%,.3)!important}.theme-boardgames hr{border-color:hsla(0,0%,7%,.1)!important;width:90%}.theme-boardgames ol,.theme-boardgames ul{color:#111}.theme-boardgames time{color:#111;font-weight:700}.theme-boardgames .markdown-content blockquote{border-color:#111!important}.theme-boardgames .markdown-content table:not(.highlight){background-color:#ddeef0}.theme-boardgames .markdown-content table:not(.highlight) tr{border-color:#111}.theme-boardgames .markdown-content p>code{background-color:hsla(0,0%,7%,.2)!important;color:#111!important}.theme-boardgames .markdown-content a.footnote-backref{color:#111;font-weight:700}.theme-boardgames .markdown-content .grvsc-container{font-size:.875rem!important}.theme-boardgames .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}img::selection{background:transparent}img::-moz-selection{background:transparent}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:400;text-rendering:optimizeLegibility}iframe{border:none}hr{border-top:none}a.post-colophon-link,a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.gist table tr:last-child{border-bottom:1px}h2 .header-link,h3 .header-link{margin-top:2rem}h5 .header-link{margin-top:-.14rem}.markdown-content .grvsc-container{font-size:.875rem!important}.markdown-content .grvsc-container::-webkit-scrollbar{display:none}.markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.markdown-content .gatsby-resp-image-wrapper{margin-top:1rem}.style-module--body--a1572{background-color:#1a1a1a;color:#e0ed5e}.style-module--body--a1572 a,.style-module--body--a1572 h1,.style-module--body--a1572 h3,.style-module--body--a1572 h4,.style-module--body--a1572 li,.style-module--body--a1572 p{color:#e0ed5e;text-decoration:none}.style-module--body--a1572 h1{font-size:3rem;font-weight:700}.style-module--yearSVG--347ec{border:0;height:65%;margin:1rem 0 0;padding:0;width:65%}.style-module--locationSVG--2adbd{border:0;height:100%;margin:1rem 0 0;padding:0;width:100%}.style-module--buttons--4da44{margin:0 auto;padding-right:70px}.style-module--button--1573e{color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1rem;margin-top:.1rem;padding:1.3rem .4rem;position:relative;text-align:center}.style-module--fullscreenButton--4aa1d{opacity:.3;padding:1.2rem;right:0;top:0}.style-module--runTitle--09504{bottom:0;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:29px;left:120px;position:absolute;width:710px}@media only screen and (max-width:700px){.style-module--runTable--84570 td:nth-child(4),.style-module--runTable--84570 th:nth-child(4){display:none}}.style-module--runTable--84570{font-variant:tabular-nums;margin:2rem 0 5rem;width:100%}.style-module--runTable--84570 thead{color:#ccc;text-align:right}.style-module--runTable--84570 thead th{padding:.5rem}.style-module--runRow--42c85 td{border:0;padding:.5rem;text-align:right}.style-module--runRow--42c85 td:first-child{text-align:left}.style-module--runRow--42c85:hover{background-color:#222}.style-module--tableContainer--b302a{overflow-x:scroll;width:100%}.style-module--runDate--b8f52{color:#ccc}.style-module--runSVG--e35c5{height:250%;margin:1rem 0 0;width:100%}Running Page

404

This page doesn't exist.

If you wanna more message, you could visit https://yihong.run

\ No newline at end of file diff --git a/404/index.html b/404/index.html index 96e8ed49169..045388aa2dd 100644 --- a/404/index.html +++ b/404/index.html @@ -2,4 +2,4 @@ /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,input,optgroup,select,textarea{font-family:inherit}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=search]::-webkit-search-decoration{-webkit-appearance:none}details{display:block}.border-box,a,article,aside,blockquote,body,code,dd,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,nav,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.bb{border-bottom-style:solid;border-bottom-width:1px}.b--black-20{border-color:rgba(0,0,0,.2)}.b--initial{border-color:initial}.b--unset{border-color:unset}.br-inherit{border-radius:inherit}.br-initial{border-radius:initial}.br-unset{border-radius:unset}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.b{font-weight:700}.lh-solid{line-height:1}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.rotate-45{-webkit-transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.gray{color:#777}.silver{color:#999}.bg-light-gray{background-color:#eee}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.pl4{padding-left:2rem}.mv4{margin-bottom:2rem;margin-top:2rem}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9)}.grow-large{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95)}.nested-copy-indent p+p{text-indent:1em}.nested-copy-separator p+p{margin-top:1.5em}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAFElEQVR4AWPAC97/9x0eCsAEPgwAVLshdpENIxcAAAAASUVORK5CYII=) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVR4AWOgCLz/b0epAa6UGuBOqQHOQHLUgFEDnAbcBZ4UGwDOkiCnkIhdgNgNxAYAiYlD+8sEuo8AAAAASUVORK5CYII=) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/gif;base64,R0lGODdhCAAIAPEAAADw/wDx/////wAAACwAAAAACAAIAAACDZQvgaeb/lxbAIKA8y0AOw==) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/gif;base64,R0lGODdhEAAQAPEAAADw/wDx/xXy/////ywAAAAAEAAQAAACIZyPKckYDQFsb6ZqD85jZ2+BkwiRFKehhqQCQgDHcgwEBQA7) repeat 0 0}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-ns{border-radius:inherit}.br-initial-ns{border-radius:initial}.br-unset-ns{border-radius:unset}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-m{border-radius:inherit}.br-initial-m{border-radius:initial}.br-unset-m{border-radius:unset}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-l{border-radius:inherit}.br-initial-l{border-radius:initial}.br-unset-l{border-radius:unset}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}} -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em)and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}@media screen and (min-width:30em){.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}}@media screen and (min-width:30em)and (max-width:60em){.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}}@media screen and (min-width:60em){.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em)and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}@media screen and (min-width:30em){.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}}@media screen and (min-width:30em)and (max-width:60em){.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}}@media screen and (min-width:60em){.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb,hr{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em)and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.013)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20,hr{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.013)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em)and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em)and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em)and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em)and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em)and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em)and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em)and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em)and (max-width:60em){.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em)and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em)and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}.normal{font-weight:400}.b,b,strong{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em)and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em)and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em)and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}.lh-solid,h1,h2,h3,h4,h5{line-height:1}.lh-title{line-height:1.25}.lh-copy,ol,ol li,p,ul,ul li{line-height:1.5}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em)and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}}.link,ol li a,p a,ul li a{text-decoration:none}.link,.link:active,.link:hover,.link:link,.link:visited,ol li a,ol li a:active,ol li a:hover,ol li a:link,ol li a:visited,p a,p a:active,p a:hover,p a:link,p a:visited,ul li a,ul li a:active,ul li a:hover,ul li a:link,ul li a:visited{transition:color .15s ease-in}.link:focus,ol li a:focus,p a:focus,ul li a:focus{outline:1px dotted currentColor;transition:color .15s ease-in}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em)and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.3333333333%}.w-two-thirds{width:66.6666666667%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.3333333333%}.w-two-thirds-ns{width:66.6666666667%}.w-auto-ns{width:auto}}@media screen and (min-width:30em)and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.3333333333%}.w-two-thirds-m{width:66.6666666667%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.3333333333%}.w-two-thirds-l{width:66.6666666667%}.w-auto-l{width:auto}}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em)and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em)and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.rotate-45-ns{transform:rotate(45deg)}.rotate-90-ns{transform:rotate(90deg)}.rotate-135-ns{transform:rotate(135deg)}.rotate-180-ns{transform:rotate(180deg)}.rotate-225-ns{transform:rotate(225deg)}.rotate-270-ns{transform:rotate(270deg)}.rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em)and (max-width:60em){.rotate-45-m{transform:rotate(45deg)}.rotate-90-m{transform:rotate(90deg)}.rotate-135-m{transform:rotate(135deg)}.rotate-180-m{transform:rotate(180deg)}.rotate-225-m{transform:rotate(225deg)}.rotate-270-m{transform:rotate(270deg)}.rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.rotate-45-l{transform:rotate(45deg)}.rotate-90-l{transform:rotate(90deg)}.rotate-135-l{transform:rotate(135deg)}.rotate-180-l{transform:rotate(180deg)}.rotate-225-l{transform:rotate(225deg)}.rotate-270-l{transform:rotate(270deg)}.rotate-315-l{transform:rotate(315deg)}}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black,b,strong{color:#000}.near-black,h1,h2,h3,h4,h5{color:#111}.dark-gray,nav a,ol,p,ul{color:#333}.mid-gray{color:#555}.gray,time{color:#777}.silver,nav a.active{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray,.markdown-content .grvsc-container{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4,ol,ul{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-bottom:0;padding-top:0}.pv1{padding-bottom:.25rem;padding-top:.25rem}.pv2{padding-bottom:.5rem;padding-top:.5rem}.pv3{padding-bottom:1rem;padding-top:1rem}.pv4{padding-bottom:2rem;padding-top:2rem}.pv5{padding-bottom:4rem;padding-top:4rem}.pv6{padding-bottom:8rem;padding-top:8rem}.pv7{padding-bottom:16rem;padding-top:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-bottom:0;margin-top:0}.mv1{margin-bottom:.25rem;margin-top:.25rem}.mv2{margin-bottom:.5rem;margin-top:.5rem}.mv3{margin-bottom:1rem;margin-top:1rem}.mv4,hr{margin-bottom:2rem;margin-top:2rem}.mv5{margin-bottom:4rem;margin-top:4rem}.mv6{margin-bottom:8rem;margin-top:8rem}.mv7{margin-bottom:16rem;margin-top:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em)and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}@media screen and (min-width:30em){.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em)and (max-width:60em){.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em)and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}}@media screen and (min-width:30em)and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em)and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}@media screen and (min-width:30em){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}}@media screen and (min-width:30em)and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps{font-variant:small-caps}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em)and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}@media screen and (min-width:30em){.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em)and (max-width:60em){.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}}.clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}@media screen and (min-width:30em){.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:30em)and (max-width:60em){.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:60em){.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em)and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em)and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover,ol li a:focus,ol li a:hover,p a:focus,p a:hover,ul li a:focus,ul li a:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.grow:focus,.grow:hover{transform:scale(1.05)}.grow:active{transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{transform:scale(1.2)}.grow-large:active{transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{display:block;max-width:100%;width:100%}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.theme-blue-washed-red{background-color:#357edd;color:#ffdfdf;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red b,.theme-blue-washed-red h1,.theme-blue-washed-red h2,.theme-blue-washed-red h3,.theme-blue-washed-red h4,.theme-blue-washed-red h5,.theme-blue-washed-red strong{color:#ffdfdf}.theme-blue-washed-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red nav a{color:#ffdfdf}.theme-blue-washed-red nav a.active{color:#fff9f9}.theme-blue-washed-red p{color:#ffdfdf}.theme-blue-washed-red p a{color:#ffdfdf;font-weight:700;text-decoration:underline}.theme-blue-washed-red a.post-colophon-link,.theme-blue-washed-red a.post-colophon-link:visited{color:hsla(0,100%,94%,.3)!important}.theme-blue-washed-red hr{border-color:hsla(0,100%,94%,.1)!important;width:90%}.theme-blue-washed-red ol,.theme-blue-washed-red ul{color:#ffdfdf}.theme-blue-washed-red time{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content blockquote{border-color:#ffdfdf!important}.theme-blue-washed-red .markdown-content table:not(.highlight){background-color:#488adf}.theme-blue-washed-red .markdown-content table:not(.highlight) tr{border-color:#e7caca}.theme-blue-washed-red .markdown-content p>code{background-color:hsla(0,100%,94%,.2)!important;color:#ffdfdf!important}.theme-blue-washed-red .markdown-content a.footnote-backref{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-blue-washed-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-green-red{background-color:#e8fdf5;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red b,.theme-washed-green-red h1,.theme-washed-green-red h2,.theme-washed-green-red h3,.theme-washed-green-red h4,.theme-washed-green-red h5,.theme-washed-green-red strong{color:#ff4136}.theme-washed-green-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red nav a{color:#ff4136}.theme-washed-green-red nav a.active{color:#ff5950}.theme-washed-green-red p{color:#ff4136}.theme-washed-green-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-green-red a.post-colophon-link,.theme-washed-green-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-green-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-green-red ol,.theme-washed-green-red ul{color:#ff4136}.theme-washed-green-red time{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-green-red .markdown-content table:not(.highlight){background-color:#e9fcf5}.theme-washed-green-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-green-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-green-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-green-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-blue-red{background-color:#f6fffe;color:#ff4136;font-family:helvetica neue,helvetica,sans-serif}.theme-washed-blue-red b,.theme-washed-blue-red h1,.theme-washed-blue-red h2,.theme-washed-blue-red h3,.theme-washed-blue-red h4,.theme-washed-blue-red h5,.theme-washed-blue-red strong{color:#ff4136}.theme-washed-blue-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-blue-red nav a{color:#ff4136}.theme-washed-blue-red nav a.active{color:#ff5950}.theme-washed-blue-red p{color:#ff4136}.theme-washed-blue-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-blue-red a.post-colophon-link,.theme-washed-blue-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-blue-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-blue-red ol,.theme-washed-blue-red ul{color:#ff4136}.theme-washed-blue-red time{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-blue-red .markdown-content table:not(.highlight){background-color:#f6fefd}.theme-washed-blue-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-blue-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-blue-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-blue-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-yellow-red{background-color:#fffceb;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red b,.theme-washed-yellow-red h1,.theme-washed-yellow-red h2,.theme-washed-yellow-red h3,.theme-washed-yellow-red h4,.theme-washed-yellow-red h5,.theme-washed-yellow-red strong{color:#ff4136}.theme-washed-yellow-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red nav a{color:#ff4136}.theme-washed-yellow-red nav a.active{color:#ff5950}.theme-washed-yellow-red p{color:#ff4136}.theme-washed-yellow-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-yellow-red a.post-colophon-link,.theme-washed-yellow-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-yellow-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-yellow-red ol,.theme-washed-yellow-red ul{color:#ff4136}.theme-washed-yellow-red time{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-yellow-red .markdown-content table:not(.highlight){background-color:#fefbec}.theme-washed-yellow-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-yellow-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-yellow-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-yellow-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-navy-light-red{background-color:#001b44;color:#ff725c;font-family:avenir next,avenir,sans-serif}.theme-navy-light-red b,.theme-navy-light-red h1,.theme-navy-light-red h2,.theme-navy-light-red h3,.theme-navy-light-red h4,.theme-navy-light-red h5,.theme-navy-light-red strong{color:#ff725c}.theme-navy-light-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-navy-light-red nav a{color:#ff725c}.theme-navy-light-red nav a.active{color:#ff8876}.theme-navy-light-red p{color:#ff725c}.theme-navy-light-red p a{color:#ff725c;font-weight:700;text-decoration:underline}.theme-navy-light-red a.post-colophon-link,.theme-navy-light-red a.post-colophon-link:visited{color:rgba(255,114,92,.3)!important}.theme-navy-light-red hr{border-color:rgba(255,114,92,.1)!important;width:90%}.theme-navy-light-red ol,.theme-navy-light-red ul{color:#ff725c}.theme-navy-light-red time{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content blockquote{border-color:#ff725c!important}.theme-navy-light-red .markdown-content table:not(.highlight){background-color:#183156}.theme-navy-light-red .markdown-content table:not(.highlight) tr{border-color:#e76855}.theme-navy-light-red .markdown-content p>code{background-color:rgba(255,114,92,.2)!important;color:#ff725c!important}.theme-navy-light-red .markdown-content a.footnote-backref{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-navy-light-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-gold{background-color:#111;color:#ffb700;font-family:avenir next,avenir,sans-serif}.theme-near-black-gold b,.theme-near-black-gold h1,.theme-near-black-gold h2,.theme-near-black-gold h3,.theme-near-black-gold h4,.theme-near-black-gold h5,.theme-near-black-gold strong{color:#ffb700}.theme-near-black-gold nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-gold nav a{color:#ffb700}.theme-near-black-gold nav a.active{color:#ffbe1a}.theme-near-black-gold p{color:#ffb700}.theme-near-black-gold p a{color:#ffb700;font-weight:700;text-decoration:underline}.theme-near-black-gold a.post-colophon-link,.theme-near-black-gold a.post-colophon-link:visited{color:rgba(255,183,0,.3)!important}.theme-near-black-gold hr{border-color:rgba(255,183,0,.1)!important;width:90%}.theme-near-black-gold ol,.theme-near-black-gold ul{color:#ffb700}.theme-near-black-gold time{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content blockquote{border-color:#ffb700!important}.theme-near-black-gold .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-gold .markdown-content table:not(.highlight) tr{border-color:#e7a602}.theme-near-black-gold .markdown-content p>code{background-color:rgba(255,183,0,.2)!important;color:#ffb700!important}.theme-near-black-gold .markdown-content a.footnote-backref{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-gold .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-light-yellow{background-color:#111;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow b,.theme-near-black-light-yellow h1,.theme-near-black-light-yellow h2,.theme-near-black-light-yellow h3,.theme-near-black-light-yellow h4,.theme-near-black-light-yellow h5,.theme-near-black-light-yellow strong{color:#fbf1a9}.theme-near-black-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow nav a{color:#fbf1a9}.theme-near-black-light-yellow nav a.active{color:#fcf5c1}.theme-near-black-light-yellow p{color:#fbf1a9}.theme-near-black-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-near-black-light-yellow a.post-colophon-link,.theme-near-black-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-near-black-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-near-black-light-yellow ol,.theme-near-black-light-yellow ul{color:#fbf1a9}.theme-near-black-light-yellow time{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-near-black-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-red-light-yellow{background-color:#ff4136;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow b,.theme-red-light-yellow h1,.theme-red-light-yellow h2,.theme-red-light-yellow h3,.theme-red-light-yellow h4,.theme-red-light-yellow h5,.theme-red-light-yellow strong{color:#fbf1a9}.theme-red-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow nav a{color:#fbf1a9}.theme-red-light-yellow nav a.active{color:#fcf5c1}.theme-red-light-yellow p{color:#fbf1a9}.theme-red-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-red-light-yellow a.post-colophon-link,.theme-red-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-red-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-red-light-yellow ol,.theme-red-light-yellow ul{color:#fbf1a9}.theme-red-light-yellow time{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-red-light-yellow .markdown-content table:not(.highlight){background-color:#fe5349}.theme-red-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-red-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-red-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-red-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-purple-light-gray{background-color:#5e2ca5;color:#eee;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray b,.theme-purple-light-gray h1,.theme-purple-light-gray h2,.theme-purple-light-gray h3,.theme-purple-light-gray h4,.theme-purple-light-gray h5,.theme-purple-light-gray strong{color:#eee}.theme-purple-light-gray nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray nav a{color:#eee}.theme-purple-light-gray nav a.active{color:#fbfbfb}.theme-purple-light-gray p{color:#eee}.theme-purple-light-gray p a{color:#eee;font-weight:700;text-decoration:underline}.theme-purple-light-gray a.post-colophon-link,.theme-purple-light-gray a.post-colophon-link:visited{color:hsla(0,0%,93%,.3)!important}.theme-purple-light-gray hr{border-color:hsla(0,0%,93%,.1)!important;width:90%}.theme-purple-light-gray ol,.theme-purple-light-gray ul{color:#eee}.theme-purple-light-gray time{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content blockquote{border-color:#eee!important}.theme-purple-light-gray .markdown-content table:not(.highlight){background-color:#6d40ad}.theme-purple-light-gray .markdown-content table:not(.highlight) tr{border-color:#d8d8d8}.theme-purple-light-gray .markdown-content p>code{background-color:hsla(0,0%,93%,.2)!important;color:#eee!important}.theme-purple-light-gray .markdown-content a.footnote-backref{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content .grvsc-container{font-size:.875rem!important}.theme-purple-light-gray .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-light-gray-purple{background-color:#eee;color:#5e2ca5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple b,.theme-light-gray-purple h1,.theme-light-gray-purple h2,.theme-light-gray-purple h3,.theme-light-gray-purple h4,.theme-light-gray-purple h5,.theme-light-gray-purple strong{color:#5e2ca5}.theme-light-gray-purple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple nav a{color:#5e2ca5}.theme-light-gray-purple nav a.active{color:#6931b9}.theme-light-gray-purple p{color:#5e2ca5}.theme-light-gray-purple p a{color:#5e2ca5;font-weight:700;text-decoration:underline}.theme-light-gray-purple a.post-colophon-link,.theme-light-gray-purple a.post-colophon-link:visited{color:rgba(94,44,165,.3)!important}.theme-light-gray-purple hr{border-color:rgba(94,44,165,.1)!important;width:90%}.theme-light-gray-purple ol,.theme-light-gray-purple ul{color:#5e2ca5}.theme-light-gray-purple time{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content blockquote{border-color:#5e2ca5!important}.theme-light-gray-purple .markdown-content table:not(.highlight){background-color:#efefef}.theme-light-gray-purple .markdown-content table:not(.highlight) tr{border-color:#562996}.theme-light-gray-purple .markdown-content p>code{background-color:rgba(94,44,165,.2)!important;color:#5e2ca5!important}.theme-light-gray-purple .markdown-content a.footnote-backref{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-light-gray-purple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-run{background-color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run,.theme-run b,.theme-run h1,.theme-run h2,.theme-run h3,.theme-run h4,.theme-run h5,.theme-run strong{color:#e0ed5e}.theme-run nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run nav a{color:#e0ed5e}.theme-run nav a.active{color:#e4f075}.theme-run p{color:#e0ed5e}.theme-run p a{color:#e0ed5e;font-weight:700;text-decoration:underline}.theme-run a.post-colophon-link,.theme-run a.post-colophon-link:visited{color:rgba(224,237,94,.3)!important}.theme-run hr{border-color:rgba(224,237,94,.1)!important;width:90%}.theme-run ol,.theme-run ul{color:#e0ed5e}.theme-run time{color:#e0ed5e;font-weight:700}.theme-run .markdown-content blockquote{border-color:#e0ed5e!important}.theme-run .markdown-content table:not(.highlight){background-color:#303030}.theme-run .markdown-content table:not(.highlight) tr{border-color:#cbd756}.theme-run .markdown-content p>code{background-color:rgba(224,237,94,.2)!important;color:#e0ed5e!important}.theme-run .markdown-content a.footnote-backref{color:#e0ed5e;font-weight:700}.theme-run .markdown-content .grvsc-container{font-size:.875rem!important}.theme-run .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-sign-in-with-apple{background-color:#f4f4f4;color:#000;font-family:San Francisco,helvetica neue,helvetica,sans-serif}.theme-sign-in-with-apple b,.theme-sign-in-with-apple h1,.theme-sign-in-with-apple h2,.theme-sign-in-with-apple h3,.theme-sign-in-with-apple h4,.theme-sign-in-with-apple h5,.theme-sign-in-with-apple strong{color:#000}.theme-sign-in-with-apple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-sign-in-with-apple nav a{color:#000}.theme-sign-in-with-apple nav a.active{color:#0d0d0d}.theme-sign-in-with-apple p{color:#000}.theme-sign-in-with-apple p a{color:#000;font-weight:700;text-decoration:underline}.theme-sign-in-with-apple a.post-colophon-link,.theme-sign-in-with-apple a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.theme-sign-in-with-apple hr{border-color:rgba(0,0,0,.1)!important;width:90%}.theme-sign-in-with-apple ol,.theme-sign-in-with-apple ul{color:#000}.theme-sign-in-with-apple time{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content blockquote{border-color:#000!important}.theme-sign-in-with-apple .markdown-content table:not(.highlight){background-color:#f4f4f4}.theme-sign-in-with-apple .markdown-content table:not(.highlight) tr{border-color:#020202}.theme-sign-in-with-apple .markdown-content p>code{background-color:rgba(0,0,0,.2)!important;color:#000!important}.theme-sign-in-with-apple .markdown-content a.footnote-backref{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-sign-in-with-apple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-checklist-manifesto{background-color:#fbf8de;color:#db572b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto b,.theme-checklist-manifesto h1,.theme-checklist-manifesto h2,.theme-checklist-manifesto h3,.theme-checklist-manifesto h4,.theme-checklist-manifesto h5,.theme-checklist-manifesto strong{color:#db572b}.theme-checklist-manifesto nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto nav a{color:#db572b}.theme-checklist-manifesto nav a.active{color:#df6841}.theme-checklist-manifesto p{color:#db572b}.theme-checklist-manifesto p a{color:#db572b;font-weight:700;text-decoration:underline}.theme-checklist-manifesto a.post-colophon-link,.theme-checklist-manifesto a.post-colophon-link:visited{color:rgba(219,87,43,.3)!important}.theme-checklist-manifesto hr{border-color:rgba(219,87,43,.1)!important;width:90%}.theme-checklist-manifesto ol,.theme-checklist-manifesto ul{color:#db572b}.theme-checklist-manifesto time{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content blockquote{border-color:#db572b!important}.theme-checklist-manifesto .markdown-content table:not(.highlight){background-color:#faf8e0}.theme-checklist-manifesto .markdown-content table:not(.highlight) tr{border-color:#c75028}.theme-checklist-manifesto .markdown-content p>code{background-color:rgba(219,87,43,.2)!important;color:#db572b!important}.theme-checklist-manifesto .markdown-content a.footnote-backref{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content .grvsc-container{font-size:.875rem!important}.theme-checklist-manifesto .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-enron{background-color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron,.theme-enron b,.theme-enron h1,.theme-enron h2,.theme-enron h3,.theme-enron h4,.theme-enron h5,.theme-enron strong{color:#9eebcf}.theme-enron nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron nav a{color:#9eebcf}.theme-enron nav a.active{color:#b3efd9}.theme-enron p{color:#9eebcf}.theme-enron p a{color:#9eebcf;font-weight:700;text-decoration:underline}.theme-enron a.post-colophon-link,.theme-enron a.post-colophon-link:visited{color:rgba(158,235,207,.3)!important}.theme-enron hr{border-color:rgba(158,235,207,.1)!important;width:90%}.theme-enron ol,.theme-enron ul{color:#9eebcf}.theme-enron time{color:#9eebcf;font-weight:700}.theme-enron .markdown-content blockquote{border-color:#9eebcf!important}.theme-enron .markdown-content table:not(.highlight){background-color:#282828}.theme-enron .markdown-content table:not(.highlight) tr{border-color:#90d5bc}.theme-enron .markdown-content p>code{background-color:rgba(158,235,207,.2)!important;color:#9eebcf!important}.theme-enron .markdown-content a.footnote-backref{color:#9eebcf;font-weight:700}.theme-enron .markdown-content .grvsc-container{font-size:.875rem!important}.theme-enron .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-boardgames{background-color:#daedf0;background:linear-gradient(240deg,#6c95c7,#daedf0 26%,#d4ebed 39%,#bbe1e0 63%,#f2eee1);color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames b,.theme-boardgames h1,.theme-boardgames h2,.theme-boardgames h3,.theme-boardgames h4,.theme-boardgames h5,.theme-boardgames strong{color:#111}.theme-boardgames nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames nav a{color:#111}.theme-boardgames nav a.active{color:#1e1e1e}.theme-boardgames p{color:#111}.theme-boardgames p a{color:#111;font-weight:700;text-decoration:underline}.theme-boardgames a.post-colophon-link,.theme-boardgames a.post-colophon-link:visited{color:hsla(0,0%,7%,.3)!important}.theme-boardgames hr{border-color:hsla(0,0%,7%,.1)!important;width:90%}.theme-boardgames ol,.theme-boardgames ul{color:#111}.theme-boardgames time{color:#111;font-weight:700}.theme-boardgames .markdown-content blockquote{border-color:#111!important}.theme-boardgames .markdown-content table:not(.highlight){background-color:#ddeef0}.theme-boardgames .markdown-content table:not(.highlight) tr{border-color:#111}.theme-boardgames .markdown-content p>code{background-color:hsla(0,0%,7%,.2)!important;color:#111!important}.theme-boardgames .markdown-content a.footnote-backref{color:#111;font-weight:700}.theme-boardgames .markdown-content .grvsc-container{font-size:.875rem!important}.theme-boardgames .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}img::selection{background:transparent}img::-moz-selection{background:transparent}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:400;text-rendering:optimizeLegibility}iframe{border:none}hr{border-top:none}a.post-colophon-link,a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.gist table tr:last-child{border-bottom:1px}h2 .header-link,h3 .header-link{margin-top:2rem}h5 .header-link{margin-top:-.14rem}.markdown-content .grvsc-container{font-size:.875rem!important}.markdown-content .grvsc-container::-webkit-scrollbar{display:none}.markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.markdown-content .gatsby-resp-image-wrapper{margin-top:1rem}.style-module--body--a1572{background-color:#1a1a1a;color:#e0ed5e}.style-module--body--a1572 a,.style-module--body--a1572 h1,.style-module--body--a1572 h3,.style-module--body--a1572 h4,.style-module--body--a1572 li,.style-module--body--a1572 p{color:#e0ed5e;text-decoration:none}.style-module--body--a1572 h1{font-size:3rem;font-weight:700}.style-module--yearSVG--347ec{border:0;height:65%;margin:1rem 0 0;padding:0;width:65%}.style-module--locationSVG--2adbd{border:0;height:100%;margin:1rem 0 0;padding:0;width:100%}.style-module--buttons--4da44{margin:0 auto;padding-right:70px}.style-module--button--1573e{color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1rem;margin-top:.1rem;padding:1.3rem .4rem;position:relative;text-align:center}.style-module--fullscreenButton--4aa1d{opacity:.3;padding:1.2rem;right:0;top:0}.style-module--runTitle--09504{bottom:0;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:29px;left:120px;position:absolute;width:710px}@media only screen and (max-width:700px){.style-module--runTable--84570 td:nth-child(4),.style-module--runTable--84570 th:nth-child(4){display:none}}.style-module--runTable--84570{font-variant:tabular-nums;margin:2rem 0 5rem;width:100%}.style-module--runTable--84570 thead{color:#ccc;text-align:right}.style-module--runTable--84570 thead th{padding:.5rem}.style-module--runRow--42c85 td{border:0;padding:.5rem;text-align:right}.style-module--runRow--42c85 td:first-child{text-align:left}.style-module--runRow--42c85:hover{background-color:#222}.style-module--tableContainer--b302a{overflow-x:scroll;width:100%}.style-module--runDate--b8f52{color:#ccc}.style-module--runSVG--e35c5{height:250%;margin:1rem 0 0;width:100%}Running Page

404

This page doesn't exist.

If you wanna more message, you could visit https://yihong.run

\ No newline at end of file +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em)and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}@media screen and (min-width:30em){.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}}@media screen and (min-width:30em)and (max-width:60em){.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}}@media screen and (min-width:60em){.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em)and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}@media screen and (min-width:30em){.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}}@media screen and (min-width:30em)and (max-width:60em){.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}}@media screen and (min-width:60em){.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb,hr{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em)and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.013)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20,hr{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.013)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em)and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em)and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em)and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em)and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em)and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em)and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em)and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em)and (max-width:60em){.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em)and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em)and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}.normal{font-weight:400}.b,b,strong{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em)and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em)and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em)and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}.lh-solid,h1,h2,h3,h4,h5{line-height:1}.lh-title{line-height:1.25}.lh-copy,ol,ol li,p,ul,ul li{line-height:1.5}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em)and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}}.link,ol li a,p a,ul li a{text-decoration:none}.link,.link:active,.link:hover,.link:link,.link:visited,ol li a,ol li a:active,ol li a:hover,ol li a:link,ol li a:visited,p a,p a:active,p a:hover,p a:link,p a:visited,ul li a,ul li a:active,ul li a:hover,ul li a:link,ul li a:visited{transition:color .15s ease-in}.link:focus,ol li a:focus,p a:focus,ul li a:focus{outline:1px dotted currentColor;transition:color .15s ease-in}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em)and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.3333333333%}.w-two-thirds{width:66.6666666667%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.3333333333%}.w-two-thirds-ns{width:66.6666666667%}.w-auto-ns{width:auto}}@media screen and (min-width:30em)and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.3333333333%}.w-two-thirds-m{width:66.6666666667%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.3333333333%}.w-two-thirds-l{width:66.6666666667%}.w-auto-l{width:auto}}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em)and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em)and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.rotate-45-ns{transform:rotate(45deg)}.rotate-90-ns{transform:rotate(90deg)}.rotate-135-ns{transform:rotate(135deg)}.rotate-180-ns{transform:rotate(180deg)}.rotate-225-ns{transform:rotate(225deg)}.rotate-270-ns{transform:rotate(270deg)}.rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em)and (max-width:60em){.rotate-45-m{transform:rotate(45deg)}.rotate-90-m{transform:rotate(90deg)}.rotate-135-m{transform:rotate(135deg)}.rotate-180-m{transform:rotate(180deg)}.rotate-225-m{transform:rotate(225deg)}.rotate-270-m{transform:rotate(270deg)}.rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.rotate-45-l{transform:rotate(45deg)}.rotate-90-l{transform:rotate(90deg)}.rotate-135-l{transform:rotate(135deg)}.rotate-180-l{transform:rotate(180deg)}.rotate-225-l{transform:rotate(225deg)}.rotate-270-l{transform:rotate(270deg)}.rotate-315-l{transform:rotate(315deg)}}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black,b,strong{color:#000}.near-black,h1,h2,h3,h4,h5{color:#111}.dark-gray,nav a,ol,p,ul{color:#333}.mid-gray{color:#555}.gray,time{color:#777}.silver,nav a.active{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray,.markdown-content .grvsc-container{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4,ol,ul{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-bottom:0;padding-top:0}.pv1{padding-bottom:.25rem;padding-top:.25rem}.pv2{padding-bottom:.5rem;padding-top:.5rem}.pv3{padding-bottom:1rem;padding-top:1rem}.pv4{padding-bottom:2rem;padding-top:2rem}.pv5{padding-bottom:4rem;padding-top:4rem}.pv6{padding-bottom:8rem;padding-top:8rem}.pv7{padding-bottom:16rem;padding-top:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-bottom:0;margin-top:0}.mv1{margin-bottom:.25rem;margin-top:.25rem}.mv2{margin-bottom:.5rem;margin-top:.5rem}.mv3{margin-bottom:1rem;margin-top:1rem}.mv4,hr{margin-bottom:2rem;margin-top:2rem}.mv5{margin-bottom:4rem;margin-top:4rem}.mv6{margin-bottom:8rem;margin-top:8rem}.mv7{margin-bottom:16rem;margin-top:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em)and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}@media screen and (min-width:30em){.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em)and (max-width:60em){.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em)and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}}@media screen and (min-width:30em)and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em)and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}@media screen and (min-width:30em){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}}@media screen and (min-width:30em)and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps{font-variant:small-caps}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em)and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}@media screen and (min-width:30em){.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em)and (max-width:60em){.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}}.clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}@media screen and (min-width:30em){.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:30em)and (max-width:60em){.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:60em){.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em)and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em)and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover,ol li a:focus,ol li a:hover,p a:focus,p a:hover,ul li a:focus,ul li a:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.grow:focus,.grow:hover{transform:scale(1.05)}.grow:active{transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{transform:scale(1.2)}.grow-large:active{transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{display:block;max-width:100%;width:100%}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.theme-blue-washed-red{background-color:#357edd;color:#ffdfdf;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red b,.theme-blue-washed-red h1,.theme-blue-washed-red h2,.theme-blue-washed-red h3,.theme-blue-washed-red h4,.theme-blue-washed-red h5,.theme-blue-washed-red strong{color:#ffdfdf}.theme-blue-washed-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red nav a{color:#ffdfdf}.theme-blue-washed-red nav a.active{color:#fff9f9}.theme-blue-washed-red p{color:#ffdfdf}.theme-blue-washed-red p a{color:#ffdfdf;font-weight:700;text-decoration:underline}.theme-blue-washed-red a.post-colophon-link,.theme-blue-washed-red a.post-colophon-link:visited{color:hsla(0,100%,94%,.3)!important}.theme-blue-washed-red hr{border-color:hsla(0,100%,94%,.1)!important;width:90%}.theme-blue-washed-red ol,.theme-blue-washed-red ul{color:#ffdfdf}.theme-blue-washed-red time{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content blockquote{border-color:#ffdfdf!important}.theme-blue-washed-red .markdown-content table:not(.highlight){background-color:#488adf}.theme-blue-washed-red .markdown-content table:not(.highlight) tr{border-color:#e7caca}.theme-blue-washed-red .markdown-content p>code{background-color:hsla(0,100%,94%,.2)!important;color:#ffdfdf!important}.theme-blue-washed-red .markdown-content a.footnote-backref{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-blue-washed-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-green-red{background-color:#e8fdf5;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red b,.theme-washed-green-red h1,.theme-washed-green-red h2,.theme-washed-green-red h3,.theme-washed-green-red h4,.theme-washed-green-red h5,.theme-washed-green-red strong{color:#ff4136}.theme-washed-green-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red nav a{color:#ff4136}.theme-washed-green-red nav a.active{color:#ff5950}.theme-washed-green-red p{color:#ff4136}.theme-washed-green-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-green-red a.post-colophon-link,.theme-washed-green-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-green-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-green-red ol,.theme-washed-green-red ul{color:#ff4136}.theme-washed-green-red time{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-green-red .markdown-content table:not(.highlight){background-color:#e9fcf5}.theme-washed-green-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-green-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-green-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-green-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-blue-red{background-color:#f6fffe;color:#ff4136;font-family:helvetica neue,helvetica,sans-serif}.theme-washed-blue-red b,.theme-washed-blue-red h1,.theme-washed-blue-red h2,.theme-washed-blue-red h3,.theme-washed-blue-red h4,.theme-washed-blue-red h5,.theme-washed-blue-red strong{color:#ff4136}.theme-washed-blue-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-blue-red nav a{color:#ff4136}.theme-washed-blue-red nav a.active{color:#ff5950}.theme-washed-blue-red p{color:#ff4136}.theme-washed-blue-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-blue-red a.post-colophon-link,.theme-washed-blue-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-blue-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-blue-red ol,.theme-washed-blue-red ul{color:#ff4136}.theme-washed-blue-red time{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-blue-red .markdown-content table:not(.highlight){background-color:#f6fefd}.theme-washed-blue-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-blue-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-blue-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-blue-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-yellow-red{background-color:#fffceb;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red b,.theme-washed-yellow-red h1,.theme-washed-yellow-red h2,.theme-washed-yellow-red h3,.theme-washed-yellow-red h4,.theme-washed-yellow-red h5,.theme-washed-yellow-red strong{color:#ff4136}.theme-washed-yellow-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red nav a{color:#ff4136}.theme-washed-yellow-red nav a.active{color:#ff5950}.theme-washed-yellow-red p{color:#ff4136}.theme-washed-yellow-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-yellow-red a.post-colophon-link,.theme-washed-yellow-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-yellow-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-yellow-red ol,.theme-washed-yellow-red ul{color:#ff4136}.theme-washed-yellow-red time{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-yellow-red .markdown-content table:not(.highlight){background-color:#fefbec}.theme-washed-yellow-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-yellow-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-yellow-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-yellow-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-navy-light-red{background-color:#001b44;color:#ff725c;font-family:avenir next,avenir,sans-serif}.theme-navy-light-red b,.theme-navy-light-red h1,.theme-navy-light-red h2,.theme-navy-light-red h3,.theme-navy-light-red h4,.theme-navy-light-red h5,.theme-navy-light-red strong{color:#ff725c}.theme-navy-light-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-navy-light-red nav a{color:#ff725c}.theme-navy-light-red nav a.active{color:#ff8876}.theme-navy-light-red p{color:#ff725c}.theme-navy-light-red p a{color:#ff725c;font-weight:700;text-decoration:underline}.theme-navy-light-red a.post-colophon-link,.theme-navy-light-red a.post-colophon-link:visited{color:rgba(255,114,92,.3)!important}.theme-navy-light-red hr{border-color:rgba(255,114,92,.1)!important;width:90%}.theme-navy-light-red ol,.theme-navy-light-red ul{color:#ff725c}.theme-navy-light-red time{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content blockquote{border-color:#ff725c!important}.theme-navy-light-red .markdown-content table:not(.highlight){background-color:#183156}.theme-navy-light-red .markdown-content table:not(.highlight) tr{border-color:#e76855}.theme-navy-light-red .markdown-content p>code{background-color:rgba(255,114,92,.2)!important;color:#ff725c!important}.theme-navy-light-red .markdown-content a.footnote-backref{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-navy-light-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-gold{background-color:#111;color:#ffb700;font-family:avenir next,avenir,sans-serif}.theme-near-black-gold b,.theme-near-black-gold h1,.theme-near-black-gold h2,.theme-near-black-gold h3,.theme-near-black-gold h4,.theme-near-black-gold h5,.theme-near-black-gold strong{color:#ffb700}.theme-near-black-gold nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-gold nav a{color:#ffb700}.theme-near-black-gold nav a.active{color:#ffbe1a}.theme-near-black-gold p{color:#ffb700}.theme-near-black-gold p a{color:#ffb700;font-weight:700;text-decoration:underline}.theme-near-black-gold a.post-colophon-link,.theme-near-black-gold a.post-colophon-link:visited{color:rgba(255,183,0,.3)!important}.theme-near-black-gold hr{border-color:rgba(255,183,0,.1)!important;width:90%}.theme-near-black-gold ol,.theme-near-black-gold ul{color:#ffb700}.theme-near-black-gold time{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content blockquote{border-color:#ffb700!important}.theme-near-black-gold .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-gold .markdown-content table:not(.highlight) tr{border-color:#e7a602}.theme-near-black-gold .markdown-content p>code{background-color:rgba(255,183,0,.2)!important;color:#ffb700!important}.theme-near-black-gold .markdown-content a.footnote-backref{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-gold .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-light-yellow{background-color:#111;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow b,.theme-near-black-light-yellow h1,.theme-near-black-light-yellow h2,.theme-near-black-light-yellow h3,.theme-near-black-light-yellow h4,.theme-near-black-light-yellow h5,.theme-near-black-light-yellow strong{color:#fbf1a9}.theme-near-black-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow nav a{color:#fbf1a9}.theme-near-black-light-yellow nav a.active{color:#fcf5c1}.theme-near-black-light-yellow p{color:#fbf1a9}.theme-near-black-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-near-black-light-yellow a.post-colophon-link,.theme-near-black-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-near-black-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-near-black-light-yellow ol,.theme-near-black-light-yellow ul{color:#fbf1a9}.theme-near-black-light-yellow time{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-near-black-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-red-light-yellow{background-color:#ff4136;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow b,.theme-red-light-yellow h1,.theme-red-light-yellow h2,.theme-red-light-yellow h3,.theme-red-light-yellow h4,.theme-red-light-yellow h5,.theme-red-light-yellow strong{color:#fbf1a9}.theme-red-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow nav a{color:#fbf1a9}.theme-red-light-yellow nav a.active{color:#fcf5c1}.theme-red-light-yellow p{color:#fbf1a9}.theme-red-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-red-light-yellow a.post-colophon-link,.theme-red-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-red-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-red-light-yellow ol,.theme-red-light-yellow ul{color:#fbf1a9}.theme-red-light-yellow time{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-red-light-yellow .markdown-content table:not(.highlight){background-color:#fe5349}.theme-red-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-red-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-red-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-red-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-purple-light-gray{background-color:#5e2ca5;color:#eee;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray b,.theme-purple-light-gray h1,.theme-purple-light-gray h2,.theme-purple-light-gray h3,.theme-purple-light-gray h4,.theme-purple-light-gray h5,.theme-purple-light-gray strong{color:#eee}.theme-purple-light-gray nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray nav a{color:#eee}.theme-purple-light-gray nav a.active{color:#fbfbfb}.theme-purple-light-gray p{color:#eee}.theme-purple-light-gray p a{color:#eee;font-weight:700;text-decoration:underline}.theme-purple-light-gray a.post-colophon-link,.theme-purple-light-gray a.post-colophon-link:visited{color:hsla(0,0%,93%,.3)!important}.theme-purple-light-gray hr{border-color:hsla(0,0%,93%,.1)!important;width:90%}.theme-purple-light-gray ol,.theme-purple-light-gray ul{color:#eee}.theme-purple-light-gray time{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content blockquote{border-color:#eee!important}.theme-purple-light-gray .markdown-content table:not(.highlight){background-color:#6d40ad}.theme-purple-light-gray .markdown-content table:not(.highlight) tr{border-color:#d8d8d8}.theme-purple-light-gray .markdown-content p>code{background-color:hsla(0,0%,93%,.2)!important;color:#eee!important}.theme-purple-light-gray .markdown-content a.footnote-backref{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content .grvsc-container{font-size:.875rem!important}.theme-purple-light-gray .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-light-gray-purple{background-color:#eee;color:#5e2ca5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple b,.theme-light-gray-purple h1,.theme-light-gray-purple h2,.theme-light-gray-purple h3,.theme-light-gray-purple h4,.theme-light-gray-purple h5,.theme-light-gray-purple strong{color:#5e2ca5}.theme-light-gray-purple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple nav a{color:#5e2ca5}.theme-light-gray-purple nav a.active{color:#6931b9}.theme-light-gray-purple p{color:#5e2ca5}.theme-light-gray-purple p a{color:#5e2ca5;font-weight:700;text-decoration:underline}.theme-light-gray-purple a.post-colophon-link,.theme-light-gray-purple a.post-colophon-link:visited{color:rgba(94,44,165,.3)!important}.theme-light-gray-purple hr{border-color:rgba(94,44,165,.1)!important;width:90%}.theme-light-gray-purple ol,.theme-light-gray-purple ul{color:#5e2ca5}.theme-light-gray-purple time{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content blockquote{border-color:#5e2ca5!important}.theme-light-gray-purple .markdown-content table:not(.highlight){background-color:#efefef}.theme-light-gray-purple .markdown-content table:not(.highlight) tr{border-color:#562996}.theme-light-gray-purple .markdown-content p>code{background-color:rgba(94,44,165,.2)!important;color:#5e2ca5!important}.theme-light-gray-purple .markdown-content a.footnote-backref{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-light-gray-purple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-run{background-color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run,.theme-run b,.theme-run h1,.theme-run h2,.theme-run h3,.theme-run h4,.theme-run h5,.theme-run strong{color:#e0ed5e}.theme-run nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run nav a{color:#e0ed5e}.theme-run nav a.active{color:#e4f075}.theme-run p{color:#e0ed5e}.theme-run p a{color:#e0ed5e;font-weight:700;text-decoration:underline}.theme-run a.post-colophon-link,.theme-run a.post-colophon-link:visited{color:rgba(224,237,94,.3)!important}.theme-run hr{border-color:rgba(224,237,94,.1)!important;width:90%}.theme-run ol,.theme-run ul{color:#e0ed5e}.theme-run time{color:#e0ed5e;font-weight:700}.theme-run .markdown-content blockquote{border-color:#e0ed5e!important}.theme-run .markdown-content table:not(.highlight){background-color:#303030}.theme-run .markdown-content table:not(.highlight) tr{border-color:#cbd756}.theme-run .markdown-content p>code{background-color:rgba(224,237,94,.2)!important;color:#e0ed5e!important}.theme-run .markdown-content a.footnote-backref{color:#e0ed5e;font-weight:700}.theme-run .markdown-content .grvsc-container{font-size:.875rem!important}.theme-run .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-sign-in-with-apple{background-color:#f4f4f4;color:#000;font-family:San Francisco,helvetica neue,helvetica,sans-serif}.theme-sign-in-with-apple b,.theme-sign-in-with-apple h1,.theme-sign-in-with-apple h2,.theme-sign-in-with-apple h3,.theme-sign-in-with-apple h4,.theme-sign-in-with-apple h5,.theme-sign-in-with-apple strong{color:#000}.theme-sign-in-with-apple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-sign-in-with-apple nav a{color:#000}.theme-sign-in-with-apple nav a.active{color:#0d0d0d}.theme-sign-in-with-apple p{color:#000}.theme-sign-in-with-apple p a{color:#000;font-weight:700;text-decoration:underline}.theme-sign-in-with-apple a.post-colophon-link,.theme-sign-in-with-apple a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.theme-sign-in-with-apple hr{border-color:rgba(0,0,0,.1)!important;width:90%}.theme-sign-in-with-apple ol,.theme-sign-in-with-apple ul{color:#000}.theme-sign-in-with-apple time{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content blockquote{border-color:#000!important}.theme-sign-in-with-apple .markdown-content table:not(.highlight){background-color:#f4f4f4}.theme-sign-in-with-apple .markdown-content table:not(.highlight) tr{border-color:#020202}.theme-sign-in-with-apple .markdown-content p>code{background-color:rgba(0,0,0,.2)!important;color:#000!important}.theme-sign-in-with-apple .markdown-content a.footnote-backref{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-sign-in-with-apple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-checklist-manifesto{background-color:#fbf8de;color:#db572b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto b,.theme-checklist-manifesto h1,.theme-checklist-manifesto h2,.theme-checklist-manifesto h3,.theme-checklist-manifesto h4,.theme-checklist-manifesto h5,.theme-checklist-manifesto strong{color:#db572b}.theme-checklist-manifesto nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto nav a{color:#db572b}.theme-checklist-manifesto nav a.active{color:#df6841}.theme-checklist-manifesto p{color:#db572b}.theme-checklist-manifesto p a{color:#db572b;font-weight:700;text-decoration:underline}.theme-checklist-manifesto a.post-colophon-link,.theme-checklist-manifesto a.post-colophon-link:visited{color:rgba(219,87,43,.3)!important}.theme-checklist-manifesto hr{border-color:rgba(219,87,43,.1)!important;width:90%}.theme-checklist-manifesto ol,.theme-checklist-manifesto ul{color:#db572b}.theme-checklist-manifesto time{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content blockquote{border-color:#db572b!important}.theme-checklist-manifesto .markdown-content table:not(.highlight){background-color:#faf8e0}.theme-checklist-manifesto .markdown-content table:not(.highlight) tr{border-color:#c75028}.theme-checklist-manifesto .markdown-content p>code{background-color:rgba(219,87,43,.2)!important;color:#db572b!important}.theme-checklist-manifesto .markdown-content a.footnote-backref{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content .grvsc-container{font-size:.875rem!important}.theme-checklist-manifesto .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-enron{background-color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron,.theme-enron b,.theme-enron h1,.theme-enron h2,.theme-enron h3,.theme-enron h4,.theme-enron h5,.theme-enron strong{color:#9eebcf}.theme-enron nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron nav a{color:#9eebcf}.theme-enron nav a.active{color:#b3efd9}.theme-enron p{color:#9eebcf}.theme-enron p a{color:#9eebcf;font-weight:700;text-decoration:underline}.theme-enron a.post-colophon-link,.theme-enron a.post-colophon-link:visited{color:rgba(158,235,207,.3)!important}.theme-enron hr{border-color:rgba(158,235,207,.1)!important;width:90%}.theme-enron ol,.theme-enron ul{color:#9eebcf}.theme-enron time{color:#9eebcf;font-weight:700}.theme-enron .markdown-content blockquote{border-color:#9eebcf!important}.theme-enron .markdown-content table:not(.highlight){background-color:#282828}.theme-enron .markdown-content table:not(.highlight) tr{border-color:#90d5bc}.theme-enron .markdown-content p>code{background-color:rgba(158,235,207,.2)!important;color:#9eebcf!important}.theme-enron .markdown-content a.footnote-backref{color:#9eebcf;font-weight:700}.theme-enron .markdown-content .grvsc-container{font-size:.875rem!important}.theme-enron .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-boardgames{background-color:#daedf0;background:linear-gradient(240deg,#6c95c7,#daedf0 26%,#d4ebed 39%,#bbe1e0 63%,#f2eee1);color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames b,.theme-boardgames h1,.theme-boardgames h2,.theme-boardgames h3,.theme-boardgames h4,.theme-boardgames h5,.theme-boardgames strong{color:#111}.theme-boardgames nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames nav a{color:#111}.theme-boardgames nav a.active{color:#1e1e1e}.theme-boardgames p{color:#111}.theme-boardgames p a{color:#111;font-weight:700;text-decoration:underline}.theme-boardgames a.post-colophon-link,.theme-boardgames a.post-colophon-link:visited{color:hsla(0,0%,7%,.3)!important}.theme-boardgames hr{border-color:hsla(0,0%,7%,.1)!important;width:90%}.theme-boardgames ol,.theme-boardgames ul{color:#111}.theme-boardgames time{color:#111;font-weight:700}.theme-boardgames .markdown-content blockquote{border-color:#111!important}.theme-boardgames .markdown-content table:not(.highlight){background-color:#ddeef0}.theme-boardgames .markdown-content table:not(.highlight) tr{border-color:#111}.theme-boardgames .markdown-content p>code{background-color:hsla(0,0%,7%,.2)!important;color:#111!important}.theme-boardgames .markdown-content a.footnote-backref{color:#111;font-weight:700}.theme-boardgames .markdown-content .grvsc-container{font-size:.875rem!important}.theme-boardgames .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}img::selection{background:transparent}img::-moz-selection{background:transparent}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:400;text-rendering:optimizeLegibility}iframe{border:none}hr{border-top:none}a.post-colophon-link,a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.gist table tr:last-child{border-bottom:1px}h2 .header-link,h3 .header-link{margin-top:2rem}h5 .header-link{margin-top:-.14rem}.markdown-content .grvsc-container{font-size:.875rem!important}.markdown-content .grvsc-container::-webkit-scrollbar{display:none}.markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.markdown-content .gatsby-resp-image-wrapper{margin-top:1rem}.style-module--body--a1572{background-color:#1a1a1a;color:#e0ed5e}.style-module--body--a1572 a,.style-module--body--a1572 h1,.style-module--body--a1572 h3,.style-module--body--a1572 h4,.style-module--body--a1572 li,.style-module--body--a1572 p{color:#e0ed5e;text-decoration:none}.style-module--body--a1572 h1{font-size:3rem;font-weight:700}.style-module--yearSVG--347ec{border:0;height:65%;margin:1rem 0 0;padding:0;width:65%}.style-module--locationSVG--2adbd{border:0;height:100%;margin:1rem 0 0;padding:0;width:100%}.style-module--buttons--4da44{margin:0 auto;padding-right:70px}.style-module--button--1573e{color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1rem;margin-top:.1rem;padding:1.3rem .4rem;position:relative;text-align:center}.style-module--fullscreenButton--4aa1d{opacity:.3;padding:1.2rem;right:0;top:0}.style-module--runTitle--09504{bottom:0;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:29px;left:120px;position:absolute;width:710px}@media only screen and (max-width:700px){.style-module--runTable--84570 td:nth-child(4),.style-module--runTable--84570 th:nth-child(4){display:none}}.style-module--runTable--84570{font-variant:tabular-nums;margin:2rem 0 5rem;width:100%}.style-module--runTable--84570 thead{color:#ccc;text-align:right}.style-module--runTable--84570 thead th{padding:.5rem}.style-module--runRow--42c85 td{border:0;padding:.5rem;text-align:right}.style-module--runRow--42c85 td:first-child{text-align:left}.style-module--runRow--42c85:hover{background-color:#222}.style-module--tableContainer--b302a{overflow-x:scroll;width:100%}.style-module--runDate--b8f52{color:#ccc}.style-module--runSVG--e35c5{height:250%;margin:1rem 0 0;width:100%}Running Page

404

This page doesn't exist.

If you wanna more message, you could visit https://yihong.run

\ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index 37186913132..e76480ef52a 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"polyfill":["/polyfill-14854c9902868fed1421.js"],"app":["/app-d6a0d74c9eeb9da29510.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-4a3c7adca3cda207b1cf.js"],"component---src-pages-404-jsx":["/component---src-pages-404-jsx-e839d02d6cd6e0b6a12f.js"],"component---src-pages-index-jsx":["/component---src-pages-index-jsx-979b824342c0e6fe276a.js"]} \ No newline at end of file +{"polyfill":["/polyfill-14854c9902868fed1421.js"],"app":["/app-d6a0d74c9eeb9da29510.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-4a3c7adca3cda207b1cf.js"],"component---src-pages-404-jsx":["/component---src-pages-404-jsx-e839d02d6cd6e0b6a12f.js"],"component---src-pages-index-jsx":["/component---src-pages-index-jsx-1e690ff2353b33d0340b.js"]} \ No newline at end of file diff --git a/component---src-pages-index-jsx-1e690ff2353b33d0340b.js b/component---src-pages-index-jsx-1e690ff2353b33d0340b.js new file mode 100644 index 00000000000..f1ed8761aec --- /dev/null +++ b/component---src-pages-index-jsx-1e690ff2353b33d0340b.js @@ -0,0 +1,3 @@ +/*! For license information please see component---src-pages-index-jsx-1e690ff2353b33d0340b.js.LICENSE.txt */ +(self.webpackChunkyihong_run=self.webpackChunkyihong_run||[]).push([[230],{4147:function(e,t,n){var r={"./year_2012.svg":[1494,494],"./year_2013.svg":[8484,484],"./year_2014.svg":[6746,746],"./year_2015.svg":[7252,252],"./year_2016.svg":[9895,895],"./year_2017.svg":[2164,164],"./year_2018.svg":[60,60],"./year_2019.svg":[7881,881],"./year_2020.svg":[4196,196],"./year_2021.svg":[9312,312],"./year_2022.svg":[9539,539],"./year_2023.svg":[3425,425]};function i(e){if(!n.o(r,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((function(){return n.t(i,23)}))}i.keys=function(){return Object.keys(r)},i.id=4147,e.exports=i},5487:function(e){function t(e){if(e=Object.assign({},e),!(this instanceof t))throw new Error("MapboxLanguage needs to be called with the new keyword");this.setLanguage=this.setLanguage.bind(this),this._initialStyleUpdate=this._initialStyleUpdate.bind(this),this._defaultLanguage=e.defaultLanguage,this._isLanguageField=e.languageField||/^name_/,this._getLanguageField=e.getLanguageField||function(e){return"mul"===e?"name":`name_${e}`},this._languageSource=e.languageSource||null,this._languageTransform=e.languageTransform,this._excludedLayerIds=e.excludedLayerIds||[],this.supportedLanguages=e.supportedLanguages||["ar","de","en","es","fr","it","ja","ko","mul","pt","ru","vi","zh-Hans","zh-Hant"]}const n=/^\{name/;function r(e,t){const r=Array.isArray(t)&&"get"===t[0];return r&&n.test(t[1])&&console.warn("This plugin no longer supports the use of token syntax (e.g. {name}). Please use a get expression. See https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/ for more details."),r&&e.test(t[1])}function i(e,t,n){if(Array.isArray(t))for(let o=1;o{const n=e.sources[t].url;return n&&n.indexOf("mapbox.mapbox-streets-v8")>-1||/mapbox-streets-v[1-9][1-9]/.test(n)}));if(!t.length)throw new Error('If using MapboxLanguage with a Mapbox style, the style must be based on vector tile version 8, e.g. "streets-v11"');return t[0]}(e);if(!n)return e;const r=this._getLanguageField(t),i=this._isLanguageField,a=this._excludedLayerIds,c=e.layers.map((e=>e.source===n?function(e,t,n,r){return t.layout&&t.layout["text-field"]&&-1===r.indexOf(t.id)?Object.assign({},t,{layout:Object.assign({},t.layout,{"text-field":o(e,t.layout["text-field"],n)})}):t}(i,e,r,a):e)),s=Object.assign({},e,{layers:c});return this._languageTransform?this._languageTransform(s,t):s},t.prototype._initialStyleUpdate=function(){const e=this._map.getStyle(),t=this._defaultLanguage||function(e){const t=navigator.languages?navigator.languages[0]:navigator.language||navigator.userLanguage,n=t&&t.split("-");let r=t;n.length>1&&(r=n[0]);if(e.indexOf(r)>-1)return r;return null}(this.supportedLanguages);this._map.setStyle(this.setLanguage(e,t))},t.prototype.onAdd=function(e){return this._map=e,this._map.on("style.load",this._initialStyleUpdate),this._container=document.createElement("div"),this._container},t.prototype.onRemove=function(){this._map.off("style.load",this._initialStyleUpdate),this._map=void 0},void 0!==e.exports?e.exports=t:window.MapboxLanguage=t},3500:function(e){"use strict";var t={};function n(e){return Math.floor(Math.abs(e)+.5)*(e>=0?1:-1)}function r(e,t,r){var i=(e=n(e*r))-(t=n(t*r));i<<=1,e-t<0&&(i=~i);for(var o="";i>=32;)o+=String.fromCharCode(63+(32|31&i)),i>>=5;return o+=String.fromCharCode(i+63)}function i(e){for(var t=[],n=0;n=32);n=1&s?~(s>>1):s>>1,c=s=0;do{s|=(31&(u=e.charCodeAt(r++)-63))<=32);i+=n,o+=1&s?~(s>>1):s>>1,a.push([i/l,o/l])}return a},t.encode=function(e,t){if(!e.length)return"";for(var n=Math.pow(10,Number.isInteger(t)?t:5),i=r(e[0][0],0,n)+r(e[0][1],0,n),o=1;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),e.apply(this,arguments)}}s="function"!=typeof Object.assign?function(e){if(e===c||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n-1}function j(e){return e.trim().split(/\s+/g)}function k(e,t,n){if(e.indexOf&&!n)return e.indexOf(t);for(var r=0;rn[t]})):r.sort()),r}function D(e,t){for(var n,r,i=t[0].toUpperCase()+t.slice(1),o=0;o1&&!n.firstMultiple?n.firstMultiple=Y(t):1===i&&(n.firstMultiple=!1);var o=n.firstInput,a=n.firstMultiple,s=a?a.center:o.center,u=t.center=G(r);t.timeStamp=d(),t.deltaTime=t.timeStamp-o.timeStamp,t.angle=$(s,u),t.distance=X(s,u),function(e,t){var n=t.center,r=e.offsetDelta||{},i=e.prevDelta||{},o=e.prevInput||{};1!==t.eventType&&4!==o.eventType||(i=e.prevDelta={x:o.deltaX||0,y:o.deltaY||0},r=e.offsetDelta={x:n.x,y:n.y});t.deltaX=i.x+(n.x-r.x),t.deltaY=i.y+(n.y-r.y)}(n,t),t.offsetDirection=q(t.deltaX,t.deltaY);var l=W(t.deltaTime,t.deltaX,t.deltaY);t.overallVelocityX=l.x,t.overallVelocityY=l.y,t.overallVelocity=h(l.x)>h(l.y)?l.x:l.y,t.scale=a?(p=a.pointers,f=r,X(f[0],f[1],Z)/X(p[0],p[1],Z)):1,t.rotation=a?function(e,t){return $(t[1],t[0],Z)+$(e[1],e[0],Z)}(a.pointers,r):0,t.maxPointers=n.prevInput?t.pointers.length>n.prevInput.maxPointers?t.pointers.length:n.prevInput.maxPointers:t.pointers.length,function(e,t){var n,r,i,o,a=e.lastInterval||t,s=t.timeStamp-a.timeStamp;if(8!=t.eventType&&(s>25||a.velocity===c)){var u=t.deltaX-a.deltaX,l=t.deltaY-a.deltaY,p=W(s,u,l);r=p.x,i=p.y,n=h(p.x)>h(p.y)?p.x:p.y,o=q(u,l),e.lastInterval=t}else n=a.velocity,r=a.velocityX,i=a.velocityY,o=a.direction;t.velocity=n,t.velocityX=r,t.velocityY=i,t.direction=o}(n,t);var p,f;var m=e.element;S(t.srcEvent.target,m)&&(m=t.srcEvent.target);t.target=m}(e,n),e.emit("hammer.input",n),e.recognize(n),e.session.prevInput=n}function Y(e){for(var t=[],n=0;n=h(t)?e<0?2:4:t<0?8:16}function X(e,t,n){n||(n=V);var r=t[n[0]]-e[n[0]],i=t[n[1]]-e[n[1]];return Math.sqrt(r*r+i*i)}function $(e,t,n){n||(n=V);var r=t[n[0]]-e[n[0]],i=t[n[1]]-e[n[1]];return 180*Math.atan2(i,r)/Math.PI}U.prototype={handler:function(){},init:function(){this.evEl&&P(this.element,this.evEl,this.domHandler),this.evTarget&&P(this.target,this.evTarget,this.domHandler),this.evWin&&P(L(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&M(this.element,this.evEl,this.domHandler),this.evTarget&&M(this.target,this.evTarget,this.domHandler),this.evWin&&M(L(this.element),this.evWin,this.domHandler)}};var K={mousedown:1,mousemove:2,mouseup:4},J="mousedown",Q="mousemove mouseup";function ee(){this.evEl=J,this.evWin=Q,this.pressed=!1,U.apply(this,arguments)}w(ee,U,{handler:function(e){var t=K[e.type];1&t&&0===e.button&&(this.pressed=!0),2&t&&1!==e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:F,srcEvent:e}))}});var te={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},ne={2:A,3:"pen",4:F,5:"kinect"},re="pointerdown",ie="pointermove pointerup pointercancel";function oe(){this.evEl=re,this.evWin=ie,U.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}i.MSPointerEvent&&!i.PointerEvent&&(re="MSPointerDown",ie="MSPointerMove MSPointerUp MSPointerCancel"),w(oe,U,{handler:function(e){var t=this.store,n=!1,r=e.type.toLowerCase().replace("ms",""),i=te[r],o=ne[e.pointerType]||e.pointerType,a=o==A,c=k(t,e.pointerId,"pointerId");1&i&&(0===e.button||a)?c<0&&(t.push(e),c=t.length-1):12&i&&(n=!0),c<0||(t[c]=e,this.callback(this.manager,i,{pointers:t,changedPointers:[e],pointerType:o,srcEvent:e}),n&&t.splice(c,1))}});var ae={touchstart:1,touchmove:2,touchend:4,touchcancel:8},ce="touchstart",se="touchstart touchmove touchend touchcancel";function ue(){this.evTarget=ce,this.evWin=se,this.started=!1,U.apply(this,arguments)}function le(e,t){var n=T(e.touches),r=T(e.changedTouches);return 12&t&&(n=C(n.concat(r),"identifier",!0)),[n,r]}w(ue,U,{handler:function(e){var t=ae[e.type];if(1===t&&(this.started=!0),this.started){var n=le.call(this,e,t);12&t&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,t,{pointers:n[0],changedPointers:n[1],pointerType:A,srcEvent:e})}}});var pe={touchstart:1,touchmove:2,touchend:4,touchcancel:8},he="touchstart touchmove touchend touchcancel";function de(){this.evTarget=he,this.targetIds={},U.apply(this,arguments)}function fe(e,t){var n=T(e.touches),r=this.targetIds;if(3&t&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=T(e.changedTouches),c=[],s=this.target;if(o=n.filter((function(e){return S(e.target,s)})),1===t)for(i=0;i-1&&r.splice(e,1)}),2500)}}function ge(e){for(var t=e.srcEvent.clientX,n=e.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(t,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(e){return!!this.simultaneous[e.id]},emit:function(e){var t=this,n=this.state;function r(n){t.manager.emit(n,e)}n<8&&r(t.options.event+Ce(n)),r(t.options.event),e.additionalEvent&&r(e.additionalEvent),n>=8&&r(t.options.event+Ce(n))},tryEmit:function(e){if(this.canEmit())return this.emit(e);this.state=ke},canEmit:function(){for(var e=0;et.threshold&&i&t.direction},attrTest:function(e){return Le.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=De(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),w(Ie,Le,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),w(Re,Te,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[_e]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,r=e.distancet.time;if(this._input=e,!r||!n||12&e.eventType&&!i)this.reset();else if(1&e.eventType)this.reset(),this._timer=f((function(){this.state=8,this.tryEmit()}),t.time,this);else if(4&e.eventType)return 8;return ke},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&4&e.eventType?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=d(),this.manager.emit(this.options.event,this._input)))}}),w(Ae,Le,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Pe]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),w(Fe,Le,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return ze.prototype.getTouchAction.call(this)},attrTest:function(e){var t,n=this.options.direction;return 30&n?t=e.overallVelocity:6&n?t=e.overallVelocityX:n&B&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&n&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&h(t)>this.options.velocity&&4&e.eventType},emit:function(e){var t=De(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),w(Be,Te,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Oe]},process:function(e){var t=this.options,n=e.pointers.length===t.pointers,r=e.distance{window.va||(window.va=function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:"auto";return"auto"===e?"production":e}function c(e){let{beforeSend:t,debug:n=!0,mode:c="auto"}=e;return(0,r.useEffect)((()=>{!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{debug:!0};var t;if(!o())return;const n=a(e.mode);i(),e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend));const r="development"===n?"https://cdn.vercel-insights.com/v1/script.debug.js":"/_vercel/insights/script.js";if(document.head.querySelector(`script[src*="${r}"]`))return;const c=document.createElement("script");c.src=r,c.defer=!0,"development"===n&&!1===e.debug&&c.setAttribute("data-debug","false"),document.head.appendChild(c)}({beforeSend:t,debug:n,mode:c})}),[t,n,c]),null}var s=n(9110),u=n(3500),l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=72.004&&e<=137.8347&&t>=.8293&&t<=55.8271}function b(e,t){var n,r,i,o=(i=300+(n=e-105)+2*(r=t-35)+.1*n*n+.1*n*r+.1*d(f(n)),i+=2*(20*p(6*n*m)+20*p(2*n*m))/3,(i+=2*(20*p(n*m)+40*p(n/3*m))/3)+2*(150*p(n/12*m)+300*p(n/30*m))/3),a=function(e,t){var n=2*e-100+3*t+.2*t*t+.1*e*t+.2*d(f(e));return n+=2*(20*p(6*e*m)+20*p(2*e*m))/3,n+=2*(20*p(t*m)+40*p(t/3*m))/3,n+2*(160*p(t/12*m)+320*p(t*m/30))/3}(e-105,t-35),c=t/180*m,s=p(c),u=d(s=1-y*s*s);return[o=180*o/(v/u*h(c)*m),a=180*a/(v*(1-y)/(s*u)*m)]}function w(e){var t=e[0],n=e[1];if(!g(t,n))return[t,n];var r=b(t,n);return[t+r[0],n+r[1]]}function E(e){var t=e[0],n=e[1];if(!g(t,n))return[t,n];for(var r=[t,n],i=r[0],o=r[1],a=w([i,o]),c=a[0]-t,s=a[1]-n;f(c)>1e-6||f(s)>1e-6;)c=(a=w([i-=c,o-=s]))[0]-t,s=a[1]-n;return[i,o]}var _=Math.sin,O=Math.cos,P=Math.atan2,M=Math.sqrt,S=3e3*Math.PI/180;function x(e){var t=e[0]-.0065,n=e[1]-.006,r=M(t*t+n*n)-2e-5*_(n*S),i=P(n,t)-3e-6*O(t*S);return[r*O(i),r*_(i)]}function j(e){var t=e[0],n=e[1],r=M(t*t+n*n)+2e-5*_(n*S),i=P(n,t)+3e-6*O(t*S);return[r*O(i)+.0065,r*_(i)+.006]}var k=180/Math.PI,T=Math.PI/180,C=6378137,D=20037508.342789244;function N(e){return[e[0]*k/C,(.5*Math.PI-2*Math.atan(Math.exp(-e[1]/C)))*k]}function L(e){var t=Math.abs(e[0])<=180?e[0]:e[0]-360*(e[0]<0?-1:1),n=[C*t*T,C*Math.log(Math.tan(.25*Math.PI+.5*e[1]*T))];return n[0]>D&&(n[0]=D),n[0]<-D&&(n[0]=-D),n[1]>D&&(n[1]=D),n[1]<-D&&(n[1]=-D),n}var z,I,R,A,F,B,V=Math.abs,Z=[12890594.86,8362377.87,5591021,3481989.83,1678043.12,0],U=[75,60,45,30,15,0],H=[[1.410526172116255e-8,898305509648872e-20,-1.9939833816331,200.9824383106796,-187.2403703815547,91.6087516669843,-23.38765649603339,2.57121317296198,-.03801003308653,17337981.2],[-7.435856389565537e-9,8983055097726239e-21,-.78625201886289,96.32687599759846,-1.85204757529826,-59.36935905485877,47.40033549296737,-16.50741931063887,2.28786674699375,10260144.86],[-3.030883460898826e-8,898305509983578e-20,.30071316287616,59.74293618442277,7.357984074871,-25.38371002664745,13.45380521110908,-3.29883767235584,.32710905363475,6856817.37],[-1.981981304930552e-8,8983055099779535e-21,.03278182852591,40.31678527705744,.65659298677277,-4.44255534477492,.85341911805263,.12923347998204,-.04625736007561,4482777.06],[3.09191371068437e-9,8983055096812155e-21,6995724062e-14,23.10934304144901,-.00023663490511,-.6321817810242,-.00663494467273,.03430082397953,-.00466043876332,2555164.4],[2.890871144776878e-9,8983055095805407e-21,-3.068298e-8,7.47137025468032,-353937994e-14,-.02145144861037,-1234426596e-14,.00010322952773,-323890364e-14,826088.5]],Y=[[-.0015702102444,111320.7020616939,0x60e374c3105a3,-0x24bb4115e2e164,0x5cc55543bb0ae8,-0x7ce070193f3784,0x5e7ca61ddf8150,-0x261a578d8b24d0,0x665d60f3742ca,82.5],[.0008277824516172526,111320.7020463578,647795574.6671607,-4082003173.641316,10774905663.51142,-15171875531.51559,12053065338.62167,-5124939663.577472,913311935.9512032,67.5],[.00337398766765,111320.7020202162,4481351.045890365,-23393751.19931662,79682215.47186455,-115964993.2797253,97236711.15602145,-43661946.33752821,8477230.501135234,52.5],[.00220636496208,111320.7020209128,51751.86112841131,3796837.749470245,992013.7397791013,-1221952.21711287,1340652.697009075,-620943.6990984312,144416.9293806241,37.5],[-.0003441963504368392,111320.7020576856,278.2353980772752,2485758.690035394,6070.750963243378,54821.18345352118,9540.606633304236,-2710.55326746645,1405.483844121726,22.5],[-.0003218135878613132,111320.7020701615,.00369383431289,823725.6402795718,.46104986909093,2351.343141331292,1.58060784298199,8.77738589078284,.37238884252424,7.45]];function G(e,t,n){var r=V(t)/n[9],i=n[0]+n[1]*V(e),o=n[2]+n[3]*r+n[4]*Math.pow(r,2)+n[5]*Math.pow(r,3)+n[6]*Math.pow(r,4)+n[7]*Math.pow(r,5)+n[8]*Math.pow(r,6);return[i*=e<0?-1:1,o*=t<0?-1:1]}function W(e){for(var t=e[0],n=e[1],r=[],i=0;iU[i]){r=Y[i];break}return G(t,n,r)}function q(e){for(var t=e[0],n=e[1],r=[],i=0;i=Z[i]){r=H[i];break}return G(t,n,r)}function X(e,t){if(!e)throw new Error(t)}function $(e){return!!e&&"[object Array]"===Object.prototype.toString.call(e)}function K(e){return!isNaN(Number(e))&&null!==e&&!$(e)}function J(){for(var e=[],t=0;t=2,"Invalid input coordinate: "+e),X(K(e[0])&&K(e[1]),"Invalid input coordinate: "+e),e=e.map(Number),a=!0);var c=i;return a?c(e):(Q(e,(function(e){var t;t=c(e),e[0]=t[0],e[1]=t[1]})),e)}});function te(){return te=Object.assign?Object.assign.bind():function(e){for(var t=1;tn?n:e}const me=Math.log2||function(e){return Math.log(e)*Math.LOG2E};function ve(e,t,n){var r=t[0],i=t[1],o=t[2],a=t[3],c=t[4],s=t[5],u=t[6],l=t[7],p=t[8],h=t[9],d=t[10],f=t[11],m=t[12],v=t[13],y=t[14],g=t[15],b=n[0],w=n[1],E=n[2],_=n[3];return e[0]=b*r+w*c+E*p+_*m,e[1]=b*i+w*s+E*h+_*v,e[2]=b*o+w*u+E*d+_*y,e[3]=b*a+w*l+E*f+_*g,b=n[4],w=n[5],E=n[6],_=n[7],e[4]=b*r+w*c+E*p+_*m,e[5]=b*i+w*s+E*h+_*v,e[6]=b*o+w*u+E*d+_*y,e[7]=b*a+w*l+E*f+_*g,b=n[8],w=n[9],E=n[10],_=n[11],e[8]=b*r+w*c+E*p+_*m,e[9]=b*i+w*s+E*h+_*v,e[10]=b*o+w*u+E*d+_*y,e[11]=b*a+w*l+E*f+_*g,b=n[12],w=n[13],E=n[14],_=n[15],e[12]=b*r+w*c+E*p+_*m,e[13]=b*i+w*s+E*h+_*v,e[14]=b*o+w*u+E*d+_*y,e[15]=b*a+w*l+E*f+_*g,e}function ye(e,t,n){var r,i,o,a,c,s,u,l,p,h,d,f,m=n[0],v=n[1],y=n[2];return t===e?(e[12]=t[0]*m+t[4]*v+t[8]*y+t[12],e[13]=t[1]*m+t[5]*v+t[9]*y+t[13],e[14]=t[2]*m+t[6]*v+t[10]*y+t[14],e[15]=t[3]*m+t[7]*v+t[11]*y+t[15]):(r=t[0],i=t[1],o=t[2],a=t[3],c=t[4],s=t[5],u=t[6],l=t[7],p=t[8],h=t[9],d=t[10],f=t[11],e[0]=r,e[1]=i,e[2]=o,e[3]=a,e[4]=c,e[5]=s,e[6]=u,e[7]=l,e[8]=p,e[9]=h,e[10]=d,e[11]=f,e[12]=r*m+c*v+p*y+t[12],e[13]=i*m+s*v+h*y+t[13],e[14]=o*m+u*v+d*y+t[14],e[15]=a*m+l*v+f*y+t[15]),e}function ge(e,t,n){var r=n[0],i=n[1],o=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*o,e[9]=t[9]*o,e[10]=t[10]*o,e[11]=t[11]*o,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}var be=function(e,t,n,r,i){var o,a=1/Math.tan(t/2);return e[0]=a/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,null!=i&&i!==1/0?(o=1/(r-i),e[10]=(i+r)*o,e[14]=2*i*r*o):(e[10]=-1,e[14]=-2*r),e};function we(e,t){var n=e[0],r=e[1],i=e[2],o=e[3],a=e[4],c=e[5],s=e[6],u=e[7],l=e[8],p=e[9],h=e[10],d=e[11],f=e[12],m=e[13],v=e[14],y=e[15],g=t[0],b=t[1],w=t[2],E=t[3],_=t[4],O=t[5],P=t[6],M=t[7],S=t[8],x=t[9],j=t[10],k=t[11],T=t[12],C=t[13],D=t[14],N=t[15];return Math.abs(n-g)<=ce*Math.max(1,Math.abs(n),Math.abs(g))&&Math.abs(r-b)<=ce*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(i-w)<=ce*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(o-E)<=ce*Math.max(1,Math.abs(o),Math.abs(E))&&Math.abs(a-_)<=ce*Math.max(1,Math.abs(a),Math.abs(_))&&Math.abs(c-O)<=ce*Math.max(1,Math.abs(c),Math.abs(O))&&Math.abs(s-P)<=ce*Math.max(1,Math.abs(s),Math.abs(P))&&Math.abs(u-M)<=ce*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(l-S)<=ce*Math.max(1,Math.abs(l),Math.abs(S))&&Math.abs(p-x)<=ce*Math.max(1,Math.abs(p),Math.abs(x))&&Math.abs(h-j)<=ce*Math.max(1,Math.abs(h),Math.abs(j))&&Math.abs(d-k)<=ce*Math.max(1,Math.abs(d),Math.abs(k))&&Math.abs(f-T)<=ce*Math.max(1,Math.abs(f),Math.abs(T))&&Math.abs(m-C)<=ce*Math.max(1,Math.abs(m),Math.abs(C))&&Math.abs(v-D)<=ce*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(y-N)<=ce*Math.max(1,Math.abs(y),Math.abs(N))}function Ee(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function _e(e){var t=e[0],n=e[1];return Math.hypot(t,n)}function Oe(e,t,n,r){var i=t[0],o=t[1];return e[0]=i+r*(n[0]-i),e[1]=o+r*(n[1]-o),e}var Pe=function(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e};!function(){var e=function(){var e=new se(2);return se!=Float32Array&&(e[0]=0,e[1]=0),e}()}();var Me=function(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e};!function(){var e=function(){var e=new se(3);return se!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}()}();function Se(e,t){if(!e)throw new Error(t||"@math.gl/web-mercator: assertion failed.")}const xe=Math.PI,je=xe/4,ke=xe/180,Te=180/xe,Ce=512,De=85.051129,Ne=1.5;function Le(e){return Math.pow(2,e)}function ze(e){return me(e)}function Ie(e){const[t,n]=e;Se(Number.isFinite(t)),Se(Number.isFinite(n)&&n>=-90&&n<=90,"invalid latitude");const r=n*ke;return[Ce*(t*ke+xe)/(2*xe),Ce*(xe+Math.log(Math.tan(je+.5*r)))/(2*xe)]}function Re(e){const[t,n]=e,r=t/Ce*(2*xe)-xe,i=2*(Math.atan(Math.exp(n/Ce*(2*xe)-xe))-je);return[r*Te,i*Te]}function Ae(e){const{latitude:t,longitude:n,highPrecision:r=!1}=e;Se(Number.isFinite(t)&&Number.isFinite(n));const i=Math.cos(t*ke),o=512/360,a=o/i,c=12790407194604047e-21/i,s={unitsPerMeter:[c,c,c],metersPerUnit:[1/c,1/c,1/c],unitsPerDegree:[o,a,c],degreesPerUnit:[.703125,1/a,1/c]};if(r){const e=ke*Math.tan(t*ke)/i,n=o*e/2,r=12790407194604047e-21*e,u=r/a*c;s.unitsPerDegree2=[0,n,r],s.unitsPerMeter2=[u,0,u]}return s}function Fe(e){const{height:t,pitch:n,bearing:r,altitude:i,scale:o,center:a}=e,c=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];ye(c,c,[0,0,-i]),function(e,t,n){var r=Math.sin(n),i=Math.cos(n),o=t[4],a=t[5],c=t[6],s=t[7],u=t[8],l=t[9],p=t[10],h=t[11];t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=o*i+u*r,e[5]=a*i+l*r,e[6]=c*i+p*r,e[7]=s*i+h*r,e[8]=u*i-o*r,e[9]=l*i-a*r,e[10]=p*i-c*r,e[11]=h*i-s*r}(c,c,-n*ke),function(e,t,n){var r=Math.sin(n),i=Math.cos(n),o=t[0],a=t[1],c=t[2],s=t[3],u=t[4],l=t[5],p=t[6],h=t[7];t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=o*i+u*r,e[1]=a*i+l*r,e[2]=c*i+p*r,e[3]=s*i+h*r,e[4]=u*i-o*r,e[5]=l*i-a*r,e[6]=p*i-c*r,e[7]=h*i-s*r}(c,c,r*ke);const s=o/t;return ge(c,c,[s,s,s]),a&&ye(c,c,function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}([],a)),c}function Be(e){const{fov:t,aspect:n,near:r,far:i}=function(e){const{width:t,height:n,altitude:r,pitch:i=0,offset:o,center:a,scale:c,nearZMultiplier:s=1,farZMultiplier:u=1}=e;let{fovy:l=Ve(Ne)}=e;void 0!==r&&(l=Ve(r));const p=l*ke,h=i*ke,d=Ze(l);let f=d;a&&(f+=a[2]*c/Math.cos(h)/n);const m=p*(.5+(o?o[1]:0)/n),v=Math.sin(m)*f/Math.sin(fe(Math.PI/2-h-m,.01,Math.PI-.01)),y=Math.sin(h)*v+f,g=10*f;return{fov:p,aspect:t/n,focalDistance:d,near:s,far:Math.min(y*u,g)}}(e);return be([],t,n,r,i)}function Ve(e){return 2*Math.atan(.5/e)*Te}function Ze(e){return.5/Math.tan(.5*e*ke)}function Ue(e,t){const[n,r,i=0]=e;return Se(Number.isFinite(n)&&Number.isFinite(r)&&Number.isFinite(i)),pe(t,[n,r,i,1])}function He(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const[r,i,o]=e;if(Se(Number.isFinite(r)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(o)){return pe(t,[r,i,o,1])}const a=pe(t,[r,i,0,1]),c=pe(t,[r,i,1,1]),s=a[2],u=c[2],l=s===u?0:((n||0)-s)/(u-s);return Oe([],a,c,l)}function Ye(e){const{width:t,height:n,bounds:r,minExtent:i=0,maxZoom:o=24,offset:a=[0,0]}=e,[[c,s],[u,l]]=r,p=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if("number"==typeof e)return{top:e,bottom:e,left:e,right:e};return Se(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e}(e.padding),h=Ie([c,fe(l,-85.051129,De)]),d=Ie([u,fe(s,-85.051129,De)]),f=[Math.max(Math.abs(d[0]-h[0]),i),Math.max(Math.abs(d[1]-h[1]),i)],m=[t-p.left-p.right-2*Math.abs(a[0]),n-p.top-p.bottom-2*Math.abs(a[1])];Se(m[0]>0&&m[1]>0);const v=m[0]/f[0],y=m[1]/f[1],g=(p.right-p.left)/2/v,b=(p.top-p.bottom)/2/y,w=Re([(d[0]+h[0])/2+g,(d[1]+h[1])/2+b]),E=Math.min(o,me(Math.abs(Math.min(v,y))));return Se(Number.isFinite(E)),{longitude:w[0],latitude:w[1],zoom:E}}const Ge=Math.PI/180;function We(e,t,n){const{pixelUnprojectionMatrix:r}=e,i=pe(r,[t,0,1,1]),o=pe(r,[t,e.height,1,1]),a=Re(Oe([],i,o,(n*e.distanceScales.unitsPerMeter[2]-i[2])/(o[2]-i[2])));return a.push(n),a}class qe{constructor(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{width:1,height:1};re(this,"latitude",void 0),re(this,"longitude",void 0),re(this,"zoom",void 0),re(this,"pitch",void 0),re(this,"bearing",void 0),re(this,"altitude",void 0),re(this,"fovy",void 0),re(this,"meterOffset",void 0),re(this,"center",void 0),re(this,"width",void 0),re(this,"height",void 0),re(this,"scale",void 0),re(this,"distanceScales",void 0),re(this,"viewMatrix",void 0),re(this,"projectionMatrix",void 0),re(this,"viewProjectionMatrix",void 0),re(this,"pixelProjectionMatrix",void 0),re(this,"pixelUnprojectionMatrix",void 0),re(this,"equals",(e=>e instanceof qe&&(e.width===this.width&&e.height===this.height&&we(e.projectionMatrix,this.projectionMatrix)&&we(e.viewMatrix,this.viewMatrix)))),re(this,"project",(function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{topLeft:r=!0}=n,i=e.projectPosition(t),o=Ue(i,e.pixelProjectionMatrix),[a,c]=o,s=r?c:e.height-c;return 2===t.length?[a,s]:[a,s,o[2]]})),re(this,"unproject",(function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{topLeft:r=!0,targetZ:i}=n,[o,a,c]=t,s=r?a:e.height-a,u=i&&i*e.distanceScales.unitsPerMeter[2],l=He([o,s,c],e.pixelUnprojectionMatrix,u),[p,h,d]=e.unprojectPosition(l);return Number.isFinite(c)?[p,h,d]:Number.isFinite(i)?[p,h,i]:[p,h]})),re(this,"projectPosition",(e=>{const[t,n]=Ie(e);return[t,n,(e[2]||0)*this.distanceScales.unitsPerMeter[2]]})),re(this,"unprojectPosition",(e=>{const[t,n]=Re(e);return[t,n,(e[2]||0)*this.distanceScales.metersPerUnit[2]]}));let{width:n,height:r,altitude:i=null,fovy:o=null}=t;const{latitude:a=0,longitude:c=0,zoom:s=0,pitch:u=0,bearing:l=0,position:p=null,nearZMultiplier:h=.02,farZMultiplier:d=1.01}=t;n=n||1,r=r||1,null===o&&null===i?(i=Ne,o=Ve(i)):null===o?o=Ve(i):null===i&&(i=Ze(o));const f=Le(s);i=Math.max(.75,i);const m=Ae({longitude:c,latitude:a}),v=Ie([c,a]);v.push(0),p&&function(e,t,n){e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2]}(v,v,Me([],p,m.unitsPerMeter)),this.projectionMatrix=Be({width:n,height:r,scale:f,center:v,pitch:u,fovy:o,nearZMultiplier:h,farZMultiplier:d}),this.viewMatrix=Fe({height:r,scale:f,center:v,pitch:u,bearing:l,altitude:i}),this.width=n,this.height=r,this.scale=f,this.latitude=a,this.longitude=c,this.zoom=s,this.pitch=u,this.bearing=l,this.altitude=i,this.fovy=o,this.center=v,this.meterOffset=p||[0,0,0],this.distanceScales=m,this._initMatrices(),Object.freeze(this)}_initMatrices(){const{width:e,height:t,projectionMatrix:n,viewMatrix:r}=this,i=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];ve(i,i,n),ve(i,i,r),this.viewProjectionMatrix=i;const o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];ge(o,o,[e/2,-t/2,1]),ye(o,o,[1,-1,0]),ve(o,o,i);const a=function(e,t){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],c=t[5],s=t[6],u=t[7],l=t[8],p=t[9],h=t[10],d=t[11],f=t[12],m=t[13],v=t[14],y=t[15],g=n*c-r*a,b=n*s-i*a,w=n*u-o*a,E=r*s-i*c,_=r*u-o*c,O=i*u-o*s,P=l*m-p*f,M=l*v-h*f,S=l*y-d*f,x=p*v-h*m,j=p*y-d*m,k=h*y-d*v,T=g*k-b*j+w*x+E*S-_*M+O*P;return T?(T=1/T,e[0]=(c*k-s*j+u*x)*T,e[1]=(i*j-r*k-o*x)*T,e[2]=(m*O-v*_+y*E)*T,e[3]=(h*_-p*O-d*E)*T,e[4]=(s*S-a*k-u*M)*T,e[5]=(n*k-i*S+o*M)*T,e[6]=(v*w-f*O-y*b)*T,e[7]=(l*O-h*w+d*b)*T,e[8]=(a*j-c*S+u*P)*T,e[9]=(r*S-n*j-o*P)*T,e[10]=(f*_-m*w+y*g)*T,e[11]=(p*w-l*_-d*g)*T,e[12]=(c*M-a*x-s*P)*T,e[13]=(n*x-r*M+i*P)*T,e[14]=(m*b-f*E-v*g)*T,e[15]=(l*E-p*b+h*g)*T,e):null}([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],o);if(!a)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=o,this.pixelUnprojectionMatrix=a}projectFlat(e){return Ie(e)}unprojectFlat(e){return Re(e)}getMapCenterByLngLatPosition(e){let{lngLat:t,pos:n}=e;const r=He(n,this.pixelUnprojectionMatrix),i=Ee([],Ie(t),function(e,t){return e[0]=-t[0],e[1]=-t[1],e}([],r));return Re(Ee([],this.center,i))}fitBounds(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{width:n,height:r}=this,{longitude:i,latitude:o,zoom:a}=Ye(Object.assign({width:n,height:r,bounds:e},t));return new qe({width:n,height:r,longitude:i,latitude:o,zoom:a})}getBounds(e){const t=this.getBoundingRegion(e),n=Math.min(...t.map((e=>e[0]))),r=Math.max(...t.map((e=>e[0])));return[[n,Math.min(...t.map((e=>e[1])))],[r,Math.max(...t.map((e=>e[1])))]]}getBoundingRegion(){return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const{width:n,height:r,unproject:i}=e,o={targetZ:t},a=i([0,r],o),c=i([n,r],o);let s,u;const l=e.fovy?.5*e.fovy*Ge:Math.atan(.5/e.altitude),p=(90-e.pitch)*Ge;return l>p-.01?(s=We(e,0,t),u=We(e,n,t)):(s=i([0,0],o),u=i([n,0],o)),[a,c,u,s]}(this,(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).z||0)}getLocationAtPoint(e){let{lngLat:t,pos:n}=e;return this.getMapCenterByLngLatPosition({lngLat:t,pos:n})}}const Xe=["longitude","latitude","zoom"],$e={curve:1.414,speed:1.2};function Ke(e,t,n){const r=(n=Object.assign({},$e,n)).curve,i=e.zoom,o=[e.longitude,e.latitude],a=Le(i),c=t.zoom,s=[t.longitude,t.latitude],u=Le(c-i),l=Ie(o),p=Ie(s),h=Pe([],p,l),d=Math.max(e.width,e.height),f=d/u,m=_e(h)*a,v=Math.max(m,.01),y=r*r,g=(f*f-d*d+y*y*v*v)/(2*d*y*v),b=(f*f-d*d-y*y*v*v)/(2*f*y*v),w=Math.log(Math.sqrt(g*g+1)-g),E=Math.log(Math.sqrt(b*b+1)-b);return{startZoom:i,startCenterXY:l,uDelta:h,w0:d,u1:m,S:(E-w)/r,rho:r,rho2:y,r0:w,r1:E}}var Je=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n0},e.prototype.connect_=function(){Qe&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),rt?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){Qe&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;nt.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),ot=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),yt="undefined"!=typeof WeakMap?new WeakMap:new Je,gt=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=it.getInstance(),r=new vt(t,n,this);yt.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){gt.prototype[e]=function(){var t;return(t=yt.get(this))[e].apply(t,arguments)}}));var bt=void 0!==et.ResizeObserver?et.ResizeObserver:gt;function wt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Et(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw o}}}}function xt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:"component";e.debug&&ie.checkPropTypes(Tt,e,"prop",t)}var Nt=function(){function e(t){var n=this;if(wt(this,e),re(this,"props",Ct),re(this,"width",0),re(this,"height",0),re(this,"_fireLoadEvent",(function(){n.props.onLoad({type:"load",target:n._map})})),re(this,"_handleError",(function(e){n.props.onError(e)})),!t.mapboxgl)throw new Error("Mapbox not available");this.mapboxgl=t.mapboxgl,e.initialized||(e.initialized=!0,this._checkStyleSheet(this.mapboxgl.version)),this._initialize(t)}return _t(e,[{key:"finalize",value:function(){return this._destroy(),this}},{key:"setProps",value:function(e){return this._update(this.props,e),this}},{key:"redraw",value:function(){var e=this._map;e.style&&(e._frame&&(e._frame.cancel(),e._frame=null),e._render())}},{key:"getMap",value:function(){return this._map}},{key:"_reuse",value:function(t){this._map=e.savedMap;var n=this._map.getContainer(),r=t.container;for(r.classList.add("mapboxgl-map");n.childNodes.length>0;)r.appendChild(n.childNodes[0]);this._map._container=r,e.savedMap=null,t.mapStyle&&this._map.setStyle(kt(t.mapStyle),{diff:!1}),this._map.isStyleLoaded()?this._fireLoadEvent():this._map.once("styledata",this._fireLoadEvent)}},{key:"_create",value:function(t){if(t.reuseMaps&&e.savedMap)this._reuse(t);else{if(t.gl){var n=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=n,t.gl}}var r={container:t.container,center:[0,0],zoom:8,pitch:0,bearing:0,maxZoom:24,style:kt(t.mapStyle),interactive:!1,trackResize:!1,attributionControl:t.attributionControl,preserveDrawingBuffer:t.preserveDrawingBuffer};t.transformRequest&&(r.transformRequest=t.transformRequest),this._map=new this.mapboxgl.Map(Object.assign({},r,t.mapOptions)),this._map.once("load",this._fireLoadEvent),this._map.on("error",this._handleError)}return this}},{key:"_destroy",value:function(){this._map&&(this.props.reuseMaps&&!e.savedMap?(e.savedMap=this._map,this._map.off("load",this._fireLoadEvent),this._map.off("error",this._handleError),this._map.off("styledata",this._fireLoadEvent)):this._map.remove(),this._map=null)}},{key:"_initialize",value:function(e){var t=this;Dt(e=Object.assign({},Ct,e),"Mapbox"),this.mapboxgl.accessToken=e.mapboxApiAccessToken||Ct.mapboxApiAccessToken,this.mapboxgl.baseApiUrl=e.mapboxApiUrl,this._create(e);var n=e.container;Object.defineProperty(n,"offsetWidth",{configurable:!0,get:function(){return t.width}}),Object.defineProperty(n,"clientWidth",{configurable:!0,get:function(){return t.width}}),Object.defineProperty(n,"offsetHeight",{configurable:!0,get:function(){return t.height}}),Object.defineProperty(n,"clientHeight",{configurable:!0,get:function(){return t.height}});var r=this._map.getCanvas();r&&(r.style.outline="none"),this._updateMapViewport({},e),this._updateMapSize({},e),this.props=e}},{key:"_update",value:function(e,t){if(this._map){Dt(t=Object.assign({},this.props,t),"Mapbox");var n=this._updateMapViewport(e,t),r=this._updateMapSize(e,t);this._updateMapStyle(e,t),t.asyncRender||!n&&!r||this.redraw(),this.props=t}}},{key:"_updateMapStyle",value:function(e,t){e.mapStyle!==t.mapStyle&&this._map.setStyle(kt(t.mapStyle),{diff:!t.preventStyleDiffing})}},{key:"_updateMapSize",value:function(e,t){var n=e.width!==t.width||e.height!==t.height;return n&&(this.width=t.width,this.height=t.height,this._map.resize()),n}},{key:"_updateMapViewport",value:function(e,t){var n=this._getViewState(e),r=this._getViewState(t),i=r.latitude!==n.latitude||r.longitude!==n.longitude||r.zoom!==n.zoom||r.pitch!==n.pitch||r.bearing!==n.bearing||r.altitude!==n.altitude;return i&&(this._map.jumpTo(this._viewStateToMapboxProps(r)),r.altitude!==n.altitude&&(this._map.transform.altitude=r.altitude)),i}},{key:"_getViewState",value:function(e){var t=e.viewState||e,n=t.longitude,r=t.latitude,i=t.zoom,o=t.pitch,a=void 0===o?0:o,c=t.bearing,s=void 0===c?0:c,u=t.altitude;return{longitude:n,latitude:r,zoom:i,pitch:a,bearing:s,altitude:void 0===u?1.5:u}}},{key:"_checkStyleSheet",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"0.47.0";if(void 0!==Ot)try{var t=Ot.createElement("div");t.className="mapboxgl-map",t.style.display="none",Ot.body.appendChild(t);var n="static"!==window.getComputedStyle(t).position;if(!n){var r=Ot.createElement("link");r.setAttribute("rel","stylesheet"),r.setAttribute("type","text/css"),r.setAttribute("href","https://api.tiles.mapbox.com/mapbox-gl-js/v".concat(e,"/mapbox-gl.css")),Ot.head.appendChild(r)}}catch(i){}}},{key:"_viewStateToMapboxProps",value:function(e){return{center:[e.longitude,e.latitude],zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}}}]),e}();re(Nt,"initialized",!1),re(Nt,"propTypes",Tt),re(Nt,"defaultProps",Ct),re(Nt,"savedMap",null);var Lt=n(3065),zt=n.n(Lt);function It(e){return Array.isArray(e)||ArrayBuffer.isView(e)}function Rt(e,t){if(e===t)return!0;if(It(e)&&It(t)){if(e.length!==t.length)return!1;for(var n=0;n0,"`scale` must be a positive number");var i=this._state,o=i.startZoom,a=i.startZoomLngLat;Number.isFinite(o)||(o=this._viewportProps.zoom,a=this._unproject(n)||this._unproject(t)),Bt(a,"`startZoomLngLat` prop is required for zoom behavior to calculate where to position the map.");var c=this._calculateNewZoom({scale:r,startZoom:o||0}),s=ae(new qe(Object.assign({},this._viewportProps,{zoom:c})).getMapCenterByLngLatPosition({lngLat:a,pos:t}),2),u=s[0],l=s[1];return this._getUpdatedMapState({zoom:c,longitude:u,latitude:l})}},{key:"zoomEnd",value:function(){return this._getUpdatedMapState({startZoomLngLat:null,startZoom:null})}},{key:"_getUpdatedMapState",value:function(t){return new e(Object.assign({},this._viewportProps,this._state,t))}},{key:"_applyConstraints",value:function(e){var t=e.maxZoom,n=e.minZoom,r=e.zoom;e.zoom=At(r,n,t);var i=e.maxPitch,o=e.minPitch,a=e.pitch;return e.pitch=At(a,o,i),Object.assign(e,function(e){const{width:t,height:n,pitch:r=0}=e;let{longitude:i,latitude:o,zoom:a,bearing:c=0}=e;(i<-180||i>180)&&(i=he(i+180,360)-180),(c<-180||c>180)&&(c=he(c+180,360)-180);const s=me(n/512);if(a<=s)a=s,o=0;else{const e=n/2/Math.pow(2,a),t=Re([0,e])[1];if(ot&&(o=t)}}return{width:t,height:n,longitude:i,latitude:o,zoom:a,pitch:r,bearing:c}}(e)),e}},{key:"_unproject",value:function(e){var t=new qe(this._viewportProps);return e&&t.unproject(e)}},{key:"_calculateNewLngLat",value:function(e){var t=e.startPanLngLat,n=e.pos;return new qe(this._viewportProps).getMapCenterByLngLatPosition({lngLat:t,pos:n})}},{key:"_calculateNewZoom",value:function(e){var t=e.scale,n=e.startZoom,r=this._viewportProps,i=r.maxZoom,o=r.minZoom;return At(n+Math.log2(t),o,i)}},{key:"_calculateNewPitchAndBearing",value:function(e){var t=e.deltaScaleX,n=e.deltaScaleY,r=e.startBearing,i=e.startPitch;n=At(n,-1,1);var o=this._viewportProps,a=o.minPitch,c=o.maxPitch,s=i;return n>0?s=i+n*(c-i):n<0&&(s=i-n*(a-i)),{pitch:s,bearing:r+180*t}}},{key:"_getRotationParams",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],i=e[1],o=t[1],a=this._viewportProps,c=a.width,s=a.height,u=n/c,l=0;return r>0?Math.abs(s-o)>5&&(l=r/(o-s)*1.2):r<0&&o>5&&(l=1-i/o),{deltaScaleX:u,deltaScaleY:l=Math.min(1,Math.max(-1,l))}}}]),e}();function qt(e){return e[0].toLowerCase()+e.slice(1)}function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function $t(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},r=e.current&&e.current.getMap();return r&&r.queryRenderedFeatures(t,n)}}}(u)}),[]);var m=(0,r.useCallback)((function(e){var t=e.target;t===h.current&&t.scrollTo(0,0)}),[]),v=f&&r.createElement(Jt,{value:nn(nn({},d),{},{viewport:d.viewport||on(nn({map:f,props:e},c)),map:f,container:d.container||p.current})},r.createElement("div",{key:"map-overlays",className:"overlays",ref:h,style:an,onScroll:m},e.children)),y=e.className,g=e.width,b=e.height,w=e.style,E=e.visibilityConstraints,_=Object.assign({position:"relative"},w,{width:g,height:b}),O=e.visible&&function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ut;for(var n in t){var r=n.slice(0,3),i=qt(n.slice(3));if("min"===r&&e[i]t[n])return!1}return!0}(e.viewState||e,E),P=Object.assign({},an,{visibility:O?"inherit":"hidden"});return r.createElement("div",{key:"map-container",ref:p,style:_},r.createElement("div",{key:"map-mapbox",ref:l,style:P,className:y}),v,!i&&!e.disableTokenWarning&&r.createElement(sn,null))}));un.supported=function(){return zt()&&zt().supported()},un.defaultProps=cn;var ln=un;function pn(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return hn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw o}}}}function hn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n180&&(n=n<0?n+360:n-360),n}function On(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Pn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw o}}}}function Pn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};return wt(this,n),re(fn(e=t.call(this)),"propNames",Sn),e.props=Object.assign({},kn,r),e}_t(n,[{key:"initializeProps",value:function(e,t){var n,r={},i={},o=On(xn);try{for(o.s();!(n=o.n()).done;){var a=n.value,c=e[a],s=t[a];Bt(En(c)&&En(s),"".concat(a," must be supplied for transition")),r[a]=c,i[a]=_n(a,c,s)}}catch(f){o.e(f)}finally{o.f()}var u,l=On(jn);try{for(l.s();!(u=l.n()).done;){var p=u.value,h=e[p]||0,d=t[p]||0;r[p]=h,i[p]=_n(p,h,d)}}catch(f){l.e(f)}finally{l.f()}return{start:r,end:i}}},{key:"interpolateProps",value:function(e,t,n){var r,i=function(e,t,n,r){const{startZoom:i,startCenterXY:o,uDelta:a,w0:c,u1:s,S:u,rho:l,rho2:p,r0:h}=Ke(e,t,r);if(s<.01){const r={};for(const i of Xe){const o=e[i],a=t[i];r[i]=de(o,a,n)}return r}const d=n*u,f=Math.cosh(h)/Math.cosh(h+l*d),m=c*((Math.cosh(h)*Math.tanh(h+l*d)-Math.sinh(h))/p)/s,v=i+ze(1/f),y=function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}([],a,m);Ee(y,y,o);const g=Re(y);return{longitude:g[0],latitude:g[1],zoom:v}}(e,t,n,this.props),o=On(jn);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=Ft(e[a],t[a],n)}}catch(c){o.e(c)}finally{o.f()}return i}},{key:"getDuration",value:function(e,t){var n=t.transitionDuration;return"auto"===n&&(n=function(e,t,n){const r={...$e,...n},{screenSpeed:i,speed:o,maxDuration:a}=r,{S:c,rho:s}=Ke(e,t,r),u=1e3*c;let l;return l=Number.isFinite(i)?u/(i/s):u/o,Number.isFinite(a)&&l>a?0:l}(e,t,this.props)),n}}])}(dn);function Tn(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Cn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Cn(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){c=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw o}}}}function Cn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{};return wt(this,n),e=t.call(this),Array.isArray(r)&&(r={transitionProps:r}),e.propNames=r.transitionProps||Nn,r.around&&(e.around=r.around),e}return _t(n,[{key:"initializeProps",value:function(e,t){var n={},r={};if(this.around){n.around=this.around;var i=new qe(e).unproject(this.around);Object.assign(r,t,{around:new qe(t).project(i),aroundLngLat:i})}var o,a=Tn(this.propNames);try{for(a.s();!(o=a.n()).done;){var c=o.value,s=e[c],u=t[c];Bt(En(s)&&En(u),"".concat(c," must be supplied for transition")),n[c]=s,r[c]=_n(c,s,u)}}catch(l){a.e(l)}finally{a.f()}return{start:n,end:r}}},{key:"interpolateProps",value:function(e,t,n){var r,i={},o=Tn(this.propNames);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=Ft(e[a],t[a],n)}}catch(l){o.e(l)}finally{o.f()}if(t.around){var c=ae(new qe(Object.assign({},t,i)).getMapCenterByLngLatPosition({lngLat:t.aroundLngLat,pos:Ft(e.around,t.around,n)}),2),s=c[0],u=c[1];i.longitude=s,i.latitude=u}return i}}]),n}(dn),zn=function(){};var In=1,Rn=2,An=3,Fn=4,Bn={transitionDuration:0,transitionEasing:function(e){return e},transitionInterpolator:new Ln,transitionInterruption:In,onTransitionStart:zn,onTransitionInterrupt:zn,onTransitionEnd:zn},Vn=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};wt(this,e),re(this,"_animationFrame",null),re(this,"_onTransitionFrame",(function(){t._animationFrame=requestAnimationFrame(t._onTransitionFrame),t._updateViewport()})),this.props=null,this.onViewportChange=n.onViewportChange||zn,this.onStateChange=n.onStateChange||zn,this.time=n.getTime||Date.now}return _t(e,[{key:"getViewportInTransition",value:function(){return this._animationFrame?this.state.propsInTransition:null}},{key:"processViewportChange",value:function(e){var t=this.props;if(this.props=e,!t||this._shouldIgnoreViewportChange(t,e))return!1;if(this._isTransitionEnabled(e)){var n=Object.assign({},t),r=Object.assign({},e);if(this._isTransitionInProgress()&&(t.onTransitionInterrupt(),this.state.interruption===Rn?Object.assign(n,this.state.endProps):Object.assign(n,this.state.propsInTransition),this.state.interruption===Fn)){var i=this.time(),o=(i-this.state.startTime)/this.state.duration;r.transitionDuration=this.state.duration-(i-this.state.startTime),r.transitionEasing=function(e,t){var n=e(t);return function(r){return 1/(1-n)*(e(r*(1-t)+t)-n)}}(this.state.easing,o),r.transitionInterpolator=n.transitionInterpolator}return r.onTransitionStart(),this._triggerTransition(n,r),!0}return this._isTransitionInProgress()&&(t.onTransitionInterrupt(),this._endTransition()),!1}},{key:"_isTransitionInProgress",value:function(){return Boolean(this._animationFrame)}},{key:"_isTransitionEnabled",value:function(e){var t=e.transitionDuration,n=e.transitionInterpolator;return(t>0||"auto"===t)&&Boolean(n)}},{key:"_isUpdateDueToCurrentTransition",value:function(e){return!!this.state.propsInTransition&&this.state.interpolator.arePropsEqual(e,this.state.propsInTransition)}},{key:"_shouldIgnoreViewportChange",value:function(e,t){return!e||(this._isTransitionInProgress()?this.state.interruption===An||this._isUpdateDueToCurrentTransition(t):!this._isTransitionEnabled(t)||t.transitionInterpolator.arePropsEqual(e,t))}},{key:"_triggerTransition",value:function(e,t){Bt(this._isTransitionEnabled(t)),this._animationFrame&&cancelAnimationFrame(this._animationFrame);var n=t.transitionInterpolator,r=n.getDuration?n.getDuration(e,t):t.transitionDuration;if(0!==r){var i=t.transitionInterpolator.initializeProps(e,t),o={inTransition:!0,isZooming:e.zoom!==t.zoom,isPanning:e.longitude!==t.longitude||e.latitude!==t.latitude,isRotating:e.bearing!==t.bearing||e.pitch!==t.pitch};this.state={duration:r,easing:t.transitionEasing,interpolator:t.transitionInterpolator,interruption:t.transitionInterruption,startTime:this.time(),startProps:i.start,endProps:i.end,animation:null,propsInTransition:{}},this._onTransitionFrame(),this.onStateChange(o)}}},{key:"_endTransition",value:function(){this._animationFrame&&(cancelAnimationFrame(this._animationFrame),this._animationFrame=null),this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1})}},{key:"_updateViewport",value:function(){var e=this.time(),t=this.state,n=t.startTime,r=t.duration,i=t.easing,o=t.interpolator,a=t.startProps,c=t.endProps,s=!1,u=(e-n)/r;u>=1&&(u=1,s=!0),u=i(u);var l=o.interpolateProps(a,c,u),p=new Wt(Object.assign({},this.props,l));this.state.propsInTransition=p.getViewportProps(),this.onViewportChange(this.state.propsInTransition,this.props),s&&(this._endTransition(),this.props.onTransitionEnd())}}]),e}();re(Vn,"defaultProps",Bn);var Zn=n(9074);const Un={mousedown:1,mousemove:2,mouseup:4};!function(e){const t=e.prototype.handler;e.prototype.handler=function(e){const n=this.store;e.button>0&&"pointerdown"===e.type&&(function(e,t){for(let n=0;nt.pointerId===e.pointerId))||n.push(e)),t.call(this,e)}}(Zn.PointerEventInput),Zn.MouseInput.prototype.handler=function(e){let t=Un[e.type];1&t&&e.button>=0&&(this.pressed=!0),2&t&&0===e.which&&(t=4),this.pressed&&(4&t&&(this.pressed=!1),this.callback(this.manager,t,{pointers:[e],changedPointers:[e],pointerType:"mouse",srcEvent:e}))};const Hn=Zn.Manager;var Yn=Zn;class Gn{constructor(e,t,n){this.element=e,this.callback=t,this.options={enable:!0,...n}}}const Wn=Yn?[[Yn.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[Yn.Rotate,{enable:!1}],[Yn.Pinch,{enable:!1}],[Yn.Swipe,{enable:!1}],[Yn.Pan,{threshold:0,enable:!1}],[Yn.Press,{enable:!1}],[Yn.Tap,{event:"doubletap",taps:2,enable:!1}],[Yn.Tap,{event:"anytap",enable:!1}],[Yn.Tap,{enable:!1}]]:null,qn={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},Xn={doubletap:["tap"]},$n={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},Kn={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},Jn={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},Qn={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},er="undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",tr="undefined"!=typeof window?window:n.g;void 0!==n.g?n.g:window,"undefined"!=typeof document&&document;let nr=!1;try{const e={get passive(){return nr=!0,!0}};tr.addEventListener("test",null,e),tr.removeEventListener("test",null)}catch(Ea){nr=!1}const rr=-1!==er.indexOf("firefox"),{WHEEL_EVENTS:ir}=Kn,or="wheel",ar=4.000244140625;class cr extends Gn{constructor(e,t,n){super(e,t,n),this.handleEvent=e=>{if(!this.options.enable)return;let t=e.deltaY;tr.WheelEvent&&(rr&&e.deltaMode===tr.WheelEvent.DOM_DELTA_PIXEL&&(t/=tr.devicePixelRatio),e.deltaMode===tr.WheelEvent.DOM_DELTA_LINE&&(t*=40)),0!==t&&t%ar==0&&(t=Math.floor(t/ar)),e.shiftKey&&t&&(t*=.25),this.callback({type:or,center:{x:e.clientX,y:e.clientY},delta:-t,srcEvent:e,pointerType:"mouse",target:e.target})},this.events=(this.options.events||[]).concat(ir),this.events.forEach((t=>e.addEventListener(t,this.handleEvent,!!nr&&{passive:!1})))}destroy(){this.events.forEach((e=>this.element.removeEventListener(e,this.handleEvent)))}enableEventType(e,t){e===or&&(this.options.enable=t)}}const{MOUSE_EVENTS:sr}=Kn,ur="pointermove",lr="pointerover",pr="pointerout",hr="pointerenter",dr="pointerleave";class fr extends Gn{constructor(e,t,n){super(e,t,n),this.handleEvent=e=>{this.handleOverEvent(e),this.handleOutEvent(e),this.handleEnterEvent(e),this.handleLeaveEvent(e),this.handleMoveEvent(e)},this.pressed=!1;const{enable:r}=this.options;this.enableMoveEvent=r,this.enableLeaveEvent=r,this.enableEnterEvent=r,this.enableOutEvent=r,this.enableOverEvent=r,this.events=(this.options.events||[]).concat(sr),this.events.forEach((t=>e.addEventListener(t,this.handleEvent)))}destroy(){this.events.forEach((e=>this.element.removeEventListener(e,this.handleEvent)))}enableEventType(e,t){e===ur&&(this.enableMoveEvent=t),e===lr&&(this.enableOverEvent=t),e===pr&&(this.enableOutEvent=t),e===hr&&(this.enableEnterEvent=t),e===dr&&(this.enableLeaveEvent=t)}handleOverEvent(e){this.enableOverEvent&&"mouseover"===e.type&&this._emit(lr,e)}handleOutEvent(e){this.enableOutEvent&&"mouseout"===e.type&&this._emit(pr,e)}handleEnterEvent(e){this.enableEnterEvent&&"mouseenter"===e.type&&this._emit(hr,e)}handleLeaveEvent(e){this.enableLeaveEvent&&"mouseleave"===e.type&&this._emit(dr,e)}handleMoveEvent(e){if(this.enableMoveEvent)switch(e.type){case"mousedown":e.button>=0&&(this.pressed=!0);break;case"mousemove":0===e.which&&(this.pressed=!1),this.pressed||this._emit(ur,e);break;case"mouseup":this.pressed=!1}}_emit(e,t){this.callback({type:e,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const{KEY_EVENTS:mr}=Kn,vr="keydown",yr="keyup";class gr extends Gn{constructor(e,t,n){super(e,t,n),this.handleEvent=e=>{const t=e.target||e.srcElement;"INPUT"===t.tagName&&"text"===t.type||"TEXTAREA"===t.tagName||(this.enableDownEvent&&"keydown"===e.type&&this.callback({type:vr,srcEvent:e,key:e.key,target:e.target}),this.enableUpEvent&&"keyup"===e.type&&this.callback({type:yr,srcEvent:e,key:e.key,target:e.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(mr),e.tabIndex=this.options.tabIndex||0,e.style.outline="none",this.events.forEach((t=>e.addEventListener(t,this.handleEvent)))}destroy(){this.events.forEach((e=>this.element.removeEventListener(e,this.handleEvent)))}enableEventType(e,t){e===vr&&(this.enableDownEvent=t),e===yr&&(this.enableUpEvent=t)}}const br="contextmenu";class wr extends Gn{constructor(e,t,n){super(e,t,n),this.handleEvent=e=>{this.options.enable&&this.callback({type:br,center:{x:e.clientX,y:e.clientY},srcEvent:e,pointerType:"mouse",target:e.target})},e.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(e,t){e===br&&(this.options.enable=t)}}const Er={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4};function _r(e){const t=Er[e.srcEvent.type];if(!t)return null;const{buttons:n,button:r,which:i}=e.srcEvent;let o=!1,a=!1,c=!1;return 4===t||2===t&&!Number.isFinite(n)?(o=1===i,a=2===i,c=3===i):2===t?(o=Boolean(1&n),a=Boolean(4&n),c=Boolean(2&n)):1===t&&(o=0===r,a=1===r,c=2===r),{leftButton:o,middleButton:a,rightButton:c}}function Or(e,t){const n=e.center;if(!n)return null;const r=t.getBoundingClientRect(),i=r.width/t.offsetWidth||1,o=r.height/t.offsetHeight||1;return{center:n,offsetCenter:{x:(n.x-r.left-t.clientLeft)/i,y:(n.y-r.top-t.clientTop)/o}}}const Pr={srcElement:"root",priority:0};class Mr{constructor(e){this.handleEvent=e=>{if(this.isEmpty())return;const t=this._normalizeEvent(e);let n=e.srcEvent.target;for(;n&&n!==t.rootElement;){if(this._emit(t,n),t.handled)return;n=n.parentNode}this._emit(t,"root")},this.eventManager=e,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const{handlers:o,handlersByElement:a}=this;let c=Pr;"string"==typeof n||n&&n.addEventListener?c={...Pr,srcElement:n}:n&&(c={...Pr,...n});let s=a.get(c.srcElement);s||(s=[],a.set(c.srcElement,s));const u={type:e,handler:t,srcElement:c.srcElement,priority:c.priority};r&&(u.once=!0),i&&(u.passive=!0),o.push(u),this._active=this._active||!u.passive;let l=s.length-1;for(;l>=0&&!(s[l].priority>=u.priority);)l--;s.splice(l+1,0,u)}remove(e,t){const{handlers:n,handlersByElement:r}=this;for(let i=n.length-1;i>=0;i--){const o=n[i];if(o.type===e&&o.handler===t){n.splice(i,1);const e=r.get(o.srcElement);e.splice(e.indexOf(o),1),0===e.length&&r.delete(o.srcElement)}}this._active=n.some((e=>!e.passive))}_emit(e,t){const n=this.handlersByElement.get(t);if(n){let t=!1;const r=()=>{e.handled=!0},i=()=>{e.handled=!0,t=!0},o=[];for(let a=0;a{e.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:t}}}const Sr={events:null,recognizers:null,recognizerOptions:{},Manager:Hn,touchAction:"none",tabIndex:0};class xr{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;this._onBasicInput=e=>{const{srcEvent:t}=e,n=$n[t.type];n&&this.manager.emit(n,e)},this._onOtherEvent=e=>{this.manager.emit(e.type,e)},this.options={...Sr,...t},this.events=new Map,this.setElement(e);const{events:n}=this.options;n&&this.on(n)}getElement(){return this.element}setElement(e){if(this.element&&this.destroy(),this.element=e,!e)return;const{options:t}=this,n=t.Manager;this.manager=new n(e,{touchAction:t.touchAction,recognizers:t.recognizers||Wn}).on("hammer.input",this._onBasicInput),t.recognizers||Object.keys(qn).forEach((e=>{const t=this.manager.get(e);t&&qn[e].forEach((e=>{t.recognizeWith(e)}))}));for(const r in t.recognizerOptions){const e=this.manager.get(r);if(e){const n=t.recognizerOptions[r];delete n.enable,e.set(n)}}this.wheelInput=new cr(e,this._onOtherEvent,{enable:!1}),this.moveInput=new fr(e,this._onOtherEvent,{enable:!1}),this.keyInput=new gr(e,this._onOtherEvent,{enable:!1,tabIndex:t.tabIndex}),this.contextmenuInput=new wr(e,this._onOtherEvent,{enable:!1});for(const[r,i]of this.events)i.isEmpty()||(this._toggleRecognizer(i.recognizerName,!0),this.manager.on(r,i.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(e,t,n){this._addEventHandler(e,t,n,!1)}once(e,t,n){this._addEventHandler(e,t,n,!0)}watch(e,t,n){this._addEventHandler(e,t,n,!1,!0)}off(e,t){this._removeEventHandler(e,t)}_toggleRecognizer(e,t){const{manager:n}=this;if(!n)return;const r=n.get(e);if(r&&r.options.enable!==t){r.set({enable:t});const i=Xn[e];i&&!this.options.recognizers&&i.forEach((i=>{const o=n.get(i);t?(o.requireFailure(e),r.dropRequireFailure(i)):o.dropRequireFailure(e)}))}this.wheelInput.enableEventType(e,t),this.moveInput.enableEventType(e,t),this.keyInput.enableEventType(e,t),this.contextmenuInput.enableEventType(e,t)}_addEventHandler(e,t,n,r,i){if("string"!=typeof e){n=t;for(const t in e)this._addEventHandler(t,e[t],n,r,i);return}const{manager:o,events:a}=this,c=Qn[e]||e;let s=a.get(c);s||(s=new Mr(this),a.set(c,s),s.recognizerName=Jn[c]||c,o&&o.on(c,s.handleEvent)),s.add(e,t,n,r,i),s.isEmpty()||this._toggleRecognizer(s.recognizerName,!0)}_removeEventHandler(e,t){if("string"!=typeof e){for(const t in e)this._removeEventHandler(t,e[t]);return}const{events:n}=this,r=Qn[e]||e,i=n.get(r);if(i&&(i.remove(e,t),i.isEmpty())){const{recognizerName:e}=i;let t=!1;for(const r of n.values())if(r.recognizerName===e&&!r.isEmpty()){t=!0;break}t||this._toggleRecognizer(e,!1)}}}function jr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function kr(e){for(var t=1;t0),a=o&&!this.state.isHovering,c=!o&&this.state.isHovering;(r||a)&&(e.features=t,r&&r(e)),a&&Wr.call(this,"onMouseEnter",e),c&&Wr.call(this,"onMouseLeave",e),(a||c)&&this.setState({isHovering:o})}}function Kr(e){var t=this.props,n=t.onClick,r=t.onNativeClick,i=t.onDblClick,o=t.doubleClickZoom,a=[],c=i||o;switch(e.type){case"anyclick":a.push(r),c||a.push(n);break;case"click":c&&a.push(n)}(a=a.filter(Boolean)).length&&((e=Yr.call(this,e)).features=Gr.call(this,e.point),a.forEach((function(t){return t(e)})))}var Jr=(0,r.forwardRef)((function(e,t){var n=(0,r.useContext)(Qt),i=(0,r.useMemo)((function(){return e.controller||new Br}),[]),o=(0,r.useMemo)((function(){return new xr(null,{touchAction:e.touchAction,recognizerOptions:e.eventRecognizerOptions})}),[]),a=(0,r.useRef)(null),c=(0,r.useRef)(null),s=(0,r.useRef)({width:0,height:0,state:{isHovering:!1,isDragging:!1}}).current;s.props=e,s.map=c.current&&c.current.getMap(),s.setState=function(t){s.state=Zr(Zr({},s.state),t),a.current.style.cursor=e.getCursor(s.state)};var u,l,p=!0,h=function(e,t,n){if(p)u=[e,t,n];else{var r=s.props,i=r.onViewStateChange,o=r.onViewportChange;i&&i({viewState:e,interactionState:t,oldViewState:n}),o&&o(e,t,n)}};(0,r.useImperativeHandle)(t,(function(){return function(e){return{getMap:e.current&&e.current.getMap,queryRenderedFeatures:e.current&&e.current.queryRenderedFeatures}}(c)}),[]);var d=(0,r.useMemo)((function(){return Zr(Zr({},n),{},{eventManager:o,container:n.container||a.current})}),[n,a.current]);d.onViewportChange=h,d.viewport=n.viewport||on(s),s.viewport=d.viewport;var f=function(e){var t=e.isDragging,n=void 0!==t&&t;if(n!==s.state.isDragging&&s.setState({isDragging:n}),p)l=e;else{var r=s.props.onInteractionStateChange;r&&r(e)}},m=function(){s.width&&s.height&&i.setOptions(Zr(Zr(Zr({},s.props),s.props.viewState),{},{isInteractive:Boolean(s.props.onViewStateChange||s.props.onViewportChange),onViewportChange:h,onStateChange:f,eventManager:o,width:s.width,height:s.height}))};(0,r.useEffect)((function(){return o.setElement(a.current),o.on({pointerdown:qr.bind(s),pointermove:$r.bind(s),pointerup:Xr.bind(s),pointerleave:Wr.bind(s,"onMouseOut"),click:Kr.bind(s),anyclick:Kr.bind(s),dblclick:Wr.bind(s,"onDblClick"),wheel:Wr.bind(s,"onWheel"),contextmenu:Wr.bind(s,"onContextMenu")}),function(){o.destroy()}}),[]),en((function(){u&&h.apply(void 0,(0,ne.Z)(u)),l&&f(l)})),m();var v=e.width,y=e.height,g=e.style,b=e.getCursor,w=(0,r.useMemo)((function(){return Zr(Zr({position:"relative"},g),{},{width:v,height:y,cursor:b(s.state)})}),[g,v,y,b,s.state]);return u&&s._child||(s._child=r.createElement(Jt,{value:d},r.createElement("div",{key:"event-canvas",ref:a,style:w},r.createElement(ln,te({},e,{width:"100%",height:"100%",style:null,onResize:function(e){var t=e.width,n=e.height;s.width=t,s.height=n,m(),s.props.onResize({width:t,height:n})},ref:c}))))),p=!1,s._child}));Jr.supported=ln.supported,Jr.propTypes=Ur,Jr.defaultProps=Hr;var Qr=Jr;function ei(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var n=0;n prop: ".concat(r));else e.setCoordinates(t.coordinates)}}(c,e,n.current):c=ri(a,o,e),n.current=e,c&&r.Children.map(e.children,(function(e){return e&&(0,r.cloneElement)(e,{source:o})}))||null};function oi(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ai(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ci(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=(0,r.useContext)(Qt),n=(0,r.useRef)(null),i=(0,r.useRef)({props:e,state:{},context:t,containerRef:n}),o=i.current;return o.props=e,o.context=t,(0,r.useEffect)((function(){return mi(o)}),[t.eventManager]),o}function yi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=bn(e);if(t){var i=bn(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return gn(this,n)}}function gi(e){var t=e.instance,n=vi(e),r=n.context,i=n.containerRef;return t._context=r,t._containerRef=i,t._render()}var bi=function(e){vn(n,e);var t=yi(n);function n(){var e;wt(this,n);for(var i=arguments.length,o=new Array(i),a=0;a2&&void 0!==arguments[2]?arguments[2]:"x";if(null===e)return t;var r="x"===n?e.offsetWidth:e.offsetHeight;return ji(t/100*r)/r*100};function Ti(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Ci=Object.assign({},_i,{className:""});function Di(e){var t=function(e){var t=ae((0,r.useState)(null),2),n=t[0],i=t[1],o=ae((0,r.useState)(null),2),a=o[0],c=o[1],s=vi(Ei(Ei({},e),{},{onDragStart:Mi}));return s.callbacks=e,s.state.dragPos=n,s.state.setDragPos=i,s.state.dragOffset=a,s.state.setDragOffset=c,(0,r.useEffect)((function(){return Si(s)}),[s.context.eventManager,Boolean(n)]),s}(e),n=t.state,i=t.containerRef,o=e.children,a=e.className,c=e.draggable,s=e.style,u=n.dragPos,l=function(e){var t=e.props,n=e.state,r=e.context,i=t.longitude,o=t.latitude,a=t.offsetLeft,c=t.offsetTop,s=n.dragPos,u=n.dragOffset;if(s&&u)return[s[0]+u[0],s[1]+u[1]];var l=ae(r.viewport.project([i,o]),2),p=l[0],h=l[1];return[p+=a,h+=c]}(t),p=ae(l,2),h=p[0],d=p[1],f="translate(".concat(ji(h),"px, ").concat(ji(d),"px)"),m=c?u?"grabbing":"grab":"auto",v=(0,r.useMemo)((function(){var e=function(e){for(var t=1;t0){var v=h,y=m;for(h=0;h<=1;h+=.5)f=(d=n-h*a)+a,(m=Math.max(0,u-d)+Math.max(0,f-i+u))0){var _=p,O=E;for(p=0;p<=1;p+=g)w=(b=t-p*o)+o,(E=Math.max(0,u-b)+Math.max(0,w-r+u))1||s<-1||a<0||a>t.width||c<0||c>t.height?y.display="none":y.zIndex=Math.floor((1-s)/2*1e5),y):y}(e,c,o.current,m,v),g=(0,r.useCallback)((function(e){n.props.onClose();var t=n.context.eventManager;t&&t.once("click",(function(e){return e.stopPropagation()}),e.target)}),[]);return r.createElement("div",{className:"mapboxgl-popup mapboxgl-popup-anchor-".concat(v," ").concat(s),style:y,ref:o},r.createElement("div",{key:"tip",className:"mapboxgl-popup-tip",style:{borderWidth:h}}),r.createElement("div",{key:"content",ref:t,className:"mapboxgl-popup-content"},d&&r.createElement("button",{key:"close-button",className:"mapboxgl-popup-close-button",type:"button",onClick:g},"×"),f))}Ai.defaultProps=Ii;r.memo(Ai);function Fi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Bi=Object.assign({},di,{className:"",toggleLabel:"Toggle Attribution"});function Vi(e){var t=vi(e),n=t.context,i=t.containerRef,o=(0,r.useRef)(null),a=ae((0,r.useState)(!1),2),c=a[0],s=a[1];(0,r.useEffect)((function(){var t;return n.map&&(t=function(e,t,n,r){var i=new(zt().AttributionControl)(e);return i._map=t,i._container=n,i._innerContainer=r,i._updateAttributions(),i._updateEditLink(),t.on("styledata",i._updateData),t.on("sourcedata",i._updateData),i}({customAttribution:e.customAttribution},n.map,i.current,o.current)),function(){return t&&function(e){e._map.off("styledata",e._updateData),e._map.off("sourcedata",e._updateData)}(t)}}),[n.map]);var u=void 0===e.compact?n.viewport.width<=640:e.compact;(0,r.useEffect)((function(){!u&&c&&s(!1)}),[u]);var l=(0,r.useCallback)((function(){return s((function(e){return!e}))}),[]),p=(0,r.useMemo)((function(){return function(e){for(var t=1;ta)return 1}return 0}(e,"1.6.0")>=0?2:1}function no(e,t,n){var r=e.viewport,i=new Wt(Object.assign({},r,n)),o=Object.assign({},i.getViewportProps(),Cr),a=t.onViewportChange||e.onViewportChange||Qi;(t.onViewStateChange||e.onViewStateChange||Qi)({viewState:o}),a(o)}function ro(e,t,n,i){return r.createElement("button",{key:e,className:"mapboxgl-ctrl-icon mapboxgl-ctrl-".concat(e),type:"button",title:t,onClick:n},i||r.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true"}))}function io(e){var t=vi(e),n=t.context,i=t.containerRef,o=e.className,a=e.showCompass,c=e.showZoom,s=e.zoomInLabel,u=e.zoomOutLabel,l=e.compassLabel,p=(0,r.useMemo)((function(){return function(e){for(var t=1;t`我用 App 记录自己跑步 ${e} 年了,下面列表展示的是${"Total"===t?"所有":` ${t} `}的数据`,go={FULL_MARATHON_RUN_TITLE:"全程马拉松",HALF_MARATHON_RUN_TITLE:"半程马拉松",MORNING_RUN_TITLE:"清晨跑步",MIDDAY_RUN_TITLE:"午间跑步",AFTERNOON_RUN_TITLE:"午后跑步",EVENING_RUN_TITLE:"傍晚跑步",NIGHT_RUN_TITLE:"夜晚跑步"},bo="rgb(224,237,94)",wo=e=>{if(Number.isNaN(e))return"0";const t=1e3/60*(1/e),n=Math.floor(t);return`${n}'${Math.floor(60*(t-n)).toFixed(0).toString().padStart(2,"0")}"`},Eo=e=>{if(!e)return 0;const t=e.split(", "),n=2==t.length?parseInt(t[0]):0,r=t.splice(-1)[0],[i,o,a]=r.split(":").map(Number);return 60*(60*(24*n+i)+o)+a},_o=()=>{const e=document.querySelector(".fl.w-100.w-70-l").getBoundingClientRect();window.scroll(e.left+window.scrollX,e.top+window.scrollY)},Oo=/([\u4e00-\u9fa5]{2,}(市|自治州))/g,Po=[{code:"130100",name:"石家庄市",province:"13",city:"01"},{code:"130200",name:"唐山市",province:"13",city:"02"},{code:"130300",name:"秦皇岛市",province:"13",city:"03"},{code:"130400",name:"邯郸市",province:"13",city:"04"},{code:"130500",name:"邢台市",province:"13",city:"05"},{code:"130600",name:"保定市",province:"13",city:"06"},{code:"130700",name:"张家口市",province:"13",city:"07"},{code:"130800",name:"承德市",province:"13",city:"08"},{code:"130900",name:"沧州市",province:"13",city:"09"},{code:"131000",name:"廊坊市",province:"13",city:"10"},{code:"131100",name:"衡水市",province:"13",city:"11"},{code:"140100",name:"太原市",province:"14",city:"01"},{code:"140200",name:"大同市",province:"14",city:"02"},{code:"140300",name:"阳泉市",province:"14",city:"03"},{code:"140400",name:"长治市",province:"14",city:"04"},{code:"140500",name:"晋城市",province:"14",city:"05"},{code:"140600",name:"朔州市",province:"14",city:"06"},{code:"140700",name:"晋中市",province:"14",city:"07"},{code:"140800",name:"运城市",province:"14",city:"08"},{code:"140900",name:"忻州市",province:"14",city:"09"},{code:"141000",name:"临汾市",province:"14",city:"10"},{code:"141100",name:"吕梁市",province:"14",city:"11"},{code:"150100",name:"呼和浩特市",province:"15",city:"01"},{code:"150200",name:"包头市",province:"15",city:"02"},{code:"150300",name:"乌海市",province:"15",city:"03"},{code:"150400",name:"赤峰市",province:"15",city:"04"},{code:"150500",name:"通辽市",province:"15",city:"05"},{code:"150600",name:"鄂尔多斯市",province:"15",city:"06"},{code:"150700",name:"呼伦贝尔市",province:"15",city:"07"},{code:"150800",name:"巴彦淖尔市",province:"15",city:"08"},{code:"150900",name:"乌兰察布市",province:"15",city:"09"},{code:"152200",name:"兴安盟",province:"15",city:"22"},{code:"152500",name:"锡林郭勒盟",province:"15",city:"25"},{code:"152900",name:"阿拉善盟",province:"15",city:"29"},{code:"210100",name:"沈阳市",province:"21",city:"01"},{code:"210200",name:"大连市",province:"21",city:"02"},{code:"210300",name:"鞍山市",province:"21",city:"03"},{code:"210400",name:"抚顺市",province:"21",city:"04"},{code:"210500",name:"本溪市",province:"21",city:"05"},{code:"210600",name:"丹东市",province:"21",city:"06"},{code:"210700",name:"锦州市",province:"21",city:"07"},{code:"210800",name:"营口市",province:"21",city:"08"},{code:"210900",name:"阜新市",province:"21",city:"09"},{code:"211000",name:"辽阳市",province:"21",city:"10"},{code:"211100",name:"盘锦市",province:"21",city:"11"},{code:"211200",name:"铁岭市",province:"21",city:"12"},{code:"211300",name:"朝阳市",province:"21",city:"13"},{code:"211400",name:"葫芦岛市",province:"21",city:"14"},{code:"220100",name:"长春市",province:"22",city:"01"},{code:"220200",name:"吉林市",province:"22",city:"02"},{code:"220300",name:"四平市",province:"22",city:"03"},{code:"220400",name:"辽源市",province:"22",city:"04"},{code:"220500",name:"通化市",province:"22",city:"05"},{code:"220600",name:"白山市",province:"22",city:"06"},{code:"220700",name:"松原市",province:"22",city:"07"},{code:"220800",name:"白城市",province:"22",city:"08"},{code:"222400",name:"延边朝鲜族自治州",province:"22",city:"24"},{code:"230100",name:"哈尔滨市",province:"23",city:"01"},{code:"230200",name:"齐齐哈尔市",province:"23",city:"02"},{code:"230300",name:"鸡西市",province:"23",city:"03"},{code:"230400",name:"鹤岗市",province:"23",city:"04"},{code:"230500",name:"双鸭山市",province:"23",city:"05"},{code:"230600",name:"大庆市",province:"23",city:"06"},{code:"230700",name:"伊春市",province:"23",city:"07"},{code:"230800",name:"佳木斯市",province:"23",city:"08"},{code:"230900",name:"七台河市",province:"23",city:"09"},{code:"231000",name:"牡丹江市",province:"23",city:"10"},{code:"231100",name:"黑河市",province:"23",city:"11"},{code:"231200",name:"绥化市",province:"23",city:"12"},{code:"232700",name:"大兴安岭地区",province:"23",city:"27"},{code:"320100",name:"南京市",province:"32",city:"01"},{code:"320200",name:"无锡市",province:"32",city:"02"},{code:"320300",name:"徐州市",province:"32",city:"03"},{code:"320400",name:"常州市",province:"32",city:"04"},{code:"320500",name:"苏州市",province:"32",city:"05"},{code:"320600",name:"南通市",province:"32",city:"06"},{code:"320700",name:"连云港市",province:"32",city:"07"},{code:"320800",name:"淮安市",province:"32",city:"08"},{code:"320900",name:"盐城市",province:"32",city:"09"},{code:"321000",name:"扬州市",province:"32",city:"10"},{code:"321100",name:"镇江市",province:"32",city:"11"},{code:"321200",name:"泰州市",province:"32",city:"12"},{code:"321300",name:"宿迁市",province:"32",city:"13"},{code:"330100",name:"杭州市",province:"33",city:"01"},{code:"330200",name:"宁波市",province:"33",city:"02"},{code:"330300",name:"温州市",province:"33",city:"03"},{code:"330400",name:"嘉兴市",province:"33",city:"04"},{code:"330500",name:"湖州市",province:"33",city:"05"},{code:"330600",name:"绍兴市",province:"33",city:"06"},{code:"330700",name:"金华市",province:"33",city:"07"},{code:"330800",name:"衢州市",province:"33",city:"08"},{code:"330900",name:"舟山市",province:"33",city:"09"},{code:"331000",name:"台州市",province:"33",city:"10"},{code:"331100",name:"丽水市",province:"33",city:"11"},{code:"340100",name:"合肥市",province:"34",city:"01"},{code:"340200",name:"芜湖市",province:"34",city:"02"},{code:"340300",name:"蚌埠市",province:"34",city:"03"},{code:"340400",name:"淮南市",province:"34",city:"04"},{code:"340500",name:"马鞍山市",province:"34",city:"05"},{code:"340600",name:"淮北市",province:"34",city:"06"},{code:"340700",name:"铜陵市",province:"34",city:"07"},{code:"340800",name:"安庆市",province:"34",city:"08"},{code:"341000",name:"黄山市",province:"34",city:"10"},{code:"341100",name:"滁州市",province:"34",city:"11"},{code:"341200",name:"阜阳市",province:"34",city:"12"},{code:"341300",name:"宿州市",province:"34",city:"13"},{code:"341500",name:"六安市",province:"34",city:"15"},{code:"341600",name:"亳州市",province:"34",city:"16"},{code:"341700",name:"池州市",province:"34",city:"17"},{code:"341800",name:"宣城市",province:"34",city:"18"},{code:"350100",name:"福州市",province:"35",city:"01"},{code:"350200",name:"厦门市",province:"35",city:"02"},{code:"350300",name:"莆田市",province:"35",city:"03"},{code:"350400",name:"三明市",province:"35",city:"04"},{code:"350500",name:"泉州市",province:"35",city:"05"},{code:"350600",name:"漳州市",province:"35",city:"06"},{code:"350700",name:"南平市",province:"35",city:"07"},{code:"350800",name:"龙岩市",province:"35",city:"08"},{code:"350900",name:"宁德市",province:"35",city:"09"},{code:"360100",name:"南昌市",province:"36",city:"01"},{code:"360200",name:"景德镇市",province:"36",city:"02"},{code:"360300",name:"萍乡市",province:"36",city:"03"},{code:"360400",name:"九江市",province:"36",city:"04"},{code:"360500",name:"新余市",province:"36",city:"05"},{code:"360600",name:"鹰潭市",province:"36",city:"06"},{code:"360700",name:"赣州市",province:"36",city:"07"},{code:"360800",name:"吉安市",province:"36",city:"08"},{code:"360900",name:"宜春市",province:"36",city:"09"},{code:"361000",name:"抚州市",province:"36",city:"10"},{code:"361100",name:"上饶市",province:"36",city:"11"},{code:"370100",name:"济南市",province:"37",city:"01"},{code:"370200",name:"青岛市",province:"37",city:"02"},{code:"370300",name:"淄博市",province:"37",city:"03"},{code:"370400",name:"枣庄市",province:"37",city:"04"},{code:"370500",name:"东营市",province:"37",city:"05"},{code:"370600",name:"烟台市",province:"37",city:"06"},{code:"370700",name:"潍坊市",province:"37",city:"07"},{code:"370800",name:"济宁市",province:"37",city:"08"},{code:"370900",name:"泰安市",province:"37",city:"09"},{code:"371000",name:"威海市",province:"37",city:"10"},{code:"371100",name:"日照市",province:"37",city:"11"},{code:"371300",name:"临沂市",province:"37",city:"13"},{code:"371400",name:"德州市",province:"37",city:"14"},{code:"371500",name:"聊城市",province:"37",city:"15"},{code:"371600",name:"滨州市",province:"37",city:"16"},{code:"371700",name:"菏泽市",province:"37",city:"17"},{code:"410100",name:"郑州市",province:"41",city:"01"},{code:"410200",name:"开封市",province:"41",city:"02"},{code:"410300",name:"洛阳市",province:"41",city:"03"},{code:"410400",name:"平顶山市",province:"41",city:"04"},{code:"410500",name:"安阳市",province:"41",city:"05"},{code:"410600",name:"鹤壁市",province:"41",city:"06"},{code:"410700",name:"新乡市",province:"41",city:"07"},{code:"410800",name:"焦作市",province:"41",city:"08"},{code:"410900",name:"濮阳市",province:"41",city:"09"},{code:"411000",name:"许昌市",province:"41",city:"10"},{code:"411100",name:"漯河市",province:"41",city:"11"},{code:"411200",name:"三门峡市",province:"41",city:"12"},{code:"411300",name:"南阳市",province:"41",city:"13"},{code:"411400",name:"商丘市",province:"41",city:"14"},{code:"411500",name:"信阳市",province:"41",city:"15"},{code:"411600",name:"周口市",province:"41",city:"16"},{code:"411700",name:"驻马店市",province:"41",city:"17"},{code:"420100",name:"武汉市",province:"42",city:"01"},{code:"420200",name:"黄石市",province:"42",city:"02"},{code:"420300",name:"十堰市",province:"42",city:"03"},{code:"420500",name:"宜昌市",province:"42",city:"05"},{code:"420600",name:"襄阳市",province:"42",city:"06"},{code:"420700",name:"鄂州市",province:"42",city:"07"},{code:"420800",name:"荆门市",province:"42",city:"08"},{code:"420900",name:"孝感市",province:"42",city:"09"},{code:"421000",name:"荆州市",province:"42",city:"10"},{code:"421100",name:"黄冈市",province:"42",city:"11"},{code:"421200",name:"咸宁市",province:"42",city:"12"},{code:"421300",name:"随州市",province:"42",city:"13"},{code:"422800",name:"恩施土家族苗族自治州",province:"42",city:"28"},{code:"430100",name:"长沙市",province:"43",city:"01"},{code:"430200",name:"株洲市",province:"43",city:"02"},{code:"430300",name:"湘潭市",province:"43",city:"03"},{code:"430400",name:"衡阳市",province:"43",city:"04"},{code:"430500",name:"邵阳市",province:"43",city:"05"},{code:"430600",name:"岳阳市",province:"43",city:"06"},{code:"430700",name:"常德市",province:"43",city:"07"},{code:"430800",name:"张家界市",province:"43",city:"08"},{code:"430900",name:"益阳市",province:"43",city:"09"},{code:"431000",name:"郴州市",province:"43",city:"10"},{code:"431100",name:"永州市",province:"43",city:"11"},{code:"431200",name:"怀化市",province:"43",city:"12"},{code:"431300",name:"娄底市",province:"43",city:"13"},{code:"433100",name:"湘西土家族苗族自治州",province:"43",city:"31"},{code:"440100",name:"广州市",province:"44",city:"01"},{code:"440200",name:"韶关市",province:"44",city:"02"},{code:"440300",name:"深圳市",province:"44",city:"03"},{code:"440400",name:"珠海市",province:"44",city:"04"},{code:"440500",name:"汕头市",province:"44",city:"05"},{code:"440600",name:"佛山市",province:"44",city:"06"},{code:"440700",name:"江门市",province:"44",city:"07"},{code:"440800",name:"湛江市",province:"44",city:"08"},{code:"440900",name:"茂名市",province:"44",city:"09"},{code:"441200",name:"肇庆市",province:"44",city:"12"},{code:"441300",name:"惠州市",province:"44",city:"13"},{code:"441400",name:"梅州市",province:"44",city:"14"},{code:"441500",name:"汕尾市",province:"44",city:"15"},{code:"441600",name:"河源市",province:"44",city:"16"},{code:"441700",name:"阳江市",province:"44",city:"17"},{code:"441800",name:"清远市",province:"44",city:"18"},{code:"441900",name:"东莞市",province:"44",city:"19"},{code:"442000",name:"中山市",province:"44",city:"20"},{code:"445100",name:"潮州市",province:"44",city:"51"},{code:"445200",name:"揭阳市",province:"44",city:"52"},{code:"445300",name:"云浮市",province:"44",city:"53"},{code:"450100",name:"南宁市",province:"45",city:"01"},{code:"450200",name:"柳州市",province:"45",city:"02"},{code:"450300",name:"桂林市",province:"45",city:"03"},{code:"450400",name:"梧州市",province:"45",city:"04"},{code:"450500",name:"北海市",province:"45",city:"05"},{code:"450600",name:"防城港市",province:"45",city:"06"},{code:"450700",name:"钦州市",province:"45",city:"07"},{code:"450800",name:"贵港市",province:"45",city:"08"},{code:"450900",name:"玉林市",province:"45",city:"09"},{code:"451000",name:"百色市",province:"45",city:"10"},{code:"451100",name:"贺州市",province:"45",city:"11"},{code:"451200",name:"河池市",province:"45",city:"12"},{code:"451300",name:"来宾市",province:"45",city:"13"},{code:"451400",name:"崇左市",province:"45",city:"14"},{code:"460100",name:"海口市",province:"46",city:"01"},{code:"460200",name:"三亚市",province:"46",city:"02"},{code:"460300",name:"三沙市",province:"46",city:"03"},{code:"460400",name:"儋州市",province:"46",city:"04"},{code:"510100",name:"成都市",province:"51",city:"01"},{code:"510300",name:"自贡市",province:"51",city:"03"},{code:"510400",name:"攀枝花市",province:"51",city:"04"},{code:"510500",name:"泸州市",province:"51",city:"05"},{code:"510600",name:"德阳市",province:"51",city:"06"},{code:"510700",name:"绵阳市",province:"51",city:"07"},{code:"510800",name:"广元市",province:"51",city:"08"},{code:"510900",name:"遂宁市",province:"51",city:"09"},{code:"511000",name:"内江市",province:"51",city:"10"},{code:"511100",name:"乐山市",province:"51",city:"11"},{code:"511300",name:"南充市",province:"51",city:"13"},{code:"511400",name:"眉山市",province:"51",city:"14"},{code:"511500",name:"宜宾市",province:"51",city:"15"},{code:"511600",name:"广安市",province:"51",city:"16"},{code:"511700",name:"达州市",province:"51",city:"17"},{code:"511800",name:"雅安市",province:"51",city:"18"},{code:"511900",name:"巴中市",province:"51",city:"19"},{code:"512000",name:"资阳市",province:"51",city:"20"},{code:"513200",name:"阿坝藏族羌族自治州",province:"51",city:"32"},{code:"513300",name:"甘孜藏族自治州",province:"51",city:"33"},{code:"513400",name:"凉山彝族自治州",province:"51",city:"34"},{code:"520100",name:"贵阳市",province:"52",city:"01"},{code:"520200",name:"六盘水市",province:"52",city:"02"},{code:"520300",name:"遵义市",province:"52",city:"03"},{code:"520400",name:"安顺市",province:"52",city:"04"},{code:"520500",name:"毕节市",province:"52",city:"05"},{code:"520600",name:"铜仁市",province:"52",city:"06"},{code:"522300",name:"黔西南布依族苗族自治州",province:"52",city:"23"},{code:"522600",name:"黔东南苗族侗族自治州",province:"52",city:"26"},{code:"522700",name:"黔南布依族苗族自治州",province:"52",city:"27"},{code:"530100",name:"昆明市",province:"53",city:"01"},{code:"530300",name:"曲靖市",province:"53",city:"03"},{code:"530400",name:"玉溪市",province:"53",city:"04"},{code:"530500",name:"保山市",province:"53",city:"05"},{code:"530600",name:"昭通市",province:"53",city:"06"},{code:"530700",name:"丽江市",province:"53",city:"07"},{code:"530800",name:"普洱市",province:"53",city:"08"},{code:"530900",name:"临沧市",province:"53",city:"09"},{code:"532300",name:"楚雄彝族自治州",province:"53",city:"23"},{code:"532500",name:"红河哈尼族彝族自治州",province:"53",city:"25"},{code:"532600",name:"文山壮族苗族自治州",province:"53",city:"26"},{code:"532800",name:"西双版纳傣族自治州",province:"53",city:"28"},{code:"532900",name:"大理白族自治州",province:"53",city:"29"},{code:"533100",name:"德宏傣族景颇族自治州",province:"53",city:"31"},{code:"533300",name:"怒江傈僳族自治州",province:"53",city:"33"},{code:"533400",name:"迪庆藏族自治州",province:"53",city:"34"},{code:"540100",name:"拉萨市",province:"54",city:"01"},{code:"540200",name:"日喀则市",province:"54",city:"02"},{code:"540300",name:"昌都市",province:"54",city:"03"},{code:"540400",name:"林芝市",province:"54",city:"04"},{code:"540500",name:"山南市",province:"54",city:"05"},{code:"540600",name:"那曲市",province:"54",city:"06"},{code:"542500",name:"阿里地区",province:"54",city:"25"},{code:"610100",name:"西安市",province:"61",city:"01"},{code:"610200",name:"铜川市",province:"61",city:"02"},{code:"610300",name:"宝鸡市",province:"61",city:"03"},{code:"610400",name:"咸阳市",province:"61",city:"04"},{code:"610500",name:"渭南市",province:"61",city:"05"},{code:"610600",name:"延安市",province:"61",city:"06"},{code:"610700",name:"汉中市",province:"61",city:"07"},{code:"610800",name:"榆林市",province:"61",city:"08"},{code:"610900",name:"安康市",province:"61",city:"09"},{code:"611000",name:"商洛市",province:"61",city:"10"},{code:"620100",name:"兰州市",province:"62",city:"01"},{code:"620200",name:"嘉峪关市",province:"62",city:"02"},{code:"620300",name:"金昌市",province:"62",city:"03"},{code:"620400",name:"白银市",province:"62",city:"04"},{code:"620500",name:"天水市",province:"62",city:"05"},{code:"620600",name:"武威市",province:"62",city:"06"},{code:"620700",name:"张掖市",province:"62",city:"07"},{code:"620800",name:"平凉市",province:"62",city:"08"},{code:"620900",name:"酒泉市",province:"62",city:"09"},{code:"621000",name:"庆阳市",province:"62",city:"10"},{code:"621100",name:"定西市",province:"62",city:"11"},{code:"621200",name:"陇南市",province:"62",city:"12"},{code:"622900",name:"临夏回族自治州",province:"62",city:"29"},{code:"623000",name:"甘南藏族自治州",province:"62",city:"30"},{code:"630100",name:"西宁市",province:"63",city:"01"},{code:"630200",name:"海东市",province:"63",city:"02"},{code:"632200",name:"海北藏族自治州",province:"63",city:"22"},{code:"632300",name:"黄南藏族自治州",province:"63",city:"23"},{code:"632500",name:"海南藏族自治州",province:"63",city:"25"},{code:"632600",name:"果洛藏族自治州",province:"63",city:"26"},{code:"632700",name:"玉树藏族自治州",province:"63",city:"27"},{code:"632800",name:"海西蒙古族藏族自治州",province:"63",city:"28"},{code:"640100",name:"银川市",province:"64",city:"01"},{code:"640200",name:"石嘴山市",province:"64",city:"02"},{code:"640300",name:"吴忠市",province:"64",city:"03"},{code:"640400",name:"固原市",province:"64",city:"04"},{code:"640500",name:"中卫市",province:"64",city:"05"},{code:"650100",name:"乌鲁木齐市",province:"65",city:"01"},{code:"650200",name:"克拉玛依市",province:"65",city:"02"},{code:"650400",name:"吐鲁番市",province:"65",city:"04"},{code:"650500",name:"哈密市",province:"65",city:"05"},{code:"652300",name:"昌吉回族自治州",province:"65",city:"23"},{code:"652700",name:"博尔塔拉蒙古自治州",province:"65",city:"27"},{code:"652800",name:"巴音郭楞蒙古自治州",province:"65",city:"28"},{code:"652900",name:"阿克苏地区",province:"65",city:"29"},{code:"653000",name:"克孜勒苏柯尔克孜自治州",province:"65",city:"30"},{code:"653100",name:"喀什地区",province:"65",city:"31"},{code:"653200",name:"和田地区",province:"65",city:"32"},{code:"654000",name:"伊犁哈萨克自治州",province:"65",city:"40"},{code:"654200",name:"塔城地区",province:"65",city:"42"},{code:"654300",name:"阿勒泰地区",province:"65",city:"43"},{code:"429000",name:"湖北省 - 自治区直辖县级行政区划",province:"42",city:"90"},{code:"469000",name:"海南省 - 自治区直辖县级行政区划",province:"46",city:"90"},{code:"659000",name:"新疆维吾尔自治区 - 自治区直辖县级行政区划",province:"65",city:"90"},{code:"419000",name:"河南省 - 省直辖县级行政区划",province:"41",city:"90"},{code:"110000",name:"北京市",province:"11"},{code:"120000",name:"天津市",province:"12"},{code:"130000",name:"河北省",province:"13"},{code:"140000",name:"山西省",province:"14"},{code:"150000",name:"内蒙古自治区",province:"15"},{code:"210000",name:"辽宁省",province:"21"},{code:"220000",name:"吉林省",province:"22"},{code:"230000",name:"黑龙江省",province:"23"},{code:"310000",name:"上海市",province:"31"},{code:"320000",name:"江苏省",province:"32"},{code:"330000",name:"浙江省",province:"33"},{code:"340000",name:"安徽省",province:"34"},{code:"350000",name:"福建省",province:"35"},{code:"360000",name:"江西省",province:"36"},{code:"370000",name:"山东省",province:"37"},{code:"410000",name:"河南省",province:"41"},{code:"420000",name:"湖北省",province:"42"},{code:"430000",name:"湖南省",province:"43"},{code:"440000",name:"广东省",province:"44"},{code:"450000",name:"广西壮族自治区",province:"45"},{code:"460000",name:"海南省",province:"46"},{code:"500000",name:"重庆市",province:"50"},{code:"510000",name:"四川省",province:"51"},{code:"520000",name:"贵州省",province:"52"},{code:"530000",name:"云南省",province:"53"},{code:"540000",name:"西藏自治区",province:"54"},{code:"610000",name:"陕西省",province:"61"},{code:"620000",name:"甘肃省",province:"62"},{code:"630000",name:"青海省",province:"63"},{code:"640000",name:"宁夏回族自治区",province:"64"},{code:"650000",name:"新疆维吾尔自治区",province:"65"},{code:"710000",name:"台湾省",province:"71"},{code:"810000",name:"香港特别行政区",province:"81"},{code:"820000",name:"澳门特别行政区",province:"82"}].map((e=>e.name)),Mo=e=>{let t=e.location_country,[n,r,i]=["","",""];if(t){const e=(e=>{const t=[];let n;for(;null!==(n=Oo.exec(e));)t.push(n[0]);return t})(t),o=t.match(/[\u4e00-\u9fa5]{2,}(省|自治区)/);e&&([n]=e,n=Po.find((t=>e.includes(t))),n||(n="")),o&&([r]=o);const a=t.split(",");let c=a[a.length-1].match(/[\u4e00-\u9fa5].*[\u4e00-\u9fa5]/);!c&&a.length>=3&&(c=a[2].match(/[\u4e00-\u9fa5].*[\u4e00-\u9fa5]/)),c&&([i]=c)}return vo.includes(n)&&(r=n),{country:i,province:r,city:n}},So=e=>({type:"FeatureCollection",features:e.map((e=>{const t=(e=>{try{const t=u.decode(e.summary_polyline);return t.forEach((e=>{[e[0],e[1]]=[e[1],e[0]]})),t}catch(Ea){return[]}})(e);return t?{type:"Feature",geometry:{type:"LineString",coordinates:t}}:null}))}),xo=e=>{const t=e.distance/1e3,n=+e.start_date_local.slice(11,13);return t>20&&t<40?go.HALF_MARATHON_RUN_TITLE:t>=40?go.FULL_MARATHON_RUN_TITLE:n>=0&&n<=10?go.MORNING_RUN_TITLE:n>10&&n<=14?go.MIDDAY_RUN_TITLE:n>14&&n<=18?go.AFTERNOON_RUN_TITLE:n>18&&n<=21?go.EVENING_RUN_TITLE:go.NIGHT_RUN_TITLE},jo=(e,t)=>e.apply(Math,t),ko=(e,t)=>!(!e||!e.start_date_local)&&e.start_date_local.slice(0,4)===t,To=(e,t)=>!(!e||!e.location_country)&&e.location_country.includes(t),Co=(e,t)=>xo(e)===t,Do=(e,t,n,r)=>{let i=e;return"Total"!==t&&(i=e.filter((e=>n(e,t)))),i.sort(r)},No=(e,t)=>new Date(t.start_date_local.replace(" ","T"))-new Date(e.start_date_local.replace(" ","T")),Lo=(e,t)=>No(t,e),zo={fontWeight:"700"};var Io=e=>{let{value:t,description:n,className:i,citySize:o,onClick:a}=e;return r.createElement("div",{className:`${i} pb2 w-100`,onClick:a},r.createElement("span",{className:`f${o||1} fw9 i`,style:zo},(void 0===(c=t)&&(c=""),c.toString().length<=5?c:c.toString().replace(/\B(?=(\d{3})+(?!\d))/g,","))),r.createElement("span",{className:"f3 fw6 i"},n));var c},Ro=n(1082);var Ao=()=>{const{allActivitiesJson:e}=(0,Ro.useStaticQuery)("3278082143"),t=e.nodes,n={},r={},i=new Set,o=new Set;let a=new Set,c="";return t.forEach((e=>{const t=Mo(e),c=xo(e);c&&(r[c]=r[c]?r[c]+1:1);const{city:s,province:u,country:l}=t;s.length>1&&(n[s]=n[s]?n[s]+e.distance:e.distance),u&&i.add(u),l&&o.add(l);const p=e.start_date_local.slice(0,4);a.add(p)})),a=(0,ne.Z)(a).sort().reverse(),a&&([c]=a),{activities:t,years:a,countries:(0,ne.Z)(o),provinces:(0,ne.Z)(i),cities:n,runPeriod:r,thisYear:c}};var Fo=()=>{const{0:e,1:t}=(0,r.useState)(),{0:n,1:i}=(0,r.useState)();return[e,{onMouseOver(){i(setTimeout((()=>t(!0)),700))},onMouseOut(){clearTimeout(n),t(!1)}}]},Bo="style-module--yearSVG--347ec";var Vo=e=>{let{year:t,onClick:i}=e,{activities:o,years:a}=Ao();const[c,s]=Fo(),u=r.lazy((()=>n(4147)(`./year_${t}.svg`).catch((()=>({default:()=>r.createElement("div",null)})))));a.includes(t)&&(o=o.filter((e=>e.start_date_local.slice(0,4)===t)));let l=0,p=0,h=0,d=0,f=0,m=0,v=0;o.forEach((e=>{l+=e.distance||0,e.average_speed?(h+=e.average_speed,m+=e.distance||0,v+=(e.distance||0)/e.average_speed):0,e.average_heartrate?d+=e.average_heartrate:f++,e.streak&&(p=Math.max(p,e.streak))})),l=parseFloat((l/1e3).toFixed(1));const y=wo(m/v),g=!(0===d),b=(d/(o.length-f)).toFixed(0);return r.createElement("div",Object.assign({style:{cursor:"pointer"},onClick:()=>i(t)},s),r.createElement("section",null,r.createElement(Io,{value:t,description:" Journey"}),r.createElement(Io,{value:o.length,description:" Runs"}),r.createElement(Io,{value:l,description:" KM"}),r.createElement(Io,{value:y,description:" Avg Pace"}),r.createElement(Io,{value:`${p} day`,description:" Streak",className:"mb0 pb0"}),g&&r.createElement(Io,{value:b,description:" Avg Heart Rate"})),"Total"!==t&&c&&r.createElement(r.Suspense,{fallback:"loading..."},r.createElement(u,{className:Bo})),r.createElement("hr",{color:"red"}))};var Zo=e=>{let{onClick:t}=e;const{cities:n}=Ao(),i=Object.entries(n);return i.sort(((e,t)=>t[1]-e[1])),r.createElement("div",{style:{cursor:"pointer"}},r.createElement("section",null,i.map((e=>{let[n,i]=e;return r.createElement(Io,{key:n,value:n,description:` ${(i/1e3).toFixed(0)} KM`,citySize:3,onClick:()=>t(n)})}))),r.createElement("hr",{color:"red"}))};var Uo=()=>{const{years:e,countries:t,provinces:n,cities:i}=Ao();return r.createElement("div",{style:{cursor:"pointer"}},r.createElement("section",null,e&&r.createElement(Io,{value:`${e.length}`,description:" 年里我跑过"}),t&&r.createElement(Io,{value:t.length,description:" 个国家"}),n&&r.createElement(Io,{value:n.length,description:" 个省份"}),i&&r.createElement(Io,{value:Object.keys(i).length,description:" 个城市"})),r.createElement("hr",{color:"red"}))};var Ho=e=>{let{onClick:t}=e;const{runPeriod:n}=Ao(),i=Object.entries(n);return i.sort(((e,t)=>t[1]-e[1])),r.createElement("div",{style:{cursor:"pointer"}},r.createElement("section",null,i.map((e=>{let[n,i]=e;return r.createElement(Io,{key:n,value:n,description:` ${i} Runs`,citySize:3,onClick:()=>t(n)})}))),r.createElement("hr",{color:"red"}))};var Yo=e=>{let{changeYear:t,changeCity:n,changeTitle:i}=e;return r.createElement("div",{className:"fl w-100 w-100-l pb5 pr5-l"},r.createElement("section",{className:"pb4",style:{paddingBottom:"0rem"}},r.createElement("p",{style:{lineHeight:1.8}},"我跑过了一些地方,希望随着时间推移,地图点亮的地方越来越多",".",r.createElement("br",null),"不要停下来,不要停下奔跑的脚步",".",r.createElement("br",null),r.createElement("br",null),"Yesterday you said tomorrow.")),r.createElement("hr",{color:"red"}),r.createElement(Uo,null),r.createElement(Zo,{onClick:n}),r.createElement(Ho,{onClick:i}),r.createElement(Vo,{year:"Total",onClick:t}))},Go=n(5487),Wo=n.n(Go),qo=n(3791),Xo=n.n(qo),$o=n(7127),Ko=n.n($o),Jo="style-module--locationSVG--2adbd",Qo="style-module--buttons--4da44",ea="style-module--button--1573e",ta="style-module--fullscreenButton--4aa1d",na="style-module--runTitle--09504";var ra=e=>{let{startLon:t,startLat:n,endLon:i,endLat:o}=e;return r.createElement("div",null,r.createElement(Ni,{key:"maker_start",longitude:t,latitude:n},r.createElement("div",{style:{transform:"translate(-10px,-20px)",maxWidth:"25px"}},r.createElement(Ko(),{className:Jo}))),r.createElement(Ni,{key:"maker_end",longitude:i,latitude:o},r.createElement("div",{style:{transform:"translate(-10px,-20px)",maxWidth:"25px"}},r.createElement(Xo(),{className:Jo}))))};var ia=e=>{let{changeYear:t,thisYear:n,mapButtonYear:i}=e;const o=document.getElementsByClassName(ea),{years:a}=Ao(),c=a.slice();c.push("Total");const{0:s,1:u}=(0,r.useState)(0);return r.createElement("div",null,r.createElement("ul",{className:Qo},c.map((e=>r.createElement("li",{key:`${e}button`,style:{color:e===n?bo:"white"},year:e,onClick:n=>{t(e),((e,t)=>{const n=c.indexOf(t);e.target.style.color=bo,s!==n&&(o[s].style.color="white"),u(n)})(n,e)},className:ea},e)))))};var oa=e=>{let{title:t,viewport:n,setViewport:i,changeYear:o,geoData:a,thisYear:c,mapButtonYear:s}=e;const{provinces:u}=Ao(),l=(0,r.useRef)(),p=(0,r.useCallback)((e=>{if(null!==e){l.current=e;const t=e.getMap();t&&t.addControl(new(Wo())({defaultLanguage:"zh-Hans"}))}}),[l]),h=u.slice();h.unshift("in","name");const d=n.zoom<=3;d&&(a=mo);const f=1===a.features.length&&a.features[0].geometry.coordinates.length;let m,v,y,g;if(f){const e=a.features[0].geometry.coordinates;[m,v]=e[0],[y,g]=e[e.length-1]}let b=f?[2,0]:[2,2];return r.createElement(Qr,Object.assign({},n,{width:"100%",height:600,mapStyle:"mapbox://styles/mapbox/dark-v10",onViewportChange:i,ref:p,mapboxApiAccessToken:"pk.eyJ1IjoieWlob25nMDYxOCIsImEiOiJja2J3M28xbG4wYzl0MzJxZm0ya2Fua2p2In0.PNKfkeQwYuyGOTT_x9BJ4Q"}),r.createElement(ia,{changeYear:o,thisYear:c,mapButtonYear:s}),r.createElement(Gi,{className:ta}),r.createElement(ii,{id:"data",type:"geojson",data:a},r.createElement(hi,{id:"province",type:"fill",paint:{"fill-color":"#47b8e0"},filter:h}),r.createElement(hi,{id:"runs2",type:"line",paint:{"line-color":bo,"line-width":d?1:2,"line-dasharray":b,"line-opacity":f?1:.4},layout:{"line-join":"round","line-cap":"round"}})),f&&r.createElement(ra,{startLat:v,startLon:m,endLat:g,endLon:y}),r.createElement("span",{className:na},t))},aa="style-module--runTable--84570",ca="style-module--runRow--42c85",sa="style-module--tableContainer--b302a",ua="style-module--runDate--b8f52";var la=e=>{let{runs:t,run:n,locateActivity:i,runIndex:o,setRunIndex:a}=e;const c=(n.distance/1e3).toFixed(2),s=n.average_speed,u=s?wo(s):null,l=n.average_heartrate,p=(e=>{const t=Eo(e),n=t%60,r=(t-n)/60;return 0===r?n+"s":r+"min"})(n.moving_time);return r.createElement("tr",{className:ca,key:n.start_date_local,onClick:e=>{((e,t,n)=>{const r=t.indexOf(n);e.target.parentElement.style.color="red";const i=document.getElementsByClassName(ca);-1!==o&&r!==o&&(i[o].style.color=bo),a(r)})(e,t,n),i(n)}},r.createElement("td",null,xo(n)),r.createElement("td",null,c),s&&r.createElement("td",null,u),r.createElement("td",null,l&&l.toFixed(0)),r.createElement("td",null,p),r.createElement("td",{className:ua},n.start_date_local))};var pa=e=>{let{runs:t,locateActivity:n,setActivity:i,runIndex:o,setRunIndex:a}=e;const{0:c,1:s}=(0,r.useState)(""),u=new Map([["KM",(e,t)=>"KM"===c?e.distance-t.distance:t.distance-e.distance],["Pace",(e,t)=>"Pace"===c?e.average_speed-t.average_speed:t.average_speed-e.average_speed],["BPM",(e,t)=>"BPM"===c?e.average_heartrate-t.average_heartrate:t.average_heartrate-e.average_heartrate],["Time",(e,t)=>{const n=Eo(e.moving_time),r=Eo(t.moving_time);return"Time"===c?n-r:r-n}],["Date","Date"===c?No:Lo]]);return r.createElement("div",{className:sa},r.createElement("table",{className:aa,cellSpacing:"0",cellPadding:"0"},r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",null),Array.from(u.keys()).map((e=>r.createElement("th",{key:e,onClick:e=>(e=>{const n=e.target.innerHTML;s(c===n?"":n);const r=u.get(e.target.innerHTML);-1!==o&&(document.getElementsByClassName(ca)[o].style.color=bo);i(t.sort(r))})(e)},e))))),r.createElement("tbody",null,t.map((e=>r.createElement(la,{runs:t,run:e,key:e.run_id,locateActivity:n,runIndex:o,setRunIndex:a}))))))},ha=n(5051),da=n.n(ha),fa=n(7218),ma=n.n(fa),va="style-module--runSVG--e35c5";var ya=()=>r.createElement("div",null,r.createElement(da(),{className:va}),r.createElement(ma(),{className:va}));var ga=e=>{let{year:t,onClick:n}=e;const{years:i}=Ao();let o=i.slice();return o.push("Total"),o=o.filter((e=>e!==t)),o.unshift(t),r.createElement("div",{className:"fl w-100-l pb5 pr5-l"},r.createElement("section",{className:"pb4",style:{paddingBottom:"0rem"}},r.createElement("p",{style:{lineHeight:1.8}},yo(i.length,t),r.createElement("br",null))),r.createElement("hr",{color:"red"}),o.map((e=>r.createElement(Vo,{key:e,year:e,onClick:n}))),o.hasOwnProperty("Total")?r.createElement(Vo,{key:"Total",year:"Total",onClick:n}):r.createElement("div",null))},ba=n(2712);var wa=()=>{const{siteTitle:e}=(0,ba.Z)(),{activities:t,thisYear:n}=Ao(),{0:i,1:o}=(0,r.useState)(n),{0:a,1:u}=(0,r.useState)(-1),{0:l,1:p}=(0,r.useState)(Do(t,i,ko,No)),{0:h,1:d}=(0,r.useState)(""),{0:f,1:m}=(0,r.useState)(So(l)),v=(e=>{const{features:t}=e;let n;for(const l of t)if(l.geometry.coordinates.length){n=l.geometry.coordinates;break}if(!n)return{};const r=n.map((e=>e[0])),i=n.map((e=>e[1])),o=[[jo(Math.min,r),jo(Math.min,i)],[jo(Math.max,r),jo(Math.max,i)]],a=new qe({width:800,height:600}).fitBounds(o,{padding:200});let{longitude:c,latitude:s,zoom:u}=a;return t.length>1&&(u=11.5),{longitude:c,latitude:s,zoom:u}})(f),{0:y,1:g}=(0,r.useState)(),{0:b,1:w}=(0,r.useState)({...v}),E=(e,n,r,i)=>{_o(),p(Do(t,e,r,No)),i||(u(-1),d(`${e} ${n} Running Heatmap`))},_=e=>{const t=e===i;o(e),b.zoom>3&&w({...v}),E(e,"Year",ko,t),clearInterval(y)},O=e=>{m(So([e])),d((e=>{const t=e.start_date_local.slice(0,11),n=(e.distance/1e3).toFixed(2);let r="Run";return"Running"===e.name.slice(0,7)&&(r="run"),e.name&&(r=e.name),`${r} ${t} ${n} KM ${e.summary_polyline?"":"(No map data for this run)"}`})(e)),clearInterval(y),_o()};return(0,r.useEffect)((()=>{w({...v})}),[f]),(0,r.useEffect)((()=>{const e=l.length,t=e>=20?e/20:1;let n=t;const r=setInterval((()=>{n>=e&&clearInterval(r);const i=l.slice(0,n);m(So(i)),n+=t}),100);g(r)}),[l]),(0,r.useEffect)((()=>{if("Total"!==i)return;let e=document.querySelectorAll("rect");0!==e.length&&(e=Array.from(e).slice(1)),e.forEach((e=>{if("#444444"!==e.getAttribute("fill")){const t=e.innerHTML,[n]=t.match(/\d{4}-\d{1,2}-\d{1,2}/)||[],r=l.filter((e=>e.start_date_local.slice(0,10)===n)).sort(((e,t)=>t.distance-e.distance))[0];r&&e.addEventListener("click",(()=>O(r)),!1)}}));let t=document.querySelectorAll("polyline");0!==t.length&&(t=Array.from(t).slice(1)),t.forEach((e=>{const t=e.innerHTML,[r]=t.match(/\d{4}-\d{1,2}-\d{1,2}/)||[""+(+n+1)],i=l.filter((e=>e.start_date_local.slice(0,10)===r)).sort(((e,t)=>t.distance-e.distance))[0];i&&e.addEventListener("click",(()=>O(i)),!1)}))}),[i]),r.createElement(s.Z,null,r.createElement("div",{className:"mb5"},r.createElement("div",{className:"fl w-30-l"},r.createElement("h1",{className:"f1 fw9 i"},r.createElement("a",{href:"/"},e)),b.zoom<=3?r.createElement(Yo,{changeYear:_,changeCity:e=>{E(e,"City",To,!1)},changeTitle:e=>{E(e,"Title",Co,!1)}}):r.createElement(ga,{year:i,onClick:_})),r.createElement("div",{className:"fl w-100 w-70-l"},r.createElement(oa,{runs:l,year:i,title:h,viewport:b,geoData:f,setViewport:w,changeYear:_,thisYear:i}),"Total"===i?r.createElement(ya,null):r.createElement(pa,{runs:l,year:i,locateActivity:O,setActivity:p,runIndex:a,setRunIndex:u}))),r.createElement(c,null))}},3791:function(e,t,n){var r=n(7294);function i(e){return r.createElement("svg",e,r.createElement("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},r.createElement("g",{id:"037---Waypoint-Flag",fillRule:"nonzero",transform:"translate(-1 -1)"},[r.createElement("path",{id:"Shape",d:"m58.44 30.6c-11.88 14.2-32.78-3.93-44.27 11.64l-.66-2.34v-.01c-2.29-8.19-4.58-16.3833333-6.87-24.58-.22-.78-.43-1.56-.65-2.34 11.49-15.57 32.4 2.56 44.27-11.64.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z",fill:"#e64c3c",key:0}),r.createElement("path",{id:"Shape",d:"m58.44 30.6c-11.88 14.2-32.78-3.93-44.27 11.64-.22-.78-1.95-.87-2.17-1.65v-.01c-2.29-8.19-4.58-16.3833333-6.87-24.58-.22-.78 1.08-2.25.86-3.03 11.49-15.57 32.4 2.56 44.27-11.64.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z",fill:"#e64c3c",key:1}),r.createElement("path",{id:"Shape",d:"m9.45150963 10.0111708h.1433c.64015307 0 1.25408707.2542998 1.70674367.7069563.4526565.4526566.7069563 1.0665906.7069563 1.7067437v45.3626c0 1.0664618-.8645381 1.931-1.931 1.931h-1.10879997c-1.06646186 0-1.931-.8645382-1.931-1.931v-45.3626c0-1.3330497 1.0806503-2.4137 2.4137-2.4137z",fill:"#cf976a",transform:"matrix(.963 -.269 .269 .963 -9.032 3.849)",key:2})])))}i.defaultProps={height:"16",viewBox:"0 0 58 58",width:"16"},e.exports=i,i.default=i},7127:function(e,t,n){var r=n(7294);function i(e){return r.createElement("svg",e,r.createElement("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},r.createElement("g",{id:"037---Waypoint-Flag",fillRule:"nonzero",transform:"translate(0 -1)"},[r.createElement("g",{id:"Icons_copy",transform:"translate(0 1)",key:0},[r.createElement("path",{id:"Shape",d:"m58.44 30.6c-11.88 14.2-32.78-3.93-44.27 11.64l-.66-2.34v-.01c-2.29-8.19-4.58-16.3833333-6.87-24.58-.22-.78-.43-1.56-.65-2.34 11.49-15.57 32.4 2.56 44.27-11.64.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z",fill:"#e64c3c",key:0}),r.createElement("path",{id:"Shape",d:"m58.44 30.6c-.6501399.7802412-1.3697588 1.4998601-2.15 2.15-10.83 8.99-27.3-2.22-38.4 5.76h-.01c-1.4199733 1.046483-2.6711663 2.304421-3.71 3.73-.22-.78-1.95-.87-2.17-1.65v-.01c-.02-.07-.04-.13-.06-.2-2.27-8.12-4.54-16.2466667-6.81-24.38-.22-.78 1.08-2.25.86-3.03 5.09-6.89 12.02-7.18 19.19-6.6 7.87.65 16.04 2.35 22.38-2.46.9983609-.75079008 1.9046285-1.61677914 2.7-2.58.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z",fill:"#cad9fc",key:1}),r.createElement("g",{fill:"#e8edfc",key:2},[r.createElement("path",{id:"Shape",d:"m56.41 32.61c-.04.05-.08.09-.12.14-10.83 8.99-27.3-2.22-38.4 5.76h-.01c-2.07.32-2 3.52-3.88 4.49-2.27-8.12-6.6-18.87-8.87-27-.22-.78 1.08-2.25.86-3.03 5.09-6.89 12.02-7.18 19.19-6.6 7.87.65 17.48 1.44 23.82-3.37-.71 4.7-2.07 9.87-3 13.78-.31 1.3-.62 2.56-.96 3.79-.0182073.0858464-.0315618.1726507-.04.26-.0165937.3214646.1118607.6334254.35.85 3.99 3.47 6.87 6.23 10.38 7.98.32.16.63.31.94.44.53.23.4 1.71-.26 2.51z",key:0}),r.createElement("path",{id:"Shape",d:"m9.45150963 10.0111708h.1433c.64015307 0 1.25408707.2542998 1.70674367.7069563.4526565.4526566.7069563 1.0665906.7069563 1.7067437v45.3626c0 1.0664618-.8645381 1.931-1.931 1.931h-1.10879997c-1.06646186 0-1.931-.8645382-1.931-1.931v-45.3626c0-1.3330497 1.0806503-2.4137 2.4137-2.4137z",transform:"matrix(.963 -.269 .269 .963 -9.032 3.849)",key:1})])]),r.createElement("g",{id:"Icons",fill:"#fff",transform:"translate(1 11)",key:1},r.createElement("path",{id:"Shape",d:"m14.678 48.9507 1.0678-.2984c.0634142-.0210171.1256684-.0453847.1865-.073-.3059718-.2499171-.5272905-.5882341-.6337-.9687l-12.2086-43.6888c-.27028924-.97424098.09689756-2.01356496.9192-2.6018-.59836922-.46042192-1.37842214-.61265447-2.106-.411l-.1379.0385c-1.28392347.35874479-2.03396372 1.69035388-1.6753 2.9743l12.2086 43.6888c.2870014 1.0271063 1.3522895 1.6270863 2.3794 1.3401z"})),r.createElement("g",{id:"Layer_2",key:2},[r.createElement("path",{id:"Shape",d:"m2.053 14.653 3.499 12.52 8.71 31.168-1.926.539-8.71-31.169-3.499-12.52z",fill:"#fff",key:0}),r.createElement("g",{fill:"#428dff",key:1},[r.createElement("path",{id:"Shape",d:"m2.4358 19.7373c.53079922-.1500279.84084226-.7005107.694-1.2322l-1.0765-3.8525-1.9262.5383 1.0765 3.8524c.14998144.5308358.70050349.840901 1.2322.694z",key:0}),r.createElement("path",{id:"Shape",d:"m12.3355 58.88 1.9262-.5383-8.9789-32.1317c-.09615803-.3440825-.36857754-.6107281-.71464074-.6994941-.34606319-.0887659-.71319484.0138335-.9631.26915-.24990517.2553166-.3446173.6245616-.24845926.9686441z",key:1}),r.createElement("path",{id:"Shape",d:"m4.2063 22.3575c-.07490138-.2538315-.24272249-.4701065-.47-.6057l-.1767-.0754c-.06393913-.0215298-.13045347-.0344763-.1978-.0385-.06253228-.0124484-.12657787-.0154484-.19-.0089-.06662004.0069034-.13267939.0184312-.1977.0345-.25396014.0747004-.47033292.2425696-.6058.47-.25632418.4849939-.08842788 1.0857657.3822 1.3676.11633877.0611962.24326559.0996815.374.1134.12966928.0170871.26143258.0085248.3878-.0252.25694371-.0689915.47530619-.2384954.60586452-.4703023.13055832-.2318068.16232364-.506406.08813548-.7618977z",key:2}),r.createElement("path",{id:"Shape",d:"m15.1543 61.0234c-1.3131578-.0035737-2.4641659-.8789182-2.8184-2.1434-.1047434-.3467682-.0137665-.7230684.2378229-.9836871.2515895-.2606187.6244494-.3648018.9746938-.2723454.3502445.0924565.6231043.3670948.7132833.7179325.1386638.4946286.6515843.7836357 1.1465.646l1.0693-.2988c.4945675-.1390172.783314-.6520959.6455-1.147l-12.208-43.6891c-.21192095-.751076-.99110897-1.1895509-1.7431-.9809l-.1367.0381c-.75150823.21118-1.19077567.9902817-.9825 1.7426.10566032.3470367.0150922.7240796-.23666629.985262-.25175848.2611825-.62522009.3655392-.9759038.2726977-.3506837-.0928415-.62358626-.3683195-.71312991-.7198597-.50468593-1.815475.55497633-3.6969782 2.3691-4.2065l.1377-.0386c1.81535016-.5036775 3.69623437.5553314 4.207 2.3687l12.208 43.6894c.2094014.7485105.1128149 1.5495525-.2685031 2.2268365-.381318.6772839-1.0161182 1.1753058-1.7646969 1.3844635l-1.0693.2989c-.2578315.0721343-.5242682.1089039-.792.1093z",key:3}),r.createElement("path",{id:"Shape",d:"m14.166 44.2441c-.0605828.0000403-.1210397-.0055166-.1806-.0166-.3759553-.0688112-.6796786-.3461339-.7823-.7143l-8.18-29.27c-.08284248-.2966212-.02449022-.614866.1582-.8628 6.2012-8.4072 14.9463-7.5347 23.4043-6.689 7.9366.7954 15.4327 1.5425 20.9053-5.0054.4028894-.63382158 1.1959029-.89698941 1.8978-.6298.249.1079 1.0508.5722.872 2.0126-.7623159 6.18130331-1.9437366 12.3036693-3.5361 18.3248 3.0998951 2.8439162 6.5841877 5.237941 10.3506 7.1118.4232899.1992905.726435.5881733.8164 1.0473.1707533.9506993-.0781613 1.9287813-.6826 2.6822l-.0029.0039c-6.1534 7.3589-14.53 6.5234-22.64 5.7129-8.2637-.8252-16.07-1.607-21.5957 5.8862-.1883675.2555125-.4869587.4062929-.8044.4062zm-7.083-30.062 7.527 26.9351c6.0947-6.7608 14.2519-5.9463 22.1552-5.1558 7.9336.7935 15.4307 1.542 20.9043-5.0039.1637292-.2242914.2617894-.4897328.2832-.7666-3.8403085-1.9552616-7.3981938-4.4214973-10.5767-7.3315-.5562771-.4965314-.7823066-1.2658845-.583-1.9844 1.472317-5.5570772 2.5852862-11.20319096 3.332-16.9033-6.0586 6.2759-14.0225 5.479-21.7373 4.71-8.125-.8117-15.7977-1.5792-21.3047 5.5004zm51.166 16.1446.02.0092z",key:4})])])])))}i.defaultProps={height:"16",viewBox:"0 0 60 60",width:"16"},e.exports=i,i.default=i}}]); +//# sourceMappingURL=component---src-pages-index-jsx-1e690ff2353b33d0340b.js.map \ No newline at end of file diff --git a/component---src-pages-index-jsx-1e690ff2353b33d0340b.js.LICENSE.txt b/component---src-pages-index-jsx-1e690ff2353b33d0340b.js.LICENSE.txt new file mode 100644 index 00000000000..0d8965c088c --- /dev/null +++ b/component---src-pages-index-jsx-1e690ff2353b33d0340b.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! Hammer.JS - v2.0.7 - 2016-04-22 + * http://hammerjs.github.io/ + * + * Copyright (c) 2016 Jorik Tangelder; + * Licensed under the MIT license */ diff --git a/component---src-pages-index-jsx-1e690ff2353b33d0340b.js.map b/component---src-pages-index-jsx-1e690ff2353b33d0340b.js.map new file mode 100644 index 00000000000..7d1612d350e --- /dev/null +++ b/component---src-pages-index-jsx-1e690ff2353b33d0340b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-index-jsx-1e690ff2353b33d0340b.js","mappings":"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,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,QACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,OACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,OAAQ,SACT,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,QACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,aAKjB,CACEY,KAAM,UACN2C,WAAY,CACVhK,GAAI,KACJkzB,KAAM,MACNpqB,KAAM,QACN4vD,GAAI,CAAC,QAAS,SACdC,SAAU,GAEZrxD,SAAU,CACRD,KAAM,UACNZ,YAAa,CACX,CACE,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,QACT,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,MAAO,QACR,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,MAAO,SACR,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,MAAO,SACR,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,aAKlB,CACEY,KAAM,UACN2C,WAAY,CACVhK,GAAI,KACJkzB,KAAM,MACNpqB,KAAM,SACN4vD,GAAI,CAAC,SAAU,SACfC,SAAU,IAEZrxD,SAAU,CACRD,KAAM,UACNZ,YAAa,CACX,CACE,CAAC,OAAQ,SACT,CAAC,QAAS,QACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,IACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,QAAS,QACV,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,QACV,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,QACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,OAAQ,SACT,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,OAAQ,aAKjB,CACEY,KAAM,UACN2C,WAAY,CACVhK,GAAI,KACJkzB,KAAM,MACNpqB,KAAM,MACN4vD,GAAI,CAAC,QAAS,SACdC,SAAU,GAEZrxD,SAAU,CACRD,KAAM,UACNZ,YAAa,CACX,CACE,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,GAAI,SACL,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,OAAQ,SACT,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,OAAQ,SACT,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,OAAQ,SACT,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,S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,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,IACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,aAKnB,CACEY,KAAM,UACN2C,WAAY,CACVhK,GAAI,KACJkzB,KAAM,MACNpqB,KAAM,MACN4vD,GAAI,CAAC,QAAS,QACdC,SAAU,IAEZrxD,SAAU,CACRD,KAAM,UACNZ,YAAa,CACX,CACE,CAAC,OAAQ,SACT,CAAC,OAAQ,SACT,CAAC,QAAS,QACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,SACV,CAAC,QAAS,QACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,OAAQ,SACT,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,QACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,QACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,OAAQ,SACT,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAA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U,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,MACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,QAAS,SACV,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAAU,QACX,CAAC,SAAU,QACX,CAAC,SAAU,SACX,CAAC,SAAU,QACX,CAAC,SAA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MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,WACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,SACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,aACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,aACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,YACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,cACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,aACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,aACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,aACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,YACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,YACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,aACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,WACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,aACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,MACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,UACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,YACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,YACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,cACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,WACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,OACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,QACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,oBACN6xD,SAAU,KACVC,KAAM,MAER,CACE96D,KAAM,SACNgJ,KAAM,oBACN6xD,SAAU,KAC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","sources":["webpack://yihong.run/./assets/ lazy ^\\.\\/year_.*\\.svg$ namespace object","webpack://yihong.run/./node_modules/@mapbox/mapbox-gl-language/index.js","webpack://yihong.run/./node_modules/@mapbox/polyline/src/polyline.js","webpack://yihong.run/./node_modules/hammerjs/hammer.js","webpack://yihong.run/./node_modules/@vercel/analytics/dist/react/index.js","webpack://yihong.run/./node_modules/gcoord/dist/gcoord.esm.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://yihong.run/./node_modules/gl-matrix/esm/common.js","webpack://yihong.run/./node_modules/gl-matrix/esm/vec4.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/math-utils.js","webpack://yihong.run/./node_modules/gl-matrix/esm/mat4.js","webpack://yihong.run/./node_modules/gl-matrix/esm/vec2.js","webpack://yihong.run/./node_modules/gl-matrix/esm/vec3.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/assert.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/web-mercator-utils.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/fit-bounds.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/get-bounds.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/web-mercator-viewport.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/fly-to-viewport.js","webpack://yihong.run/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/globals.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/style-utils.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/mapbox/mapbox.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/math-utils.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/assert.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/map-state.js","webpack://yihong.run/./node_modules/@math.gl/web-mercator/dist/esm/normalize-viewport-props.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/map-constraints.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/map-context.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/use-isomorphic-layout-effect.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/static-map.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/transition/transition-interpolator.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/transition/transition-utils.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/transition/viewport-fly-to-interpolator.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/transition/linear-interpolator.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/transition-manager.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/utils/hammer-overrides.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/utils/hammer.browser.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/inputs/input.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/constants.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/utils/globals.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/inputs/wheel-input.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/inputs/move-input.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/inputs/key-input.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/inputs/contextmenu-input.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/utils/event-utils.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/utils/event-registrar.js","webpack://yihong.run/./node_modules/mjolnir.js/dist/esm/event-manager.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/map-controller.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/interactive-map.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/deep-equal.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/source.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://yihong.run/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/layer.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/use-map-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/base-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/draggable-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/crisp-pixel.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/marker.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/dynamic-position.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/popup.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/attribution-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/fullscreen-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/geolocate-utils.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/geolocate-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/navigation-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/version.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/components/scale-control.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/overlays/canvas-overlay.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/overlays/html-overlay.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/overlays/svg-overlay.js","webpack://yihong.run/./node_modules/react-map-gl/dist/esm/utils/set-rtl-text-plugin.js","webpack://yihong.run/./src/static/run_countries.js","webpack://yihong.run/./src/utils/const.js","webpack://yihong.run/./src/utils/utils.js","webpack://yihong.run/./src/static/city.js","webpack://yihong.run/./src/components/Stat/index.jsx","webpack://yihong.run/./src/hooks/useActivities.js","webpack://yihong.run/./src/hooks/useHover.js","webpack://yihong.run/./src/components/YearStat/style.module.scss","webpack://yihong.run/./src/components/YearStat/index.jsx","webpack://yihong.run/./src/components/LocationStat/CitiesStat.jsx","webpack://yihong.run/./src/components/LocationStat/LocationSummary.jsx","webpack://yihong.run/./src/components/LocationStat/PeriodStat.jsx","webpack://yihong.run/./src/components/LocationStat/index.jsx","webpack://yihong.run/./src/components/RunMap/style.module.scss","webpack://yihong.run/./src/components/RunMap/RunMaker.jsx","webpack://yihong.run/./src/components/RunMap/RunMapButtons.jsx","webpack://yihong.run/./src/components/RunMap/index.jsx","webpack://yihong.run/./src/components/RunTable/style.module.scss","webpack://yihong.run/./src/components/RunTable/RunRow.jsx","webpack://yihong.run/./src/components/RunTable/index.jsx","webpack://yihong.run/./src/components/SVGStat/style.module.scss","webpack://yihong.run/./src/components/SVGStat/index.jsx","webpack://yihong.run/./src/components/YearsStat/index.jsx","webpack://yihong.run/./src/pages/index.jsx","webpack://yihong.run/./assets/end.svg","webpack://yihong.run/./assets/start.svg"],"sourcesContent":["var map = {\n\t\"./year_2012.svg\": [\n\t\t1494,\n\t\t494\n\t],\n\t\"./year_2013.svg\": [\n\t\t8484,\n\t\t484\n\t],\n\t\"./year_2014.svg\": [\n\t\t6746,\n\t\t746\n\t],\n\t\"./year_2015.svg\": [\n\t\t7252,\n\t\t252\n\t],\n\t\"./year_2016.svg\": [\n\t\t9895,\n\t\t895\n\t],\n\t\"./year_2017.svg\": [\n\t\t2164,\n\t\t164\n\t],\n\t\"./year_2018.svg\": [\n\t\t60,\n\t\t60\n\t],\n\t\"./year_2019.svg\": [\n\t\t7881,\n\t\t881\n\t],\n\t\"./year_2020.svg\": [\n\t\t4196,\n\t\t196\n\t],\n\t\"./year_2021.svg\": [\n\t\t9312,\n\t\t312\n\t],\n\t\"./year_2022.svg\": [\n\t\t9539,\n\t\t539\n\t],\n\t\"./year_2023.svg\": [\n\t\t3425,\n\t\t425\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 4147;\nmodule.exports = webpackAsyncContext;","/**\n * Create a new [Mapbox GL JS plugin](https://www.mapbox.com/blog/build-mapbox-gl-js-plugins/) that\n * modifies the layers of the map style to use the `text-field` that matches the browser language.\n * As of Mapbox GL Language v1.0.0, this plugin no longer supports token values (e.g. `{name}`). v1.0+ expects the `text-field`\n * property of a style to use an [expression](https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/) of the form `['get', 'name_en']` or `['get', 'name']`; these expressions can be nested. Note that `get` expressions used as inputs to other expressions may not be handled by this plugin. For example:\n * ```\n * [\"match\",\n * [\"get\", \"name\"],\n * \"California\",\n * \"Golden State\",\n * [\"coalesce\",\n * [\"get\", \"name_en\"],\n * [\"get\", \"name\"]\n * ]\n * ]\n * ```\n * Only styles based on [Mapbox v8 styles](https://docs.mapbox.com/help/troubleshooting/streets-v8-migration-guide/) are supported.\n *\n * @constructor\n * @param {object} options - Options to configure the plugin.\n * @param {string[]} [options.supportedLanguages] - List of supported languages\n * @param {Function} [options.languageTransform] - Custom style transformation to apply\n * @param {RegExp} [options.languageField=/^name_/] - RegExp to match if a text-field is a language field\n * @param {Function} [options.getLanguageField] - Given a language choose the field in the vector tiles\n * @param {string} [options.languageSource] - Name of the source that contains the different languages.\n * @param {string} [options.defaultLanguage] - Name of the default language to initialize style after loading.\n * @param {string[]} [options.excludedLayerIds] - Name of the layers that should be excluded from translation.\n */\nfunction MapboxLanguage(options) {\n options = Object.assign({}, options);\n if (!(this instanceof MapboxLanguage)) {\n throw new Error('MapboxLanguage needs to be called with the new keyword');\n }\n this.setLanguage = this.setLanguage.bind(this);\n this._initialStyleUpdate = this._initialStyleUpdate.bind(this);\n this._defaultLanguage = options.defaultLanguage;\n this._isLanguageField = options.languageField || /^name_/;\n this._getLanguageField = options.getLanguageField || function nameField(language) {\n return language === 'mul' ? 'name' : `name_${language}`;\n };\n this._languageSource = options.languageSource || null;\n this._languageTransform = options.languageTransform;\n this._excludedLayerIds = options.excludedLayerIds || [];\n this.supportedLanguages = options.supportedLanguages || ['ar', 'de', 'en', 'es', 'fr', 'it', 'ja', 'ko', 'mul', 'pt', 'ru', 'vi', 'zh-Hans', 'zh-Hant'];\n}\nconst isTokenField = /^\\{name/;\nfunction isFlatExpressionField(isLangField, property) {\n const isGetExpression = Array.isArray(property) && property[0] === 'get';\n if (isGetExpression && isTokenField.test(property[1])) {\n console.warn('This plugin no longer supports the use of token syntax (e.g. {name}). Please use a get expression. See https://docs.mapbox.com/mapbox-gl-js/style-spec/expressions/ for more details.');\n }\n return isGetExpression && isLangField.test(property[1]);\n}\nfunction adaptNestedExpressionField(isLangField, property, languageFieldName) {\n if (Array.isArray(property)) {\n for (let i = 1; i < property.length; i++) {\n if (Array.isArray(property[i])) {\n if (isFlatExpressionField(isLangField, property[i])) {\n property[i][1] = languageFieldName;\n }\n adaptNestedExpressionField(isLangField, property[i], languageFieldName);\n }\n }\n }\n}\nfunction adaptPropertyLanguage(isLangField, property, languageFieldName) {\n if (isFlatExpressionField(isLangField, property)) {\n property[1] = languageFieldName;\n }\n adaptNestedExpressionField(isLangField, property, languageFieldName);\n\n // handle special case of bare ['get', 'name'] expression by wrapping it in a coalesce statement\n if (property[0] === 'get' && property[1] === 'name') {\n const defaultProp = property.slice();\n const adaptedProp = ['get', languageFieldName];\n property = ['coalesce', adaptedProp, defaultProp];\n }\n return property;\n}\nfunction changeLayerTextProperty(isLangField, layer, languageFieldName, excludedLayerIds) {\n if (layer.layout && layer.layout['text-field'] && excludedLayerIds.indexOf(layer.id) === -1) {\n return Object.assign({}, layer, {\n layout: Object.assign({}, layer.layout, {\n 'text-field': adaptPropertyLanguage(isLangField, layer.layout['text-field'], languageFieldName)\n })\n });\n }\n return layer;\n}\nfunction findStreetsSource(style) {\n const sources = Object.keys(style.sources).filter(sourceName => {\n const url = style.sources[sourceName].url;\n // the source URL can reference the source version or the style version\n // this check and the error forces users to migrate to styles using source version 8\n return url && url.indexOf('mapbox.mapbox-streets-v8') > -1 || /mapbox-streets-v[1-9][1-9]/.test(url);\n });\n if (!sources.length) throw new Error('If using MapboxLanguage with a Mapbox style, the style must be based on vector tile version 8, e.g. \"streets-v11\"');\n return sources[0];\n}\n\n/**\n * Explicitly change the language for a style.\n * @param {object} style - Mapbox GL style to modify\n * @param {string} language - The language iso code\n * @returns {object} the modified style\n */\nMapboxLanguage.prototype.setLanguage = function (style, language) {\n if (this.supportedLanguages.indexOf(language) < 0) throw new Error(`Language ${language} is not supported`);\n const streetsSource = this._languageSource || findStreetsSource(style);\n if (!streetsSource) return style;\n const field = this._getLanguageField(language);\n const isLangField = this._isLanguageField;\n const excludedLayerIds = this._excludedLayerIds;\n const changedLayers = style.layers.map(layer => {\n if (layer.source === streetsSource) return changeLayerTextProperty(isLangField, layer, field, excludedLayerIds);\n return layer;\n });\n const languageStyle = Object.assign({}, style, {\n layers: changedLayers\n });\n return this._languageTransform ? this._languageTransform(languageStyle, language) : languageStyle;\n};\nMapboxLanguage.prototype._initialStyleUpdate = function () {\n const style = this._map.getStyle();\n const language = this._defaultLanguage || browserLanguage(this.supportedLanguages);\n this._map.setStyle(this.setLanguage(style, language));\n};\nfunction browserLanguage(supportedLanguages) {\n const language = navigator.languages ? navigator.languages[0] : navigator.language || navigator.userLanguage;\n const parts = language && language.split('-');\n let languageCode = language;\n if (parts.length > 1) {\n languageCode = parts[0];\n }\n if (supportedLanguages.indexOf(languageCode) > -1) {\n return languageCode;\n }\n return null;\n}\nMapboxLanguage.prototype.onAdd = function (map) {\n this._map = map;\n this._map.on('style.load', this._initialStyleUpdate);\n this._container = document.createElement('div');\n return this._container;\n};\nMapboxLanguage.prototype.onRemove = function () {\n this._map.off('style.load', this._initialStyleUpdate);\n this._map = undefined;\n};\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports = MapboxLanguage;\n} else {\n window.MapboxLanguage = MapboxLanguage;\n}","'use strict';\n\n/**\n * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)\n *\n * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js)\n * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/)\n *\n * @module polyline\n */\nvar polyline = {};\nfunction py2_round(value) {\n // Google's polyline algorithm uses the same rounding strategy as Python 2, which is different from JS for negative values\n return Math.floor(Math.abs(value) + 0.5) * (value >= 0 ? 1 : -1);\n}\nfunction encode(current, previous, factor) {\n current = py2_round(current * factor);\n previous = py2_round(previous * factor);\n var coordinate = current - previous;\n coordinate <<= 1;\n if (current - previous < 0) {\n coordinate = ~coordinate;\n }\n var output = '';\n while (coordinate >= 0x20) {\n output += String.fromCharCode((0x20 | coordinate & 0x1f) + 63);\n coordinate >>= 5;\n }\n output += String.fromCharCode(coordinate + 63);\n return output;\n}\n\n/**\n * Decodes to a [latitude, longitude] coordinates array.\n *\n * This is adapted from the implementation in Project-OSRM.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Array}\n *\n * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js\n */\npolyline.decode = function (str, precision) {\n var index = 0,\n lat = 0,\n lng = 0,\n coordinates = [],\n shift = 0,\n result = 0,\n byte = null,\n latitude_change,\n longitude_change,\n factor = Math.pow(10, Number.isInteger(precision) ? precision : 5);\n\n // Coordinates have variable length when encoded, so just keep\n // track of whether we've hit the end of the string. In each\n // loop iteration, a single coordinate is decoded.\n while (index < str.length) {\n // Reset shift, result, and byte\n byte = null;\n shift = 0;\n result = 0;\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n latitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n shift = result = 0;\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n longitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n lat += latitude_change;\n lng += longitude_change;\n coordinates.push([lat / factor, lng / factor]);\n }\n return coordinates;\n};\n\n/**\n * Encodes the given [latitude, longitude] coordinates array.\n *\n * @param {Array.>} coordinates\n * @param {Number} precision\n * @returns {String}\n */\npolyline.encode = function (coordinates, precision) {\n if (!coordinates.length) {\n return '';\n }\n var factor = Math.pow(10, Number.isInteger(precision) ? precision : 5),\n output = encode(coordinates[0][0], 0, factor) + encode(coordinates[0][1], 0, factor);\n for (var i = 1; i < coordinates.length; i++) {\n var a = coordinates[i],\n b = coordinates[i - 1];\n output += encode(a[0], b[0], factor);\n output += encode(a[1], b[1], factor);\n }\n return output;\n};\nfunction flipped(coords) {\n var flipped = [];\n for (var i = 0; i < coords.length; i++) {\n var coord = coords[i].slice();\n flipped.push([coord[1], coord[0]]);\n }\n return flipped;\n}\n\n/**\n * Encodes a GeoJSON LineString feature/geometry.\n *\n * @param {Object} geojson\n * @param {Number} precision\n * @returns {String}\n */\npolyline.fromGeoJSON = function (geojson, precision) {\n if (geojson && geojson.type === 'Feature') {\n geojson = geojson.geometry;\n }\n if (!geojson || geojson.type !== 'LineString') {\n throw new Error('Input must be a GeoJSON LineString');\n }\n return polyline.encode(flipped(geojson.coordinates), precision);\n};\n\n/**\n * Decodes to a GeoJSON LineString geometry.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Object}\n */\npolyline.toGeoJSON = function (str, precision) {\n var coords = polyline.decode(str, precision);\n return {\n type: 'LineString',\n coordinates: flipped(coords)\n };\n};\nif (typeof module === 'object' && module.exports) {\n module.exports = polyline;\n}","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function (window, document, exportName, undefined) {\n 'use strict';\n\n var VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\n var TEST_ELEMENT = document.createElement('div');\n var TYPE_FUNCTION = 'function';\n var round = Math.round;\n var abs = Math.abs;\n var now = Date.now;\n\n /**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\n function setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n }\n\n /**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\n function invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n }\n\n /**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\n function each(obj, iterator, context) {\n var i;\n if (!obj) {\n return;\n }\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n }\n\n /**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\n function deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function () {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '').replace(/^\\s+at\\s+/gm, '').replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n }\n\n /**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\n var assign;\n if (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n } else {\n assign = Object.assign;\n }\n\n /**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\n var extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || merge && dest[keys[i]] === undefined) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n }, 'extend', 'Use `assign`.');\n\n /**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\n var merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n }, 'merge', 'Use `assign`.');\n\n /**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\n function inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n if (properties) {\n assign(childP, properties);\n }\n }\n\n /**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\n function bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n }\n\n /**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\n function boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n }\n\n /**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\n function ifUndefined(val1, val2) {\n return val1 === undefined ? val2 : val1;\n }\n\n /**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n function addEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.addEventListener(type, handler, false);\n });\n }\n\n /**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\n function removeEventListeners(target, types, handler) {\n each(splitStr(types), function (type) {\n target.removeEventListener(type, handler, false);\n });\n }\n\n /**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\n function hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n }\n\n /**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\n function inStr(str, find) {\n return str.indexOf(find) > -1;\n }\n\n /**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\n function splitStr(str) {\n return str.trim().split(/\\s+/g);\n }\n\n /**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\n function inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if (findByKey && src[i][findByKey] == find || !findByKey && src[i] === find) {\n return i;\n }\n i++;\n }\n return -1;\n }\n }\n\n /**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\n function toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n }\n\n /**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\n function uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n return results;\n }\n\n /**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\n function prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = prefix ? prefix + camelProp : property;\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n }\n\n /**\n * get a unique id\n * @returns {number} uniqueId\n */\n var _uniqueId = 1;\n function uniqueId() {\n return _uniqueId++;\n }\n\n /**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\n function getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return doc.defaultView || doc.parentWindow || window;\n }\n var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n var SUPPORT_TOUCH = ('ontouchstart' in window);\n var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\n var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n var INPUT_TYPE_TOUCH = 'touch';\n var INPUT_TYPE_PEN = 'pen';\n var INPUT_TYPE_MOUSE = 'mouse';\n var INPUT_TYPE_KINECT = 'kinect';\n var COMPUTE_INTERVAL = 25;\n var INPUT_START = 1;\n var INPUT_MOVE = 2;\n var INPUT_END = 4;\n var INPUT_CANCEL = 8;\n var DIRECTION_NONE = 1;\n var DIRECTION_LEFT = 2;\n var DIRECTION_RIGHT = 4;\n var DIRECTION_UP = 8;\n var DIRECTION_DOWN = 16;\n var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\n var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\n var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n var PROPS_XY = ['x', 'y'];\n var PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n /**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\n function Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function (ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n this.init();\n }\n Input.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function () {},\n /**\n * bind the events\n */\n init: function () {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n /**\n * unbind the events\n */\n destroy: function () {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n };\n\n /**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\n function createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new Type(manager, inputHandler);\n }\n\n /**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\n function inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = eventType & INPUT_START && pointersLen - changedPointersLen === 0;\n var isFinal = eventType & (INPUT_END | INPUT_CANCEL) && pointersLen - changedPointersLen === 0;\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n manager.recognize(input);\n manager.session.prevInput = input;\n }\n\n /**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\n function computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = abs(overallVelocity.x) > abs(overallVelocity.y) ? overallVelocity.x : overallVelocity.y;\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n input.maxPointers = !session.prevInput ? input.pointers.length : input.pointers.length > session.prevInput.maxPointers ? input.pointers.length : session.prevInput.maxPointers;\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n }\n function computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n }\n\n /**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\n function computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity,\n velocityX,\n velocityY,\n direction;\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = abs(v.x) > abs(v.y) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n }\n\n /**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\n function simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n }\n\n /**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\n function getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n var x = 0,\n y = 0,\n i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n }\n\n /**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\n function getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n }\n\n /**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\n function getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n }\n\n /**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\n function getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.sqrt(x * x + y * y);\n }\n\n /**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\n function getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n }\n\n /**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\n function getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n }\n\n /**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\n function getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n }\n var MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n };\n var MOUSE_ELEMENT_EVENTS = 'mousedown';\n var MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n /**\n * Mouse events input\n * @constructor\n * @extends Input\n */\n function MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n }\n inherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n });\n var POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n };\n\n // in IE10 the pointer types is defined as an enum\n var IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n };\n\n var POINTER_ELEMENT_EVENTS = 'pointerdown';\n var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n // IE10 has prefixed support, and case-sensitive\n if (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n }\n\n /**\n * Pointer events input\n * @constructor\n * @extends Input\n */\n function PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n Input.apply(this, arguments);\n this.store = this.manager.session.pointerEvents = [];\n }\n inherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n var isTouch = pointerType == INPUT_TYPE_TOUCH;\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n });\n var SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n };\n var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\n var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n /**\n * Touch events input\n * @constructor\n * @extends Input\n */\n function SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n Input.apply(this, arguments);\n }\n inherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n if (!this.started) {\n return;\n }\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n });\n\n /**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\n function normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n return [all, changed];\n }\n var TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n };\n var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n /**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\n function TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n Input.apply(this, arguments);\n }\n inherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n });\n\n /**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\n function getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function (touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n if (!changedTargetTouches.length) {\n return;\n }\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), changedTargetTouches];\n }\n\n /**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\n var DEDUP_TIMEOUT = 2500;\n var DEDUP_DISTANCE = 25;\n function TouchMouseInput() {\n Input.apply(this, arguments);\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n this.primaryTouch = null;\n this.lastTouches = [];\n }\n inherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = inputData.pointerType == INPUT_TYPE_TOUCH,\n isMouse = inputData.pointerType == INPUT_TYPE_MOUSE;\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n this.callback(manager, inputEvent, inputData);\n },\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n });\n function recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n }\n function setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {\n x: touch.clientX,\n y: touch.clientY\n };\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function () {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n }\n function isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX,\n y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x),\n dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n }\n var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\n var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n // magical touchAction value\n var TOUCH_ACTION_COMPUTE = 'compute';\n var TOUCH_ACTION_AUTO = 'auto';\n var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\n var TOUCH_ACTION_NONE = 'none';\n var TOUCH_ACTION_PAN_X = 'pan-x';\n var TOUCH_ACTION_PAN_Y = 'pan-y';\n var TOUCH_ACTION_MAP = getTouchActionProps();\n\n /**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\n function TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n }\n TouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function (value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n /**\n * just re-set the touchAction value\n */\n update: function () {\n this.set(this.manager.options.touchAction);\n },\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function () {\n var actions = [];\n each(this.manager.recognizers, function (recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function (input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n if (hasNone || hasPanY && direction & DIRECTION_HORIZONTAL || hasPanX && direction & DIRECTION_VERTICAL) {\n return this.preventSrc(srcEvent);\n }\n },\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function (srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n };\n\n /**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\n function cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n return TOUCH_ACTION_AUTO;\n }\n function getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function (val) {\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n }\n\n /**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\n var STATE_POSSIBLE = 1;\n var STATE_BEGAN = 2;\n var STATE_CHANGED = 4;\n var STATE_ENDED = 8;\n var STATE_RECOGNIZED = STATE_ENDED;\n var STATE_CANCELLED = 16;\n var STATE_FAILED = 32;\n\n /**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\n function Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n this.id = uniqueId();\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n this.state = STATE_POSSIBLE;\n this.simultaneous = {};\n this.requireFail = [];\n }\n Recognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function (options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function (otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function () {\n return this.requireFail.length > 0;\n },\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function (otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function (input) {\n var self = this;\n var state = this.state;\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) {\n // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function (input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function () {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function (inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function (inputData) {},\n // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function () {},\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function () {}\n };\n\n /**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\n function stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n }\n\n /**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\n function directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n }\n\n /**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\n function getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n }\n\n /**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\n function AttrRecognizer() {\n Recognizer.apply(this, arguments);\n }\n inherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function (input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function (input) {\n var state = this.state;\n var eventType = input.eventType;\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n });\n\n /**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n function PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n this.pX = null;\n this.pY = null;\n }\n inherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n getTouchAction: function () {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n directionTest: function (input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = x === 0 ? DIRECTION_NONE : x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = y === 0 ? DIRECTION_NONE : y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n attrTest: function (input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) && (this.state & STATE_BEGAN || !(this.state & STATE_BEGAN) && this.directionTest(input));\n },\n emit: function (input) {\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n var direction = directionStr(input.direction);\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n });\n\n /**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\n function PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n inherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function () {\n return [TOUCH_ACTION_NONE];\n },\n attrTest: function (input) {\n return this._super.attrTest.call(this, input) && (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n emit: function (input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n });\n\n /**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\n function PressRecognizer() {\n Recognizer.apply(this, arguments);\n this._timer = null;\n this._input = null;\n }\n inherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251,\n // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function () {\n return [TOUCH_ACTION_AUTO];\n },\n process: function (input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function () {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n reset: function () {\n clearTimeout(this._timer);\n },\n emit: function (input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n if (input && input.eventType & INPUT_END) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n });\n\n /**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\n function RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n inherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n getTouchAction: function () {\n return [TOUCH_ACTION_NONE];\n },\n attrTest: function (input) {\n return this._super.attrTest.call(this, input) && (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n });\n\n /**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\n function SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n }\n inherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n getTouchAction: function () {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n attrTest: function (input) {\n var direction = this.options.direction;\n var velocity;\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n return this._super.attrTest.call(this, input) && direction & input.offsetDirection && input.distance > this.options.threshold && input.maxPointers == this.options.pointers && abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n emit: function (input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n this.manager.emit(this.options.event, input);\n }\n });\n\n /**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\n function TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n this._timer = null;\n this._input = null;\n this.count = 0;\n }\n inherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300,\n // max time between the multi-tap taps\n time: 250,\n // max time of the pointer to be down (like finger on the screen)\n threshold: 9,\n // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function () {\n return [TOUCH_ACTION_MANIPULATION];\n },\n process: function (input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n this.reset();\n if (input.eventType & INPUT_START && this.count === 0) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n var validInterval = this.pTime ? input.timeStamp - this.pTime < options.interval : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function () {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n failTimeout: function () {\n this._timer = setTimeoutContext(function () {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n reset: function () {\n clearTimeout(this._timer);\n },\n emit: function () {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n });\n\n /**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n function Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n }\n\n /**\n * @const {string}\n */\n Hammer.VERSION = '2.0.7';\n\n /**\n * default settings\n * @namespace\n */\n Hammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {\n enable: false\n }], [PinchRecognizer, {\n enable: false\n }, ['rotate']], [SwipeRecognizer, {\n direction: DIRECTION_HORIZONTAL\n }], [PanRecognizer, {\n direction: DIRECTION_HORIZONTAL\n }, ['swipe']], [TapRecognizer], [TapRecognizer, {\n event: 'doubletap',\n taps: 2\n }, ['tap']], [PressRecognizer]],\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n };\n var STOP = 1;\n var FORCED_STOP = 2;\n\n /**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\n function Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n this.options.inputTarget = this.options.inputTarget || element;\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n toggleCssProps(this, true);\n each(this.options.recognizers, function (item) {\n var recognizer = this.add(new item[0](item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n }\n Manager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function (options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function (force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function (inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || curRecognizer && curRecognizer.state & STATE_RECOGNIZED) {\n curRecognizer = session.curRecognizer = null;\n }\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && (\n // 1\n !curRecognizer || recognizer == curRecognizer ||\n // 2\n recognizer.canRecognizeWith(curRecognizer))) {\n // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function (recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function (recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n this.touchAction.update();\n return recognizer;\n },\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function (recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n return this;\n },\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function (events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function (events, handler) {\n if (events === undefined) {\n return;\n }\n var handlers = this.handlers;\n each(splitStr(events), function (event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function (event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n data.type = event;\n data.preventDefault = function () {\n data.srcEvent.preventDefault();\n };\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function () {\n this.element && toggleCssProps(this, false);\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n };\n\n /**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\n function toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function (value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n }\n\n /**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\n function triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n }\n assign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n });\n\n // this prevents errors when Hammer is loaded in the presence of an AMD\n // style loader but by script tag, not by the loader.\n var freeGlobal = typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}; // jshint ignore:line\n freeGlobal.Hammer = Hammer;\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return Hammer;\n });\n } else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n } else {\n window[exportName] = Hammer;\n }\n})(window, document, 'Hammer');","// src/react.tsx\nimport { useEffect } from \"react\";\n\n// src/queue.ts\nvar initQueue = () => {\n if (window.va) return;\n window.va = function a() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n (window.vaq = window.vaq || []).push(params);\n };\n};\n\n// src/utils.ts\nfunction isBrowser() {\n return typeof window !== \"undefined\";\n}\nfunction isDevelopment() {\n if (typeof process === \"undefined\") return false;\n return process.env.NODE_ENV === \"development\" || process.env.NODE_ENV === \"test\";\n}\nfunction getMode() {\n let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"auto\";\n if (mode === \"auto\") {\n return isDevelopment() ? \"development\" : \"production\";\n }\n return mode;\n}\n\n// src/generic.ts\nvar inject = function () {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n debug: true\n };\n var _a;\n if (!isBrowser()) return;\n const mode = getMode(props.mode);\n initQueue();\n if (props.beforeSend) {\n (_a = window.va) == null ? void 0 : _a.call(window, \"beforeSend\", props.beforeSend);\n }\n const src = mode === \"development\" ? \"https://cdn.vercel-insights.com/v1/script.debug.js\" : \"/_vercel/insights/script.js\";\n if (document.head.querySelector(`script[src*=\"${src}\"]`)) return;\n const script = document.createElement(\"script\");\n script.src = src;\n script.defer = true;\n if (mode === \"development\" && props.debug === false) {\n script.setAttribute(\"data-debug\", \"false\");\n }\n document.head.appendChild(script);\n};\n\n// src/react.tsx\nfunction Analytics(_ref) {\n let {\n beforeSend,\n debug = true,\n mode = \"auto\"\n } = _ref;\n useEffect(() => {\n inject({\n beforeSend,\n debug,\n mode\n });\n }, [beforeSend, debug, mode]);\n return null;\n}\nexport { Analytics };","/* @preserve\n * gcoord 0.3.2, geographic coordinate library\n * Copyright (c) 2021 Jiulong Hu \n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar sin$1 = Math.sin,\n cos$1 = Math.cos,\n sqrt$1 = Math.sqrt,\n abs$1 = Math.abs,\n PI$1 = Math.PI;\nvar a = 6378245;\nvar ee = 0.006693421622965823;\n// roughly check whether coordinates are in China.\nfunction isInChinaBbox(lon, lat) {\n return lon >= 72.004 && lon <= 137.8347 && lat >= 0.8293 && lat <= 55.8271;\n}\nfunction transformLat(x, y) {\n var ret = -100 + 2 * x + 3 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * sqrt$1(abs$1(x));\n ret += (20 * sin$1(6 * x * PI$1) + 20 * sin$1(2 * x * PI$1)) * 2 / 3;\n ret += (20 * sin$1(y * PI$1) + 40 * sin$1(y / 3 * PI$1)) * 2 / 3;\n ret += (160 * sin$1(y / 12 * PI$1) + 320 * sin$1(y * PI$1 / 30)) * 2 / 3;\n return ret;\n}\nfunction transformLon(x, y) {\n var ret = 300 + x + 2 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * sqrt$1(abs$1(x));\n ret += (20 * sin$1(6 * x * PI$1) + 20 * sin$1(2 * x * PI$1)) * 2 / 3;\n ret += (20 * sin$1(x * PI$1) + 40 * sin$1(x / 3 * PI$1)) * 2 / 3;\n ret += (150 * sin$1(x / 12 * PI$1) + 300 * sin$1(x / 30 * PI$1)) * 2 / 3;\n return ret;\n}\nfunction delta(lon, lat) {\n var dLon = transformLon(lon - 105, lat - 35);\n var dLat = transformLat(lon - 105, lat - 35);\n var radLat = lat / 180 * PI$1;\n var magic = sin$1(radLat);\n magic = 1 - ee * magic * magic;\n var sqrtMagic = sqrt$1(magic);\n dLon = dLon * 180 / (a / sqrtMagic * cos$1(radLat) * PI$1);\n dLat = dLat * 180 / (a * (1 - ee) / (magic * sqrtMagic) * PI$1);\n return [dLon, dLat];\n}\nfunction WGS84ToGCJ02(coord) {\n var lon = coord[0],\n lat = coord[1];\n if (!isInChinaBbox(lon, lat)) return [lon, lat];\n var d = delta(lon, lat);\n return [lon + d[0], lat + d[1]];\n}\nfunction GCJ02ToWGS84(coord) {\n var lon = coord[0],\n lat = coord[1];\n if (!isInChinaBbox(lon, lat)) return [lon, lat];\n var _a = [lon, lat],\n wgsLon = _a[0],\n wgsLat = _a[1];\n var tempPoint = WGS84ToGCJ02([wgsLon, wgsLat]);\n var dx = tempPoint[0] - lon;\n var dy = tempPoint[1] - lat;\n while (abs$1(dx) > 1e-6 || abs$1(dy) > 1e-6) {\n wgsLon -= dx;\n wgsLat -= dy;\n tempPoint = WGS84ToGCJ02([wgsLon, wgsLat]);\n dx = tempPoint[0] - lon;\n dy = tempPoint[1] - lat;\n }\n return [wgsLon, wgsLat];\n}\nvar sin = Math.sin,\n cos = Math.cos,\n atan2 = Math.atan2,\n sqrt = Math.sqrt,\n PI = Math.PI;\nvar baiduFactor = PI * 3000.0 / 180.0;\nfunction BD09ToGCJ02(coord) {\n var lon = coord[0],\n lat = coord[1];\n var x = lon - 0.0065;\n var y = lat - 0.006;\n var z = sqrt(x * x + y * y) - 0.00002 * sin(y * baiduFactor);\n var theta = atan2(y, x) - 0.000003 * cos(x * baiduFactor);\n var newLon = z * cos(theta);\n var newLat = z * sin(theta);\n return [newLon, newLat];\n}\nfunction GCJ02ToBD09(coord) {\n var lon = coord[0],\n lat = coord[1];\n var x = lon;\n var y = lat;\n var z = sqrt(x * x + y * y) + 0.00002 * sin(y * baiduFactor);\n var theta = atan2(y, x) + 0.000003 * cos(x * baiduFactor);\n var newLon = z * cos(theta) + 0.0065;\n var newLat = z * sin(theta) + 0.006;\n return [newLon, newLat];\n}\n\n// https://github.com/Turfjs/turf/blob/master/packages/turf-projection/index.ts\nvar R2D = 180 / Math.PI;\nvar D2R = Math.PI / 180;\nvar A = 6378137.0;\nvar MAXEXTENT = 20037508.342789244;\nfunction ESPG3857ToWGS84(xy) {\n return [xy[0] * R2D / A, (Math.PI * 0.5 - 2.0 * Math.atan(Math.exp(-xy[1] / A))) * R2D];\n}\nfunction WGS84ToEPSG3857(lonLat) {\n // compensate longitudes passing the 180th meridian\n // from https://github.com/proj4js/proj4js/blob/master/lib/common/adjust_lon.js\n var adjusted = Math.abs(lonLat[0]) <= 180 ? lonLat[0] : lonLat[0] - (lonLat[0] < 0 ? -1 : 1) * 360;\n var xy = [A * adjusted * D2R, A * Math.log(Math.tan(Math.PI * 0.25 + 0.5 * lonLat[1] * D2R))];\n // if xy value is beyond maxextent (e.g. poles), return maxextent\n if (xy[0] > MAXEXTENT) xy[0] = MAXEXTENT;\n if (xy[0] < -MAXEXTENT) xy[0] = -MAXEXTENT;\n if (xy[1] > MAXEXTENT) xy[1] = MAXEXTENT;\n if (xy[1] < -MAXEXTENT) xy[1] = -MAXEXTENT;\n return xy;\n}\nvar abs = Math.abs;\nvar MCBAND = [12890594.86, 8362377.87, 5591021, 3481989.83, 1678043.12, 0];\nvar LLBAND = [75, 60, 45, 30, 15, 0];\nvar MC2LL = [[1.410526172116255e-8, 0.00000898305509648872, -1.9939833816331, 200.9824383106796, -187.2403703815547, 91.6087516669843, -23.38765649603339, 2.57121317296198, -0.03801003308653, 17337981.2], [-7.435856389565537e-9, 0.000008983055097726239, -0.78625201886289, 96.32687599759846, -1.85204757529826, -59.36935905485877, 47.40033549296737, -16.50741931063887, 2.28786674699375, 10260144.86], [-3.030883460898826e-8, 0.00000898305509983578, 0.30071316287616, 59.74293618442277, 7.357984074871, -25.38371002664745, 13.45380521110908, -3.29883767235584, 0.32710905363475, 6856817.37], [-1.981981304930552e-8, 0.000008983055099779535, 0.03278182852591, 40.31678527705744, 0.65659298677277, -4.44255534477492, 0.85341911805263, 0.12923347998204, -0.04625736007561, 4482777.06], [3.09191371068437e-9, 0.000008983055096812155, 0.00006995724062, 23.10934304144901, -0.00023663490511, -0.6321817810242, -0.00663494467273, 0.03430082397953, -0.00466043876332, 2555164.4], [2.890871144776878e-9, 0.000008983055095805407, -3.068298e-8, 7.47137025468032, -0.00000353937994, -0.02145144861037, -0.00001234426596, 0.00010322952773, -0.00000323890364, 826088.5]];\nvar LL2MC = [[-0.0015702102444, 111320.7020616939, 1704480524535203, -10338987376042340, 26112667856603880, -35149669176653700, 26595700718403920, -10725012454188240, 1800819912950474, 82.5], [0.0008277824516172526, 111320.7020463578, 647795574.6671607, -4082003173.641316, 10774905663.51142, -15171875531.51559, 12053065338.62167, -5124939663.577472, 913311935.9512032, 67.5], [0.00337398766765, 111320.7020202162, 4481351.045890365, -23393751.19931662, 79682215.47186455, -115964993.2797253, 97236711.15602145, -43661946.33752821, 8477230.501135234, 52.5], [0.00220636496208, 111320.7020209128, 51751.86112841131, 3796837.749470245, 992013.7397791013, -1221952.21711287, 1340652.697009075, -620943.6990984312, 144416.9293806241, 37.5], [-0.0003441963504368392, 111320.7020576856, 278.2353980772752, 2485758.690035394, 6070.750963243378, 54821.18345352118, 9540.606633304236, -2710.55326746645, 1405.483844121726, 22.5], [-0.0003218135878613132, 111320.7020701615, 0.00369383431289, 823725.6402795718, 0.46104986909093, 2351.343141331292, 1.58060784298199, 8.77738589078284, 0.37238884252424, 7.45]];\nfunction transform$1(x, y, factors) {\n var cc = abs(y) / factors[9];\n var xt = factors[0] + factors[1] * abs(x);\n var yt = factors[2] + factors[3] * cc + factors[4] * Math.pow(cc, 2) + factors[5] * Math.pow(cc, 3) + factors[6] * Math.pow(cc, 4) + factors[7] * Math.pow(cc, 5) + factors[8] * Math.pow(cc, 6);\n xt *= x < 0 ? -1 : 1;\n yt *= y < 0 ? -1 : 1;\n return [xt, yt];\n}\nfunction BD09toBD09MC(coord) {\n var lng = coord[0],\n lat = coord[1];\n var factors = [];\n for (var i = 0; i < LLBAND.length; i++) {\n if (abs(lat) > LLBAND[i]) {\n factors = LL2MC[i];\n break;\n }\n }\n return transform$1(lng, lat, factors);\n}\nfunction BD09MCtoBD09(coord) {\n var x = coord[0],\n y = coord[1];\n var factors = [];\n for (var i = 0; i < MCBAND.length; i++) {\n if (y >= MCBAND[i]) {\n factors = MC2LL[i];\n break;\n }\n }\n return transform$1(x, y, factors);\n}\nfunction assert(condition, msg) {\n if (!condition) throw new Error(msg);\n}\n/**\r\n * isArray\r\n *\r\n * @param {*} input variable to validate\r\n * @returns {boolean} true/false\r\n */\nfunction isArray(input) {\n return !!input && Object.prototype.toString.call(input) === '[object Array]';\n}\n/**\r\n * isNumber\r\n *\r\n * @param {*} num Number to validate\r\n * @returns {boolean} true/false\r\n * @example\r\n * isNumber(123)\r\n * //=true\r\n * isNumber('foo')\r\n * //=false\r\n */\nfunction isNumber(input) {\n return !isNaN(Number(input)) && input !== null && !isArray(input);\n}\n/**\r\n * compose\r\n *\r\n * @param {function[]} functions\r\n * @returns {function}\r\n */\nfunction compose() {\n var funcs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n funcs[_i] = arguments[_i];\n }\n var start = funcs.length - 1;\n /* eslint-disable func-names */\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var i = start;\n var result = funcs[start].apply(null, args);\n while (i--) result = funcs[i].call(null, result);\n return result;\n };\n}\n/**\r\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\r\n * https://github.com/Turfjs/turf/blob/master/packages/turf-meta/index.mjs\r\n *\r\n * @name coordEach\r\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\r\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\r\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\r\n * @returns {void}\r\n * @example\r\n * let features = featureCollection([\r\n * point([26, 37], {\"foo\": \"bar\"}),\r\n * point([36, 53], {\"hello\": \"world\"})\r\n * ]);\r\n *\r\n * coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\r\n * //=currentCoord\r\n * //=coordIndex\r\n * //=featureIndex\r\n * //=multiFeatureIndex\r\n * //=geometryIndex\r\n * });\r\n */\n/* eslint-disable no-param-reassign */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n if (excludeWrapCoord === void 0) {\n excludeWrapCoord = false;\n }\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n /* eslint-disable-next-line */\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection;\n var type = geojson.type;\n var isFeatureCollection = type === 'FeatureCollection';\n var isFeature = type === 'Feature';\n var stop = isFeatureCollection ? geojson.features.length : 1;\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[featureIndex].geometry : isFeature ? geojson.geometry : geojson;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === 'GeometryCollection' : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n var geomType = geometry.type;\n wrapShrink = excludeWrapCoord && (geomType === 'Polygon' || geomType === 'MultiPolygon') ? 1 : 0;\n switch (geomType) {\n case null:\n break;\n case 'Point':\n coords = geometry.coordinates;\n if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case 'LineString':\n case 'MultiPoint':\n coords = geometry.coordinates;\n for (j = 0; j < coords.length; j++) {\n if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n if (geomType === 'MultiPoint') multiFeatureIndex++;\n }\n if (geomType === 'LineString') multiFeatureIndex++;\n break;\n case 'Polygon':\n case 'MultiLineString':\n coords = geometry.coordinates;\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n if (geomType === 'MultiLineString') multiFeatureIndex++;\n if (geomType === 'Polygon') geometryIndex++;\n }\n if (geomType === 'Polygon') multiFeatureIndex++;\n break;\n case 'MultiPolygon':\n coords = geometry.coordinates;\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case 'GeometryCollection':\n for (j = 0; j < geometry.geometries.length; j++) {\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false;\n }\n break;\n default:\n throw new Error('Unknown Geometry Type');\n }\n }\n }\n}\nvar _a, _b, _c, _d, _e;\nvar CRSTypes;\n(function (CRSTypes) {\n // WGS84\n CRSTypes[\"WGS84\"] = \"WGS84\";\n CRSTypes[\"WGS1984\"] = \"WGS84\";\n CRSTypes[\"EPSG4326\"] = \"WGS84\";\n // GCJ02\n CRSTypes[\"GCJ02\"] = \"GCJ02\";\n CRSTypes[\"AMap\"] = \"GCJ02\";\n // BD09\n CRSTypes[\"BD09\"] = \"BD09\";\n CRSTypes[\"BD09LL\"] = \"BD09\";\n CRSTypes[\"Baidu\"] = \"BD09\";\n CRSTypes[\"BMap\"] = \"BD09\";\n // BD09MC\n CRSTypes[\"BD09MC\"] = \"BD09MC\";\n CRSTypes[\"BD09Meter\"] = \"BD09MC\";\n // EPSG3857\n CRSTypes[\"EPSG3857\"] = \"EPSG3857\";\n CRSTypes[\"EPSG900913\"] = \"EPSG3857\";\n CRSTypes[\"EPSG102100\"] = \"EPSG3857\";\n CRSTypes[\"WebMercator\"] = \"EPSG3857\";\n CRSTypes[\"WM\"] = \"EPSG3857\";\n})(CRSTypes || (CRSTypes = {}));\nvar WGS84 = {\n to: (_a = {}, _a[CRSTypes.GCJ02] = WGS84ToGCJ02, _a[CRSTypes.BD09] = compose(GCJ02ToBD09, WGS84ToGCJ02), _a[CRSTypes.BD09MC] = compose(BD09toBD09MC, GCJ02ToBD09, WGS84ToGCJ02), _a[CRSTypes.EPSG3857] = WGS84ToEPSG3857, _a)\n};\nvar GCJ02 = {\n to: (_b = {}, _b[CRSTypes.WGS84] = GCJ02ToWGS84, _b[CRSTypes.BD09] = GCJ02ToBD09, _b[CRSTypes.BD09MC] = compose(BD09toBD09MC, GCJ02ToBD09), _b[CRSTypes.EPSG3857] = compose(WGS84ToEPSG3857, GCJ02ToWGS84), _b)\n};\nvar BD09 = {\n to: (_c = {}, _c[CRSTypes.WGS84] = compose(GCJ02ToWGS84, BD09ToGCJ02), _c[CRSTypes.GCJ02] = BD09ToGCJ02, _c[CRSTypes.EPSG3857] = compose(WGS84ToEPSG3857, GCJ02ToWGS84, BD09ToGCJ02), _c[CRSTypes.BD09MC] = BD09toBD09MC, _c)\n};\nvar EPSG3857 = {\n to: (_d = {}, _d[CRSTypes.WGS84] = ESPG3857ToWGS84, _d[CRSTypes.GCJ02] = compose(WGS84ToGCJ02, ESPG3857ToWGS84), _d[CRSTypes.BD09] = compose(GCJ02ToBD09, WGS84ToGCJ02, ESPG3857ToWGS84), _d[CRSTypes.BD09MC] = compose(BD09toBD09MC, GCJ02ToBD09, WGS84ToGCJ02, ESPG3857ToWGS84), _d)\n};\nvar BD09MC = {\n to: (_e = {}, _e[CRSTypes.WGS84] = compose(GCJ02ToWGS84, BD09ToGCJ02, BD09MCtoBD09), _e[CRSTypes.GCJ02] = compose(BD09ToGCJ02, BD09MCtoBD09), _e[CRSTypes.EPSG3857] = compose(WGS84ToEPSG3857, GCJ02ToWGS84, BD09ToGCJ02, BD09MCtoBD09), _e[CRSTypes.BD09] = BD09MCtoBD09, _e)\n};\nvar crsMap = {\n WGS84: WGS84,\n GCJ02: GCJ02,\n BD09: BD09,\n EPSG3857: EPSG3857,\n BD09MC: BD09MC\n};\n\n/**\r\n * transform\r\n *\r\n * @param {geojson|position|string} input\r\n * @returns {geojson|position} output\r\n */\n/* eslint-disable no-param-reassign */\nfunction transform(input, crsFrom, crsTo) {\n assert(!!input, 'The args[0] input coordinate is required');\n assert(!!crsFrom, 'The args[1] original coordinate system is required');\n assert(!!crsTo, 'The args[2] target coordinate system is required');\n if (crsFrom === crsTo) return input;\n var from = crsMap[crsFrom];\n assert(!!from, \"Invalid original coordinate system: \" + crsFrom);\n var to = from.to[crsTo];\n assert(!!to, \"Invalid target coordinate system: \" + crsTo);\n var type = typeof input;\n assert(type === 'string' || type === 'object', \"Invalid input coordinate type: \" + type);\n if (type === 'string') {\n try {\n input = JSON.parse(input);\n } catch (e) {\n throw new Error(\"Invalid input coordinate: \" + input);\n }\n }\n var isPosition = false;\n if (isArray(input)) {\n assert(input.length >= 2, \"Invalid input coordinate: \" + input);\n assert(isNumber(input[0]) && isNumber(input[1]), \"Invalid input coordinate: \" + input);\n input = input.map(Number);\n isPosition = true;\n }\n var convert = to;\n if (isPosition) return convert(input);\n // GeoJSON类型直接转换输入\n coordEach(input, function (coord) {\n var _a;\n _a = convert(coord), coord[0] = _a[0], coord[1] = _a[1];\n });\n return input;\n}\nvar exported = __assign(__assign({}, CRSTypes), {\n // 兼容原来gcoord.WGS84的使用方式\n CRSTypes: CRSTypes,\n transform: transform\n});\nexport default exported;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/**\n * Common utilities\n * @module glMatrix\n */\n// Configuration Constants\nexport var EPSILON = 0.000001;\nexport var ARRAY_TYPE = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nexport var RANDOM = Math.random;\n/**\n * Sets the type of array used when creating new vectors and matrices\n *\n * @param {Float32ArrayConstructor | ArrayConstructor} type Array type, such as Float32Array or Array\n */\n\nexport function setMatrixArrayType(type) {\n ARRAY_TYPE = type;\n}\nvar degree = Math.PI / 180;\n/**\n * Convert Degree To Radian\n *\n * @param {Number} a Angle in Degrees\n */\n\nexport function toRadian(a) {\n return a * degree;\n}\n/**\n * Tests whether or not the arguments have approximately the same value, within an absolute\n * or relative tolerance of glMatrix.EPSILON (an absolute tolerance is used for values less\n * than or equal to 1.0, and a relative tolerance is used for larger values)\n *\n * @param {Number} a The first number to test.\n * @param {Number} b The second number to test.\n * @returns {Boolean} True if the numbers are approximately equal, false otherwise.\n */\n\nexport function equals(a, b) {\n return Math.abs(a - b) <= EPSILON * Math.max(1.0, Math.abs(a), Math.abs(b));\n}\nif (!Math.hypot) Math.hypot = function () {\n var y = 0,\n i = arguments.length;\n while (i--) {\n y += arguments[i] * arguments[i];\n }\n return Math.sqrt(y);\n};","import * as glMatrix from \"./common.js\";\n/**\n * 4 Dimensional Vector\n * @module vec4\n */\n\n/**\n * Creates a new, empty vec4\n *\n * @returns {vec4} a new 4D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(4);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n return out;\n}\n/**\n * Creates a new vec4 initialized with values from an existing vector\n *\n * @param {ReadonlyVec4} a vector to clone\n * @returns {vec4} a new 4D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Creates a new vec4 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} a new 4D vector\n */\n\nexport function fromValues(x, y, z, w) {\n var out = new glMatrix.ARRAY_TYPE(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\n * Copy the values from one vec4 to another\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the source vector\n * @returns {vec4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\n/**\n * Set the components of a vec4 to the given values\n *\n * @param {vec4} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @param {Number} w W component\n * @returns {vec4} out\n */\n\nexport function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n}\n/**\n * Adds two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n}\n/**\n * Multiplies two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n}\n/**\n * Divides two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n}\n/**\n * Math.ceil the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to ceil\n * @returns {vec4} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n out[3] = Math.ceil(a[3]);\n return out;\n}\n/**\n * Math.floor the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to floor\n * @returns {vec4} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n out[3] = Math.floor(a[3]);\n return out;\n}\n/**\n * Returns the minimum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n}\n/**\n * Returns the maximum of two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {vec4} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n}\n/**\n * Math.round the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to round\n * @returns {vec4} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n out[3] = Math.round(a[3]);\n return out;\n}\n/**\n * Scales a vec4 by a scalar number\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec4} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n}\n/**\n * Adds two vec4's after scaling the second operand by a scalar value\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec4} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared euclidian distance between two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n var w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\n * Calculates the length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return Math.hypot(x, y, z, w);\n}\n/**\n * Calculates the squared length of a vec4\n *\n * @param {ReadonlyVec4} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n return x * x + y * y + z * z + w * w;\n}\n/**\n * Negates the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to negate\n * @returns {vec4} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to invert\n * @returns {vec4} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n out[3] = 1.0 / a[3];\n return out;\n}\n/**\n * Normalize a vec4\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a vector to normalize\n * @returns {vec4} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var w = a[3];\n var len = x * x + y * y + z * z + w * w;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec4's\n *\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n}\n/**\n * Returns the cross-product of three vectors in a 4-dimensional space\n *\n * @param {ReadonlyVec4} result the receiving vector\n * @param {ReadonlyVec4} U the first vector\n * @param {ReadonlyVec4} V the second vector\n * @param {ReadonlyVec4} W the third vector\n * @returns {vec4} result\n */\n\nexport function cross(out, u, v, w) {\n var A = v[0] * w[1] - v[1] * w[0],\n B = v[0] * w[2] - v[2] * w[0],\n C = v[0] * w[3] - v[3] * w[0],\n D = v[1] * w[2] - v[2] * w[1],\n E = v[1] * w[3] - v[3] * w[1],\n F = v[2] * w[3] - v[3] * w[2];\n var G = u[0];\n var H = u[1];\n var I = u[2];\n var J = u[3];\n out[0] = H * F - I * E + J * D;\n out[1] = -(G * F) + I * C - J * B;\n out[2] = G * E - H * C + J * A;\n out[3] = -(G * D) + H * B - I * A;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec4's\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the first operand\n * @param {ReadonlyVec4} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec4} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec4} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec4} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0; // Marsaglia, George. Choosing a Point from the Surface of a\n // Sphere. Ann. Math. Statist. 43 (1972), no. 2, 645--646.\n // http://projecteuclid.org/euclid.aoms/1177692644;\n\n var v1, v2, v3, v4;\n var s1, s2;\n do {\n v1 = glMatrix.RANDOM() * 2 - 1;\n v2 = glMatrix.RANDOM() * 2 - 1;\n s1 = v1 * v1 + v2 * v2;\n } while (s1 >= 1);\n do {\n v3 = glMatrix.RANDOM() * 2 - 1;\n v4 = glMatrix.RANDOM() * 2 - 1;\n s2 = v3 * v3 + v4 * v4;\n } while (s2 >= 1);\n var d = Math.sqrt((1 - s1) / s2);\n out[0] = scale * v1;\n out[1] = scale * v2;\n out[2] = scale * v3 * d;\n out[3] = scale * v4 * d;\n return out;\n}\n/**\n * Transforms the vec4 with a mat4.\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec4} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2],\n w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n}\n/**\n * Transforms the vec4 with a quat\n *\n * @param {vec4} out the receiving vector\n * @param {ReadonlyVec4} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec4} out\n */\n\nexport function transformQuat(out, a, q) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3]; // calculate quat * vec\n\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z; // calculate result * inverse quat\n\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n}\n/**\n * Set the components of a vec4 to zero\n *\n * @param {vec4} out the receiving vector\n * @returns {vec4} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec4} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec4} a The first vector.\n * @param {ReadonlyVec4} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3));\n}\n/**\n * Alias for {@link vec4.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec4.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec4.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec4.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec4.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec4.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec4s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec4. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec4s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 4;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n return a;\n };\n}();","import { transformMat4, scale } from 'gl-matrix/vec4';\nexport function createMat4() {\n return [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];\n}\nexport function transformVector(matrix, vector) {\n const result = transformMat4([], vector, matrix);\n scale(result, result, 1 / result[3]);\n return result;\n}\nexport function mod(value, divisor) {\n const modulus = value % divisor;\n return modulus < 0 ? divisor + modulus : modulus;\n}\nexport function lerp(start, end, step) {\n return step * end + (1 - step) * start;\n}\nexport function clamp(x, min, max) {\n return x < min ? min : x > max ? max : x;\n}\nfunction ieLog2(x) {\n return Math.log(x) * Math.LOG2E;\n}\nexport const log2 = Math.log2 || ieLog2;","import * as glMatrix from \"./common.js\";\n/**\n * 4x4 Matrix
Format: column-major, when typed out it looks like row-major
The matrices are being post multiplied.\n * @module mat4\n */\n\n/**\n * Creates a new identity mat4\n *\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(16);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat4} a matrix to clone\n * @returns {mat4} a new 4x4 matrix\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Copy the values from one mat4 to another\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Create a new mat4 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} A new mat4\n */\n\nexport function fromValues(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n var out = new glMatrix.ARRAY_TYPE(16);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set the components of a mat4 to the given values\n *\n * @param {mat4} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m03 Component in column 0, row 3 position (index 3)\n * @param {Number} m10 Component in column 1, row 0 position (index 4)\n * @param {Number} m11 Component in column 1, row 1 position (index 5)\n * @param {Number} m12 Component in column 1, row 2 position (index 6)\n * @param {Number} m13 Component in column 1, row 3 position (index 7)\n * @param {Number} m20 Component in column 2, row 0 position (index 8)\n * @param {Number} m21 Component in column 2, row 1 position (index 9)\n * @param {Number} m22 Component in column 2, row 2 position (index 10)\n * @param {Number} m23 Component in column 2, row 3 position (index 11)\n * @param {Number} m30 Component in column 3, row 0 position (index 12)\n * @param {Number} m31 Component in column 3, row 1 position (index 13)\n * @param {Number} m32 Component in column 3, row 2 position (index 14)\n * @param {Number} m33 Component in column 3, row 3 position (index 15)\n * @returns {mat4} out\n */\n\nexport function set(out, m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m03;\n out[4] = m10;\n out[5] = m11;\n out[6] = m12;\n out[7] = m13;\n out[8] = m20;\n out[9] = m21;\n out[10] = m22;\n out[11] = m23;\n out[12] = m30;\n out[13] = m31;\n out[14] = m32;\n out[15] = m33;\n return out;\n}\n/**\n * Set a mat4 to the identity matrix\n *\n * @param {mat4} out the receiving matrix\n * @returns {mat4} out\n */\n\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Transpose the values of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n var a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a12 = a[6],\n a13 = a[7];\n var a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n return out;\n}\n/**\n * Inverts a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n}\n/**\n * Calculates the adjugate of a mat4\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the source matrix\n * @returns {mat4} out\n */\n\nexport function adjoint(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n}\n/**\n * Calculates the determinant of a mat4\n *\n * @param {ReadonlyMat4} a the source matrix\n * @returns {Number} determinant of a\n */\n\nexport function determinant(a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32; // Calculate the determinant\n\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n}\n/**\n * Multiplies two mat4s\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function multiply(out, a, b) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3];\n var a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7];\n var a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11];\n var a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15]; // Cache only the current line of the second matrix\n\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n}\n/**\n * Translate a mat4 by the given vector\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to translate\n * @param {ReadonlyVec3} v vector to translate by\n * @returns {mat4} out\n */\n\nexport function translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n}\n/**\n * Scales the mat4 by the dimensions in the given vec3 not using vectorization\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {ReadonlyVec3} v the vec3 to scale the matrix by\n * @returns {mat4} out\n **/\n\nexport function scale(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n}\n/**\n * Rotates a mat4 by the given angle around the given axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function rotate(out, a, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n var b00, b01, b02;\n var b10, b11, b12;\n var b20, b21, b22;\n if (len < glMatrix.EPSILON) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11]; // Construct the elements of the rotation matrix\n\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c; // Perform rotation-specific matrix multiplication\n\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the X axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Y axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateY(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n if (a !== out) {\n // If the source and destination differ, copy the unchanged rows\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n}\n/**\n * Rotates a matrix by the given angle around the Z axis\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n if (a !== out) {\n // If the source and destination differ, copy the unchanged last row\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n } // Perform axis-specific matrix multiplication\n\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n}\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.scale(dest, dest, vec);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyVec3} v Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a given angle around a given axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotate(dest, dest, rad, axis);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @param {ReadonlyVec3} axis the axis to rotate around\n * @returns {mat4} out\n */\n\nexport function fromRotation(out, rad, axis) {\n var x = axis[0],\n y = axis[1],\n z = axis[2];\n var len = Math.hypot(x, y, z);\n var s, c, t;\n if (len < glMatrix.EPSILON) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c; // Perform rotation-specific matrix multiplication\n\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the X axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateX(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromXRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Y axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateY(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromYRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from the given angle around the Z axis\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.rotateZ(dest, dest, rad);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat4} out\n */\n\nexport function fromZRotation(out, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad); // Perform axis-specific matrix multiplication\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation and vector translation\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslation(out, q, v) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a new mat4 from a dual quat.\n *\n * @param {mat4} out Matrix\n * @param {ReadonlyQuat2} a Dual Quaternion\n * @returns {mat4} mat4 receiving operation result\n */\n\nexport function fromQuat2(out, a) {\n var translation = new glMatrix.ARRAY_TYPE(3);\n var bx = -a[0],\n by = -a[1],\n bz = -a[2],\n bw = a[3],\n ax = a[4],\n ay = a[5],\n az = a[6],\n aw = a[7];\n var magnitude = bx * bx + by * by + bz * bz + bw * bw; //Only scale if it makes sense\n\n if (magnitude > 0) {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2 / magnitude;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2 / magnitude;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2 / magnitude;\n } else {\n translation[0] = (ax * bw + aw * bx + ay * bz - az * by) * 2;\n translation[1] = (ay * bw + aw * by + az * bx - ax * bz) * 2;\n translation[2] = (az * bw + aw * bz + ax * by - ay * bx) * 2;\n }\n fromRotationTranslation(out, a, translation);\n return out;\n}\n/**\n * Returns the translation vector component of a transformation\n * matrix. If a matrix is built with fromRotationTranslation,\n * the returned vector will be the same as the translation vector\n * originally supplied.\n * @param {vec3} out Vector to receive translation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getTranslation(out, mat) {\n out[0] = mat[12];\n out[1] = mat[13];\n out[2] = mat[14];\n return out;\n}\n/**\n * Returns the scaling factor component of a transformation\n * matrix. If a matrix is built with fromRotationTranslationScale\n * with a normalized Quaternion paramter, the returned vector will be\n * the same as the scaling vector\n * originally supplied.\n * @param {vec3} out Vector to receive scaling factor component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {vec3} out\n */\n\nexport function getScaling(out, mat) {\n var m11 = mat[0];\n var m12 = mat[1];\n var m13 = mat[2];\n var m21 = mat[4];\n var m22 = mat[5];\n var m23 = mat[6];\n var m31 = mat[8];\n var m32 = mat[9];\n var m33 = mat[10];\n out[0] = Math.hypot(m11, m12, m13);\n out[1] = Math.hypot(m21, m22, m23);\n out[2] = Math.hypot(m31, m32, m33);\n return out;\n}\n/**\n * Returns a quaternion representing the rotational component\n * of a transformation matrix. If a matrix is built with\n * fromRotationTranslation, the returned quaternion will be the\n * same as the quaternion originally supplied.\n * @param {quat} out Quaternion to receive the rotation component\n * @param {ReadonlyMat4} mat Matrix to be decomposed (input)\n * @return {quat} out\n */\n\nexport function getRotation(out, mat) {\n var scaling = new glMatrix.ARRAY_TYPE(3);\n getScaling(scaling, mat);\n var is1 = 1 / scaling[0];\n var is2 = 1 / scaling[1];\n var is3 = 1 / scaling[2];\n var sm11 = mat[0] * is1;\n var sm12 = mat[1] * is2;\n var sm13 = mat[2] * is3;\n var sm21 = mat[4] * is1;\n var sm22 = mat[5] * is2;\n var sm23 = mat[6] * is3;\n var sm31 = mat[8] * is1;\n var sm32 = mat[9] * is2;\n var sm33 = mat[10] * is3;\n var trace = sm11 + sm22 + sm33;\n var S = 0;\n if (trace > 0) {\n S = Math.sqrt(trace + 1.0) * 2;\n out[3] = 0.25 * S;\n out[0] = (sm23 - sm32) / S;\n out[1] = (sm31 - sm13) / S;\n out[2] = (sm12 - sm21) / S;\n } else if (sm11 > sm22 && sm11 > sm33) {\n S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2;\n out[3] = (sm23 - sm32) / S;\n out[0] = 0.25 * S;\n out[1] = (sm12 + sm21) / S;\n out[2] = (sm31 + sm13) / S;\n } else if (sm22 > sm33) {\n S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2;\n out[3] = (sm31 - sm13) / S;\n out[0] = (sm12 + sm21) / S;\n out[1] = 0.25 * S;\n out[2] = (sm23 + sm32) / S;\n } else {\n S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2;\n out[3] = (sm12 - sm21) / S;\n out[0] = (sm31 + sm13) / S;\n out[1] = (sm23 + sm32) / S;\n out[2] = 0.25 * S;\n }\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScale(out, q, v, s) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n out[0] = (1 - (yy + zz)) * sx;\n out[1] = (xy + wz) * sx;\n out[2] = (xz - wy) * sx;\n out[3] = 0;\n out[4] = (xy - wz) * sy;\n out[5] = (1 - (xx + zz)) * sy;\n out[6] = (yz + wx) * sy;\n out[7] = 0;\n out[8] = (xz + wy) * sz;\n out[9] = (yz - wx) * sz;\n out[10] = (1 - (xx + yy)) * sz;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n}\n/**\n * Creates a matrix from a quaternion rotation, vector translation and vector scale, rotating and scaling around the given origin\n * This is equivalent to (but much faster than):\n *\n * mat4.identity(dest);\n * mat4.translate(dest, vec);\n * mat4.translate(dest, origin);\n * let quatMat = mat4.create();\n * quat4.toMat4(quat, quatMat);\n * mat4.multiply(dest, quatMat);\n * mat4.scale(dest, scale)\n * mat4.translate(dest, negativeOrigin);\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {quat4} q Rotation quaternion\n * @param {ReadonlyVec3} v Translation vector\n * @param {ReadonlyVec3} s Scaling vector\n * @param {ReadonlyVec3} o The origin vector around which to scale and rotate\n * @returns {mat4} out\n */\n\nexport function fromRotationTranslationScaleOrigin(out, q, v, s, o) {\n // Quaternion math\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var xy = x * y2;\n var xz = x * z2;\n var yy = y * y2;\n var yz = y * z2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n var sx = s[0];\n var sy = s[1];\n var sz = s[2];\n var ox = o[0];\n var oy = o[1];\n var oz = o[2];\n var out0 = (1 - (yy + zz)) * sx;\n var out1 = (xy + wz) * sx;\n var out2 = (xz - wy) * sx;\n var out4 = (xy - wz) * sy;\n var out5 = (1 - (xx + zz)) * sy;\n var out6 = (yz + wx) * sy;\n var out8 = (xz + wy) * sz;\n var out9 = (yz - wx) * sz;\n var out10 = (1 - (xx + yy)) * sz;\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = 0;\n out[4] = out4;\n out[5] = out5;\n out[6] = out6;\n out[7] = 0;\n out[8] = out8;\n out[9] = out9;\n out[10] = out10;\n out[11] = 0;\n out[12] = v[0] + ox - (out0 * ox + out4 * oy + out8 * oz);\n out[13] = v[1] + oy - (out1 * ox + out5 * oy + out9 * oz);\n out[14] = v[2] + oz - (out2 * ox + out6 * oy + out10 * oz);\n out[15] = 1;\n return out;\n}\n/**\n * Calculates a 4x4 matrix from the given quaternion\n *\n * @param {mat4} out mat4 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat4} out\n */\n\nexport function fromQuat(out, q) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3];\n var x2 = x + x;\n var y2 = y + y;\n var z2 = z + z;\n var xx = x * x2;\n var yx = y * x2;\n var yy = y * y2;\n var zx = z * x2;\n var zy = z * y2;\n var zz = z * z2;\n var wx = w * x2;\n var wy = w * y2;\n var wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a frustum matrix with the given bounds\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Number} left Left bound of the frustum\n * @param {Number} right Right bound of the frustum\n * @param {Number} bottom Bottom bound of the frustum\n * @param {Number} top Top bound of the frustum\n * @param {Number} near Near bound of the frustum\n * @param {Number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left);\n var tb = 1 / (top - bottom);\n var nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveNO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n return out;\n}\n/**\n * Alias for {@link mat4.perspectiveNO}\n * @function\n */\n\nexport var perspective = perspectiveNO;\n/**\n * Generates a perspective projection matrix suitable for WebGPU with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n * Passing null/undefined/no value for far will generate infinite projection matrix.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} fovy Vertical field of view in radians\n * @param {number} aspect Aspect ratio. typically viewport width/height\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum, can be null or Infinity\n * @returns {mat4} out\n */\n\nexport function perspectiveZO(out, fovy, aspect, near, far) {\n var f = 1.0 / Math.tan(fovy / 2),\n nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = far * nf;\n out[14] = far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -near;\n }\n return out;\n}\n/**\n * Generates a perspective projection matrix with the given field of view.\n * This is primarily useful for generating projection matrices to be used\n * with the still experiemental WebVR API.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {Object} fov Object containing the following values: upDegrees, downDegrees, leftDegrees, rightDegrees\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180.0);\n var downTan = Math.tan(fov.downDegrees * Math.PI / 180.0);\n var leftTan = Math.tan(fov.leftDegrees * Math.PI / 180.0);\n var rightTan = Math.tan(fov.rightDegrees * Math.PI / 180.0);\n var xScale = 2.0 / (leftTan + rightTan);\n var yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n}\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [-1, 1],\n * which matches WebGL/OpenGL's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoNO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Alias for {@link mat4.orthoNO}\n * @function\n */\n\nexport var ortho = orthoNO;\n/**\n * Generates a orthogonal projection matrix with the given bounds.\n * The near/far clip planes correspond to a normalized device coordinate Z range of [0, 1],\n * which matches WebGPU/Vulkan/DirectX/Metal's clip volume.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {number} left Left bound of the frustum\n * @param {number} right Right bound of the frustum\n * @param {number} bottom Bottom bound of the frustum\n * @param {number} top Top bound of the frustum\n * @param {number} near Near bound of the frustum\n * @param {number} far Far bound of the frustum\n * @returns {mat4} out\n */\n\nexport function orthoZO(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = near * nf;\n out[15] = 1;\n return out;\n}\n/**\n * Generates a look-at matrix with the given eye position, focal point, and up axis.\n * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len;\n var eyex = eye[0];\n var eyey = eye[1];\n var eyez = eye[2];\n var upx = up[0];\n var upy = up[1];\n var upz = up[2];\n var centerx = center[0];\n var centery = center[1];\n var centerz = center[2];\n if (Math.abs(eyex - centerx) < glMatrix.EPSILON && Math.abs(eyey - centery) < glMatrix.EPSILON && Math.abs(eyez - centerz) < glMatrix.EPSILON) {\n return identity(out);\n }\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.hypot(z0, z1, z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.hypot(x0, x1, x2);\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.hypot(y0, y1, y2);\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n}\n/**\n * Generates a matrix that makes something look at something else.\n *\n * @param {mat4} out mat4 frustum matrix will be written into\n * @param {ReadonlyVec3} eye Position of the viewer\n * @param {ReadonlyVec3} center Point the viewer is looking at\n * @param {ReadonlyVec3} up vec3 pointing up\n * @returns {mat4} out\n */\n\nexport function targetTo(out, eye, target, up) {\n var eyex = eye[0],\n eyey = eye[1],\n eyez = eye[2],\n upx = up[0],\n upy = up[1],\n upz = up[2];\n var z0 = eyex - target[0],\n z1 = eyey - target[1],\n z2 = eyez - target[2];\n var len = z0 * z0 + z1 * z1 + z2 * z2;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n }\n var x0 = upy * z2 - upz * z1,\n x1 = upz * z0 - upx * z2,\n x2 = upx * z1 - upy * z0;\n len = x0 * x0 + x1 * x1 + x2 * x2;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n out[0] = x0;\n out[1] = x1;\n out[2] = x2;\n out[3] = 0;\n out[4] = z1 * x2 - z2 * x1;\n out[5] = z2 * x0 - z0 * x2;\n out[6] = z0 * x1 - z1 * x0;\n out[7] = 0;\n out[8] = z0;\n out[9] = z1;\n out[10] = z2;\n out[11] = 0;\n out[12] = eyex;\n out[13] = eyey;\n out[14] = eyez;\n out[15] = 1;\n return out;\n}\n/**\n * Returns a string representation of a mat4\n *\n * @param {ReadonlyMat4} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\n\nexport function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n}\n/**\n * Returns Frobenius norm of a mat4\n *\n * @param {ReadonlyMat4} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\n\nexport function frob(a) {\n return Math.hypot(a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]);\n}\n/**\n * Adds two mat4's\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n out[9] = a[9] + b[9];\n out[10] = a[10] + b[10];\n out[11] = a[11] + b[11];\n out[12] = a[12] + b[12];\n out[13] = a[13] + b[13];\n out[14] = a[14] + b[14];\n out[15] = a[15] + b[15];\n return out;\n}\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @returns {mat4} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n out[9] = a[9] - b[9];\n out[10] = a[10] - b[10];\n out[11] = a[11] - b[11];\n out[12] = a[12] - b[12];\n out[13] = a[13] - b[13];\n out[14] = a[14] - b[14];\n out[15] = a[15] - b[15];\n return out;\n}\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat4} out the receiving matrix\n * @param {ReadonlyMat4} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat4} out\n */\n\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n out[9] = a[9] * b;\n out[10] = a[10] * b;\n out[11] = a[11] * b;\n out[12] = a[12] * b;\n out[13] = a[13] * b;\n out[14] = a[14] * b;\n out[15] = a[15] * b;\n return out;\n}\n/**\n * Adds two mat4's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat4} out the receiving vector\n * @param {ReadonlyMat4} a the first operand\n * @param {ReadonlyMat4} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat4} out\n */\n\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n out[9] = a[9] + b[9] * scale;\n out[10] = a[10] + b[10] * scale;\n out[11] = a[11] + b[11] * scale;\n out[12] = a[12] + b[12] * scale;\n out[13] = a[13] + b[13] * scale;\n out[14] = a[14] + b[14] * scale;\n out[15] = a[15] + b[15] * scale;\n return out;\n}\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3] && a[4] === b[4] && a[5] === b[5] && a[6] === b[6] && a[7] === b[7] && a[8] === b[8] && a[9] === b[9] && a[10] === b[10] && a[11] === b[11] && a[12] === b[12] && a[13] === b[13] && a[14] === b[14] && a[15] === b[15];\n}\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat4} a The first matrix.\n * @param {ReadonlyMat4} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2],\n a3 = a[3];\n var a4 = a[4],\n a5 = a[5],\n a6 = a[6],\n a7 = a[7];\n var a8 = a[8],\n a9 = a[9],\n a10 = a[10],\n a11 = a[11];\n var a12 = a[12],\n a13 = a[13],\n a14 = a[14],\n a15 = a[15];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3];\n var b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7];\n var b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11];\n var b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) && Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) && Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) && Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) && Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) && Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) && Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8)) && Math.abs(a9 - b9) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a9), Math.abs(b9)) && Math.abs(a10 - b10) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a10), Math.abs(b10)) && Math.abs(a11 - b11) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a11), Math.abs(b11)) && Math.abs(a12 - b12) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a12), Math.abs(b12)) && Math.abs(a13 - b13) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a13), Math.abs(b13)) && Math.abs(a14 - b14) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a14), Math.abs(b14)) && Math.abs(a15 - b15) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a15), Math.abs(b15));\n}\n/**\n * Alias for {@link mat4.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link mat4.subtract}\n * @function\n */\n\nexport var sub = subtract;","import * as glMatrix from \"./common.js\";\n/**\n * 2 Dimensional Vector\n * @module vec2\n */\n\n/**\n * Creates a new, empty vec2\n *\n * @returns {vec2} a new 2D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(2);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n return out;\n}\n/**\n * Creates a new vec2 initialized with values from an existing vector\n *\n * @param {ReadonlyVec2} a vector to clone\n * @returns {vec2} a new 2D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\n * Creates a new vec2 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {vec2} a new 2D vector\n */\n\nexport function fromValues(x, y) {\n var out = new glMatrix.ARRAY_TYPE(2);\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\n * Copy the values from one vec2 to another\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the source vector\n * @returns {vec2} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n return out;\n}\n/**\n * Set the components of a vec2 to the given values\n *\n * @param {vec2} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @returns {vec2} out\n */\n\nexport function set(out, x, y) {\n out[0] = x;\n out[1] = y;\n return out;\n}\n/**\n * Adds two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n return out;\n}\n/**\n * Multiplies two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n return out;\n}\n/**\n * Divides two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n return out;\n}\n/**\n * Math.ceil the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to ceil\n * @returns {vec2} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n return out;\n}\n/**\n * Math.floor the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to floor\n * @returns {vec2} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n return out;\n}\n/**\n * Returns the minimum of two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n return out;\n}\n/**\n * Returns the maximum of two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec2} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n return out;\n}\n/**\n * Math.round the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to round\n * @returns {vec2} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n return out;\n}\n/**\n * Scales a vec2 by a scalar number\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec2} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n return out;\n}\n/**\n * Adds two vec2's after scaling the second operand by a scalar value\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec2} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return Math.hypot(x, y);\n}\n/**\n * Calculates the squared euclidian distance between two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0],\n y = b[1] - a[1];\n return x * x + y * y;\n}\n/**\n * Calculates the length of a vec2\n *\n * @param {ReadonlyVec2} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0],\n y = a[1];\n return Math.hypot(x, y);\n}\n/**\n * Calculates the squared length of a vec2\n *\n * @param {ReadonlyVec2} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0],\n y = a[1];\n return x * x + y * y;\n}\n/**\n * Negates the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to negate\n * @returns {vec2} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to invert\n * @returns {vec2} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n return out;\n}\n/**\n * Normalize a vec2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a vector to normalize\n * @returns {vec2} out\n */\n\nexport function normalize(out, a) {\n var x = a[0],\n y = a[1];\n var len = x * x + y * y;\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec2's\n *\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n}\n/**\n * Computes the cross product of two vec2's\n * Note that the cross product must by definition produce a 3D vector\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var z = a[0] * b[1] - a[1] * b[0];\n out[0] = out[1] = 0;\n out[2] = z;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec2's\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the first operand\n * @param {ReadonlyVec2} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec2} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0],\n ay = a[1];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec2} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec2} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n out[0] = Math.cos(r) * scale;\n out[1] = Math.sin(r) * scale;\n return out;\n}\n/**\n * Transforms the vec2 with a mat2\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat2} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat2(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y;\n out[1] = m[1] * x + m[3] * y;\n return out;\n}\n/**\n * Transforms the vec2 with a mat2d\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat2d} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat2d(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\n/**\n * Transforms the vec2 with a mat3\n * 3rd vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat3} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1];\n out[0] = m[0] * x + m[3] * y + m[6];\n out[1] = m[1] * x + m[4] * y + m[7];\n return out;\n}\n/**\n * Transforms the vec2 with a mat4\n * 3rd vector component is implicitly '0'\n * 4th vector component is implicitly '1'\n *\n * @param {vec2} out the receiving vector\n * @param {ReadonlyVec2} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec2} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0];\n var y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n return out;\n}\n/**\n * Rotate a 2D vector\n * @param {vec2} out The receiving vec2\n * @param {ReadonlyVec2} a The vec2 point to rotate\n * @param {ReadonlyVec2} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec2} out\n */\n\nexport function rotate(out, a, b, rad) {\n //Translate point to the origin\n var p0 = a[0] - b[0],\n p1 = a[1] - b[1],\n sinC = Math.sin(rad),\n cosC = Math.cos(rad); //perform rotation and translate to correct position\n\n out[0] = p0 * cosC - p1 * sinC + b[0];\n out[1] = p0 * sinC + p1 * cosC + b[1];\n return out;\n}\n/**\n * Get the angle between two 2D vectors\n * @param {ReadonlyVec2} a The first operand\n * @param {ReadonlyVec2} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var x1 = a[0],\n y1 = a[1],\n x2 = b[0],\n y2 = b[1],\n // mag is the product of the magnitudes of a and b\n mag = Math.sqrt(x1 * x1 + y1 * y1) * Math.sqrt(x2 * x2 + y2 * y2),\n // mag &&.. short circuits if mag == 0\n cosine = mag && (x1 * x2 + y1 * y2) / mag; // Math.min(Math.max(cosine, -1), 1) clamps the cosine between -1 and 1\n\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec2 to zero\n *\n * @param {vec2} out the receiving vector\n * @returns {vec2} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec2} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec2(\" + a[0] + \", \" + a[1] + \")\";\n}\n/**\n * Returns whether or not the vectors exactly have the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec2} a The first vector.\n * @param {ReadonlyVec2} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec2} a The first vector.\n * @param {ReadonlyVec2} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1];\n var b0 = b[0],\n b1 = b[1];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1));\n}\n/**\n * Alias for {@link vec2.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec2.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec2.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec2.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec2.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec2.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec2.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec2s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec2. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec2s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 2;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n return a;\n };\n}();","import * as glMatrix from \"./common.js\";\n/**\n * 3 Dimensional Vector\n * @module vec3\n */\n\n/**\n * Creates a new, empty vec3\n *\n * @returns {vec3} a new 3D vector\n */\n\nexport function create() {\n var out = new glMatrix.ARRAY_TYPE(3);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n return out;\n}\n/**\n * Creates a new vec3 initialized with values from an existing vector\n *\n * @param {ReadonlyVec3} a vector to clone\n * @returns {vec3} a new 3D vector\n */\n\nexport function clone(a) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Calculates the length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate length of\n * @returns {Number} length of a\n */\n\nexport function length(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Creates a new vec3 initialized with the given values\n *\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} a new 3D vector\n */\n\nexport function fromValues(x, y, z) {\n var out = new glMatrix.ARRAY_TYPE(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Copy the values from one vec3 to another\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the source vector\n * @returns {vec3} out\n */\n\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n}\n/**\n * Set the components of a vec3 to the given values\n *\n * @param {vec3} out the receiving vector\n * @param {Number} x X component\n * @param {Number} y Y component\n * @param {Number} z Z component\n * @returns {vec3} out\n */\n\nexport function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n}\n/**\n * Adds two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n}\n/**\n * Subtracts vector b from vector a\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n}\n/**\n * Multiplies two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n}\n/**\n * Divides two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n}\n/**\n * Math.ceil the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to ceil\n * @returns {vec3} out\n */\n\nexport function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n}\n/**\n * Math.floor the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to floor\n * @returns {vec3} out\n */\n\nexport function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n}\n/**\n * Returns the minimum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n}\n/**\n * Returns the maximum of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n}\n/**\n * Math.round the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to round\n * @returns {vec3} out\n */\n\nexport function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n}\n/**\n * Scales a vec3 by a scalar number\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to scale\n * @param {Number} b amount to scale the vector by\n * @returns {vec3} out\n */\n\nexport function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n}\n/**\n * Adds two vec3's after scaling the second operand by a scalar value\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} scale the amount to scale b by before adding\n * @returns {vec3} out\n */\n\nexport function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n}\n/**\n * Calculates the euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} distance between a and b\n */\n\nexport function distance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return Math.hypot(x, y, z);\n}\n/**\n * Calculates the squared euclidian distance between two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} squared distance between a and b\n */\n\nexport function squaredDistance(a, b) {\n var x = b[0] - a[0];\n var y = b[1] - a[1];\n var z = b[2] - a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Calculates the squared length of a vec3\n *\n * @param {ReadonlyVec3} a vector to calculate squared length of\n * @returns {Number} squared length of a\n */\n\nexport function squaredLength(a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n return x * x + y * y + z * z;\n}\n/**\n * Negates the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to negate\n * @returns {vec3} out\n */\n\nexport function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n}\n/**\n * Returns the inverse of the components of a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to invert\n * @returns {vec3} out\n */\n\nexport function inverse(out, a) {\n out[0] = 1.0 / a[0];\n out[1] = 1.0 / a[1];\n out[2] = 1.0 / a[2];\n return out;\n}\n/**\n * Normalize a vec3\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a vector to normalize\n * @returns {vec3} out\n */\n\nexport function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n if (len > 0) {\n //TODO: evaluate use of glm_invsqrt here?\n len = 1 / Math.sqrt(len);\n }\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n}\n/**\n * Calculates the dot product of two vec3's\n *\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {Number} dot product of a and b\n */\n\nexport function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n/**\n * Computes the cross product of two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @returns {vec3} out\n */\n\nexport function cross(out, a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2];\n var bx = b[0],\n by = b[1],\n bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n}\n/**\n * Performs a linear interpolation between two vec3's\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function lerp(out, a, b, t) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n}\n/**\n * Performs a hermite interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function hermite(out, a, b, c, d, t) {\n var factorTimes2 = t * t;\n var factor1 = factorTimes2 * (2 * t - 3) + 1;\n var factor2 = factorTimes2 * (t - 2) + t;\n var factor3 = factorTimes2 * (t - 1);\n var factor4 = factorTimes2 * (3 - 2 * t);\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Performs a bezier interpolation with two control points\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the first operand\n * @param {ReadonlyVec3} b the second operand\n * @param {ReadonlyVec3} c the third operand\n * @param {ReadonlyVec3} d the fourth operand\n * @param {Number} t interpolation amount, in the range [0-1], between the two inputs\n * @returns {vec3} out\n */\n\nexport function bezier(out, a, b, c, d, t) {\n var inverseFactor = 1 - t;\n var inverseFactorTimesTwo = inverseFactor * inverseFactor;\n var factorTimes2 = t * t;\n var factor1 = inverseFactorTimesTwo * inverseFactor;\n var factor2 = 3 * t * inverseFactorTimesTwo;\n var factor3 = 3 * factorTimes2 * inverseFactor;\n var factor4 = factorTimes2 * t;\n out[0] = a[0] * factor1 + b[0] * factor2 + c[0] * factor3 + d[0] * factor4;\n out[1] = a[1] * factor1 + b[1] * factor2 + c[1] * factor3 + d[1] * factor4;\n out[2] = a[2] * factor1 + b[2] * factor2 + c[2] * factor3 + d[2] * factor4;\n return out;\n}\n/**\n * Generates a random vector with the given scale\n *\n * @param {vec3} out the receiving vector\n * @param {Number} [scale] Length of the resulting vector. If ommitted, a unit vector will be returned\n * @returns {vec3} out\n */\n\nexport function random(out, scale) {\n scale = scale || 1.0;\n var r = glMatrix.RANDOM() * 2.0 * Math.PI;\n var z = glMatrix.RANDOM() * 2.0 - 1.0;\n var zScale = Math.sqrt(1.0 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n}\n/**\n * Transforms the vec3 with a mat4.\n * 4th vector component is implicitly '1'\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat4} m matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat4(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n var w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1.0;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n}\n/**\n * Transforms the vec3 with a mat3.\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyMat3} m the 3x3 matrix to transform with\n * @returns {vec3} out\n */\n\nexport function transformMat3(out, a, m) {\n var x = a[0],\n y = a[1],\n z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n}\n/**\n * Transforms the vec3 with a quat\n * Can also be used for dual quaternions. (Multiply it with the real part)\n *\n * @param {vec3} out the receiving vector\n * @param {ReadonlyVec3} a the vector to transform\n * @param {ReadonlyQuat} q quaternion to transform with\n * @returns {vec3} out\n */\n\nexport function transformQuat(out, a, q) {\n // benchmarks: https://jsperf.com/quaternion-transform-vec3-implementations-fixed\n var qx = q[0],\n qy = q[1],\n qz = q[2],\n qw = q[3];\n var x = a[0],\n y = a[1],\n z = a[2]; // var qvec = [qx, qy, qz];\n // var uv = vec3.cross([], qvec, a);\n\n var uvx = qy * z - qz * y,\n uvy = qz * x - qx * z,\n uvz = qx * y - qy * x; // var uuv = vec3.cross([], qvec, uv);\n\n var uuvx = qy * uvz - qz * uvy,\n uuvy = qz * uvx - qx * uvz,\n uuvz = qx * uvy - qy * uvx; // vec3.scale(uv, uv, 2 * w);\n\n var w2 = qw * 2;\n uvx *= w2;\n uvy *= w2;\n uvz *= w2; // vec3.scale(uuv, uuv, 2);\n\n uuvx *= 2;\n uuvy *= 2;\n uuvz *= 2; // return vec3.add(out, a, vec3.add(out, uv, uuv));\n\n out[0] = x + uvx + uuvx;\n out[1] = y + uvy + uuvy;\n out[2] = z + uvz + uuvz;\n return out;\n}\n/**\n * Rotate a 3D vector around the x-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateX(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0];\n r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);\n r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the y-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateY(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);\n r[1] = p[1];\n r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad); //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Rotate a 3D vector around the z-axis\n * @param {vec3} out The receiving vec3\n * @param {ReadonlyVec3} a The vec3 point to rotate\n * @param {ReadonlyVec3} b The origin of the rotation\n * @param {Number} rad The angle of rotation in radians\n * @returns {vec3} out\n */\n\nexport function rotateZ(out, a, b, rad) {\n var p = [],\n r = []; //Translate point to the origin\n\n p[0] = a[0] - b[0];\n p[1] = a[1] - b[1];\n p[2] = a[2] - b[2]; //perform rotation\n\n r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);\n r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);\n r[2] = p[2]; //translate to correct position\n\n out[0] = r[0] + b[0];\n out[1] = r[1] + b[1];\n out[2] = r[2] + b[2];\n return out;\n}\n/**\n * Get the angle between two 3D vectors\n * @param {ReadonlyVec3} a The first operand\n * @param {ReadonlyVec3} b The second operand\n * @returns {Number} The angle in radians\n */\n\nexport function angle(a, b) {\n var ax = a[0],\n ay = a[1],\n az = a[2],\n bx = b[0],\n by = b[1],\n bz = b[2],\n mag1 = Math.sqrt(ax * ax + ay * ay + az * az),\n mag2 = Math.sqrt(bx * bx + by * by + bz * bz),\n mag = mag1 * mag2,\n cosine = mag && dot(a, b) / mag;\n return Math.acos(Math.min(Math.max(cosine, -1), 1));\n}\n/**\n * Set the components of a vec3 to zero\n *\n * @param {vec3} out the receiving vector\n * @returns {vec3} out\n */\n\nexport function zero(out) {\n out[0] = 0.0;\n out[1] = 0.0;\n out[2] = 0.0;\n return out;\n}\n/**\n * Returns a string representation of a vector\n *\n * @param {ReadonlyVec3} a vector to represent as a string\n * @returns {String} string representation of the vector\n */\n\nexport function str(a) {\n return \"vec3(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \")\";\n}\n/**\n * Returns whether or not the vectors have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n}\n/**\n * Returns whether or not the vectors have approximately the same elements in the same position.\n *\n * @param {ReadonlyVec3} a The first vector.\n * @param {ReadonlyVec3} b The second vector.\n * @returns {Boolean} True if the vectors are equal, false otherwise.\n */\n\nexport function equals(a, b) {\n var a0 = a[0],\n a1 = a[1],\n a2 = a[2];\n var b0 = b[0],\n b1 = b[1],\n b2 = b[2];\n return Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2));\n}\n/**\n * Alias for {@link vec3.subtract}\n * @function\n */\n\nexport var sub = subtract;\n/**\n * Alias for {@link vec3.multiply}\n * @function\n */\n\nexport var mul = multiply;\n/**\n * Alias for {@link vec3.divide}\n * @function\n */\n\nexport var div = divide;\n/**\n * Alias for {@link vec3.distance}\n * @function\n */\n\nexport var dist = distance;\n/**\n * Alias for {@link vec3.squaredDistance}\n * @function\n */\n\nexport var sqrDist = squaredDistance;\n/**\n * Alias for {@link vec3.length}\n * @function\n */\n\nexport var len = length;\n/**\n * Alias for {@link vec3.squaredLength}\n * @function\n */\n\nexport var sqrLen = squaredLength;\n/**\n * Perform some operation over an array of vec3s.\n *\n * @param {Array} a the array of vectors to iterate over\n * @param {Number} stride Number of elements between the start of each vec3. If 0 assumes tightly packed\n * @param {Number} offset Number of elements to skip at the beginning of the array\n * @param {Number} count Number of vec3s to iterate over. If 0 iterates over entire array\n * @param {Function} fn Function to call for each vector in the array\n * @param {Object} [arg] additional argument to pass to fn\n * @returns {Array} a\n * @function\n */\n\nexport var forEach = function () {\n var vec = create();\n return function (a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 3;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n return a;\n };\n}();","export default function assert(condition, message) {\n if (!condition) {\n throw new Error(message || '@math.gl/web-mercator: assertion failed.');\n }\n}","import { createMat4, transformVector, clamp, log2 } from './math-utils';\nimport * as mat4 from 'gl-matrix/mat4';\nimport * as vec2 from 'gl-matrix/vec2';\nimport * as vec3 from 'gl-matrix/vec3';\nimport assert from './assert';\nconst PI = Math.PI;\nconst PI_4 = PI / 4;\nconst DEGREES_TO_RADIANS = PI / 180;\nconst RADIANS_TO_DEGREES = 180 / PI;\nconst TILE_SIZE = 512;\nconst EARTH_CIRCUMFERENCE = 40.03e6;\nexport const MAX_LATITUDE = 85.051129;\nexport const DEFAULT_ALTITUDE = 1.5;\nexport function zoomToScale(zoom) {\n return Math.pow(2, zoom);\n}\nexport function scaleToZoom(scale) {\n return log2(scale);\n}\nexport function lngLatToWorld(lngLat) {\n const [lng, lat] = lngLat;\n assert(Number.isFinite(lng));\n assert(Number.isFinite(lat) && lat >= -90 && lat <= 90, 'invalid latitude');\n const lambda2 = lng * DEGREES_TO_RADIANS;\n const phi2 = lat * DEGREES_TO_RADIANS;\n const x = TILE_SIZE * (lambda2 + PI) / (2 * PI);\n const y = TILE_SIZE * (PI + Math.log(Math.tan(PI_4 + phi2 * 0.5))) / (2 * PI);\n return [x, y];\n}\nexport function worldToLngLat(xy) {\n const [x, y] = xy;\n const lambda2 = x / TILE_SIZE * (2 * PI) - PI;\n const phi2 = 2 * (Math.atan(Math.exp(y / TILE_SIZE * (2 * PI) - PI)) - PI_4);\n return [lambda2 * RADIANS_TO_DEGREES, phi2 * RADIANS_TO_DEGREES];\n}\nexport function getMeterZoom(options) {\n const {\n latitude\n } = options;\n assert(Number.isFinite(latitude));\n const latCosine = Math.cos(latitude * DEGREES_TO_RADIANS);\n return scaleToZoom(EARTH_CIRCUMFERENCE * latCosine) - 9;\n}\nexport function unitsPerMeter(latitude) {\n const latCosine = Math.cos(latitude * DEGREES_TO_RADIANS);\n return TILE_SIZE / EARTH_CIRCUMFERENCE / latCosine;\n}\nexport function getDistanceScales(options) {\n const {\n latitude,\n longitude,\n highPrecision = false\n } = options;\n assert(Number.isFinite(latitude) && Number.isFinite(longitude));\n const worldSize = TILE_SIZE;\n const latCosine = Math.cos(latitude * DEGREES_TO_RADIANS);\n const unitsPerDegreeX = worldSize / 360;\n const unitsPerDegreeY = unitsPerDegreeX / latCosine;\n const altUnitsPerMeter = worldSize / EARTH_CIRCUMFERENCE / latCosine;\n const result = {\n unitsPerMeter: [altUnitsPerMeter, altUnitsPerMeter, altUnitsPerMeter],\n metersPerUnit: [1 / altUnitsPerMeter, 1 / altUnitsPerMeter, 1 / altUnitsPerMeter],\n unitsPerDegree: [unitsPerDegreeX, unitsPerDegreeY, altUnitsPerMeter],\n degreesPerUnit: [1 / unitsPerDegreeX, 1 / unitsPerDegreeY, 1 / altUnitsPerMeter]\n };\n if (highPrecision) {\n const latCosine2 = DEGREES_TO_RADIANS * Math.tan(latitude * DEGREES_TO_RADIANS) / latCosine;\n const unitsPerDegreeY2 = unitsPerDegreeX * latCosine2 / 2;\n const altUnitsPerDegree2 = worldSize / EARTH_CIRCUMFERENCE * latCosine2;\n const altUnitsPerMeter2 = altUnitsPerDegree2 / unitsPerDegreeY * altUnitsPerMeter;\n result.unitsPerDegree2 = [0, unitsPerDegreeY2, altUnitsPerDegree2];\n result.unitsPerMeter2 = [altUnitsPerMeter2, 0, altUnitsPerMeter2];\n }\n return result;\n}\nexport function addMetersToLngLat(lngLatZ, xyz) {\n const [longitude, latitude, z0] = lngLatZ;\n const [x, y, z] = xyz;\n const {\n unitsPerMeter,\n unitsPerMeter2\n } = getDistanceScales({\n longitude,\n latitude,\n highPrecision: true\n });\n const worldspace = lngLatToWorld(lngLatZ);\n worldspace[0] += x * (unitsPerMeter[0] + unitsPerMeter2[0] * y);\n worldspace[1] += y * (unitsPerMeter[1] + unitsPerMeter2[1] * y);\n const newLngLat = worldToLngLat(worldspace);\n const newZ = (z0 || 0) + (z || 0);\n return Number.isFinite(z0) || Number.isFinite(z) ? [newLngLat[0], newLngLat[1], newZ] : newLngLat;\n}\nexport function getViewMatrix(options) {\n const {\n height,\n pitch,\n bearing,\n altitude,\n scale,\n center\n } = options;\n const vm = createMat4();\n mat4.translate(vm, vm, [0, 0, -altitude]);\n mat4.rotateX(vm, vm, -pitch * DEGREES_TO_RADIANS);\n mat4.rotateZ(vm, vm, bearing * DEGREES_TO_RADIANS);\n const relativeScale = scale / height;\n mat4.scale(vm, vm, [relativeScale, relativeScale, relativeScale]);\n if (center) {\n mat4.translate(vm, vm, vec3.negate([], center));\n }\n return vm;\n}\nexport function getProjectionParameters(options) {\n const {\n width,\n height,\n altitude,\n pitch = 0,\n offset,\n center,\n scale,\n nearZMultiplier = 1,\n farZMultiplier = 1\n } = options;\n let {\n fovy = altitudeToFovy(DEFAULT_ALTITUDE)\n } = options;\n if (altitude !== undefined) {\n fovy = altitudeToFovy(altitude);\n }\n const fovRadians = fovy * DEGREES_TO_RADIANS;\n const pitchRadians = pitch * DEGREES_TO_RADIANS;\n const focalDistance = fovyToAltitude(fovy);\n let cameraToSeaLevelDistance = focalDistance;\n if (center) {\n cameraToSeaLevelDistance += center[2] * scale / Math.cos(pitchRadians) / height;\n }\n const fovAboveCenter = fovRadians * (0.5 + (offset ? offset[1] : 0) / height);\n const topHalfSurfaceDistance = Math.sin(fovAboveCenter) * cameraToSeaLevelDistance / Math.sin(clamp(Math.PI / 2 - pitchRadians - fovAboveCenter, 0.01, Math.PI - 0.01));\n const furthestDistance = Math.sin(pitchRadians) * topHalfSurfaceDistance + cameraToSeaLevelDistance;\n const horizonDistance = cameraToSeaLevelDistance * 10;\n const farZ = Math.min(furthestDistance * farZMultiplier, horizonDistance);\n return {\n fov: fovRadians,\n aspect: width / height,\n focalDistance,\n near: nearZMultiplier,\n far: farZ\n };\n}\nexport function getProjectionMatrix(options) {\n const {\n fov,\n aspect,\n near,\n far\n } = getProjectionParameters(options);\n const projectionMatrix = mat4.perspective([], fov, aspect, near, far);\n return projectionMatrix;\n}\nexport function altitudeToFovy(altitude) {\n return 2 * Math.atan(0.5 / altitude) * RADIANS_TO_DEGREES;\n}\nexport function fovyToAltitude(fovy) {\n return 0.5 / Math.tan(0.5 * fovy * DEGREES_TO_RADIANS);\n}\nexport function worldToPixels(xyz, pixelProjectionMatrix) {\n const [x, y, z = 0] = xyz;\n assert(Number.isFinite(x) && Number.isFinite(y) && Number.isFinite(z));\n return transformVector(pixelProjectionMatrix, [x, y, z, 1]);\n}\nexport function pixelsToWorld(xyz, pixelUnprojectionMatrix) {\n let targetZ = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n const [x, y, z] = xyz;\n assert(Number.isFinite(x) && Number.isFinite(y), 'invalid pixel coordinate');\n if (Number.isFinite(z)) {\n const coord = transformVector(pixelUnprojectionMatrix, [x, y, z, 1]);\n return coord;\n }\n const coord0 = transformVector(pixelUnprojectionMatrix, [x, y, 0, 1]);\n const coord1 = transformVector(pixelUnprojectionMatrix, [x, y, 1, 1]);\n const z0 = coord0[2];\n const z1 = coord1[2];\n const t = z0 === z1 ? 0 : ((targetZ || 0) - z0) / (z1 - z0);\n return vec2.lerp([], coord0, coord1, t);\n}","import assert from './assert';\nimport { log2, clamp } from './math-utils';\nimport { MAX_LATITUDE, lngLatToWorld, worldToLngLat } from './web-mercator-utils';\nexport default function fitBounds(options) {\n const {\n width,\n height,\n bounds,\n minExtent = 0,\n maxZoom = 24,\n offset = [0, 0]\n } = options;\n const [[west, south], [east, north]] = bounds;\n const padding = getPaddingObject(options.padding);\n const nw = lngLatToWorld([west, clamp(north, -MAX_LATITUDE, MAX_LATITUDE)]);\n const se = lngLatToWorld([east, clamp(south, -MAX_LATITUDE, MAX_LATITUDE)]);\n const size = [Math.max(Math.abs(se[0] - nw[0]), minExtent), Math.max(Math.abs(se[1] - nw[1]), minExtent)];\n const targetSize = [width - padding.left - padding.right - Math.abs(offset[0]) * 2, height - padding.top - padding.bottom - Math.abs(offset[1]) * 2];\n assert(targetSize[0] > 0 && targetSize[1] > 0);\n const scaleX = targetSize[0] / size[0];\n const scaleY = targetSize[1] / size[1];\n const offsetX = (padding.right - padding.left) / 2 / scaleX;\n const offsetY = (padding.top - padding.bottom) / 2 / scaleY;\n const center = [(se[0] + nw[0]) / 2 + offsetX, (se[1] + nw[1]) / 2 + offsetY];\n const centerLngLat = worldToLngLat(center);\n const zoom = Math.min(maxZoom, log2(Math.abs(Math.min(scaleX, scaleY))));\n assert(Number.isFinite(zoom));\n return {\n longitude: centerLngLat[0],\n latitude: centerLngLat[1],\n zoom\n };\n}\nfunction getPaddingObject() {\n let padding = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (typeof padding === 'number') {\n return {\n top: padding,\n bottom: padding,\n left: padding,\n right: padding\n };\n }\n assert(Number.isFinite(padding.top) && Number.isFinite(padding.bottom) && Number.isFinite(padding.left) && Number.isFinite(padding.right));\n return padding;\n}","import { worldToLngLat } from './web-mercator-utils';\nimport * as vec2 from 'gl-matrix/vec2';\nimport { transformVector } from './math-utils';\nconst DEGREES_TO_RADIANS = Math.PI / 180;\nexport default function getBounds(viewport) {\n let z = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n const {\n width,\n height,\n unproject\n } = viewport;\n const unprojectOps = {\n targetZ: z\n };\n const bottomLeft = unproject([0, height], unprojectOps);\n const bottomRight = unproject([width, height], unprojectOps);\n let topLeft;\n let topRight;\n const halfFov = viewport.fovy ? 0.5 * viewport.fovy * DEGREES_TO_RADIANS : Math.atan(0.5 / viewport.altitude);\n const angleToGround = (90 - viewport.pitch) * DEGREES_TO_RADIANS;\n if (halfFov > angleToGround - 0.01) {\n topLeft = unprojectOnFarPlane(viewport, 0, z);\n topRight = unprojectOnFarPlane(viewport, width, z);\n } else {\n topLeft = unproject([0, 0], unprojectOps);\n topRight = unproject([width, 0], unprojectOps);\n }\n return [bottomLeft, bottomRight, topRight, topLeft];\n}\nfunction unprojectOnFarPlane(viewport, x, targetZ) {\n const {\n pixelUnprojectionMatrix\n } = viewport;\n const coord0 = transformVector(pixelUnprojectionMatrix, [x, 0, 1, 1]);\n const coord1 = transformVector(pixelUnprojectionMatrix, [x, viewport.height, 1, 1]);\n const z = targetZ * viewport.distanceScales.unitsPerMeter[2];\n const t = (z - coord0[2]) / (coord1[2] - coord0[2]);\n const coord = vec2.lerp([], coord0, coord1, t);\n const result = worldToLngLat(coord);\n result.push(targetZ);\n return result;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { createMat4 } from './math-utils';\nimport { zoomToScale, pixelsToWorld, lngLatToWorld, worldToLngLat, worldToPixels, altitudeToFovy, fovyToAltitude, DEFAULT_ALTITUDE, getProjectionMatrix, getDistanceScales, getViewMatrix } from './web-mercator-utils';\nimport fitBounds from './fit-bounds';\nimport getBounds from './get-bounds';\nimport * as mat4 from 'gl-matrix/mat4';\nimport * as vec2 from 'gl-matrix/vec2';\nimport * as vec3 from 'gl-matrix/vec3';\nexport default class WebMercatorViewport {\n constructor() {\n var _this = this;\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n width: 1,\n height: 1\n };\n _defineProperty(this, \"latitude\", void 0);\n _defineProperty(this, \"longitude\", void 0);\n _defineProperty(this, \"zoom\", void 0);\n _defineProperty(this, \"pitch\", void 0);\n _defineProperty(this, \"bearing\", void 0);\n _defineProperty(this, \"altitude\", void 0);\n _defineProperty(this, \"fovy\", void 0);\n _defineProperty(this, \"meterOffset\", void 0);\n _defineProperty(this, \"center\", void 0);\n _defineProperty(this, \"width\", void 0);\n _defineProperty(this, \"height\", void 0);\n _defineProperty(this, \"scale\", void 0);\n _defineProperty(this, \"distanceScales\", void 0);\n _defineProperty(this, \"viewMatrix\", void 0);\n _defineProperty(this, \"projectionMatrix\", void 0);\n _defineProperty(this, \"viewProjectionMatrix\", void 0);\n _defineProperty(this, \"pixelProjectionMatrix\", void 0);\n _defineProperty(this, \"pixelUnprojectionMatrix\", void 0);\n _defineProperty(this, \"equals\", viewport => {\n if (!(viewport instanceof WebMercatorViewport)) {\n return false;\n }\n return viewport.width === this.width && viewport.height === this.height && mat4.equals(viewport.projectionMatrix, this.projectionMatrix) && mat4.equals(viewport.viewMatrix, this.viewMatrix);\n });\n _defineProperty(this, \"project\", function (lngLatZ) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n topLeft = true\n } = options;\n const worldPosition = _this.projectPosition(lngLatZ);\n const coord = worldToPixels(worldPosition, _this.pixelProjectionMatrix);\n const [x, y] = coord;\n const y2 = topLeft ? y : _this.height - y;\n return lngLatZ.length === 2 ? [x, y2] : [x, y2, coord[2]];\n });\n _defineProperty(this, \"unproject\", function (xyz) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n topLeft = true,\n targetZ = undefined\n } = options;\n const [x, y, z] = xyz;\n const y2 = topLeft ? y : _this.height - y;\n const targetZWorld = targetZ && targetZ * _this.distanceScales.unitsPerMeter[2];\n const coord = pixelsToWorld([x, y2, z], _this.pixelUnprojectionMatrix, targetZWorld);\n const [X, Y, Z] = _this.unprojectPosition(coord);\n if (Number.isFinite(z)) {\n return [X, Y, Z];\n }\n return Number.isFinite(targetZ) ? [X, Y, targetZ] : [X, Y];\n });\n _defineProperty(this, \"projectPosition\", xyz => {\n const [X, Y] = lngLatToWorld(xyz);\n const Z = (xyz[2] || 0) * this.distanceScales.unitsPerMeter[2];\n return [X, Y, Z];\n });\n _defineProperty(this, \"unprojectPosition\", xyz => {\n const [X, Y] = worldToLngLat(xyz);\n const Z = (xyz[2] || 0) * this.distanceScales.metersPerUnit[2];\n return [X, Y, Z];\n });\n let {\n width,\n height,\n altitude = null,\n fovy = null\n } = props;\n const {\n latitude = 0,\n longitude = 0,\n zoom = 0,\n pitch = 0,\n bearing = 0,\n position = null,\n nearZMultiplier = 0.02,\n farZMultiplier = 1.01\n } = props;\n width = width || 1;\n height = height || 1;\n if (fovy === null && altitude === null) {\n altitude = DEFAULT_ALTITUDE;\n fovy = altitudeToFovy(altitude);\n } else if (fovy === null) {\n fovy = altitudeToFovy(altitude);\n } else if (altitude === null) {\n altitude = fovyToAltitude(fovy);\n }\n const scale = zoomToScale(zoom);\n altitude = Math.max(0.75, altitude);\n const distanceScales = getDistanceScales({\n longitude,\n latitude\n });\n const center = lngLatToWorld([longitude, latitude]);\n center.push(0);\n if (position) {\n vec3.add(center, center, vec3.mul([], position, distanceScales.unitsPerMeter));\n }\n this.projectionMatrix = getProjectionMatrix({\n width,\n height,\n scale,\n center,\n pitch,\n fovy,\n nearZMultiplier,\n farZMultiplier\n });\n this.viewMatrix = getViewMatrix({\n height,\n scale,\n center,\n pitch,\n bearing,\n altitude\n });\n this.width = width;\n this.height = height;\n this.scale = scale;\n this.latitude = latitude;\n this.longitude = longitude;\n this.zoom = zoom;\n this.pitch = pitch;\n this.bearing = bearing;\n this.altitude = altitude;\n this.fovy = fovy;\n this.center = center;\n this.meterOffset = position || [0, 0, 0];\n this.distanceScales = distanceScales;\n this._initMatrices();\n Object.freeze(this);\n }\n _initMatrices() {\n const {\n width,\n height,\n projectionMatrix,\n viewMatrix\n } = this;\n const vpm = createMat4();\n mat4.multiply(vpm, vpm, projectionMatrix);\n mat4.multiply(vpm, vpm, viewMatrix);\n this.viewProjectionMatrix = vpm;\n const m = createMat4();\n mat4.scale(m, m, [width / 2, -height / 2, 1]);\n mat4.translate(m, m, [1, -1, 0]);\n mat4.multiply(m, m, vpm);\n const mInverse = mat4.invert(createMat4(), m);\n if (!mInverse) {\n throw new Error('Pixel project matrix not invertible');\n }\n this.pixelProjectionMatrix = m;\n this.pixelUnprojectionMatrix = mInverse;\n }\n projectFlat(lngLat) {\n return lngLatToWorld(lngLat);\n }\n unprojectFlat(xy) {\n return worldToLngLat(xy);\n }\n getMapCenterByLngLatPosition(_ref) {\n let {\n lngLat,\n pos\n } = _ref;\n const fromLocation = pixelsToWorld(pos, this.pixelUnprojectionMatrix);\n const toLocation = lngLatToWorld(lngLat);\n const translate = vec2.add([], toLocation, vec2.negate([], fromLocation));\n const newCenter = vec2.add([], this.center, translate);\n return worldToLngLat(newCenter);\n }\n fitBounds(bounds) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n width,\n height\n } = this;\n const {\n longitude,\n latitude,\n zoom\n } = fitBounds(Object.assign({\n width,\n height,\n bounds\n }, options));\n return new WebMercatorViewport({\n width,\n height,\n longitude,\n latitude,\n zoom\n });\n }\n getBounds(options) {\n const corners = this.getBoundingRegion(options);\n const west = Math.min(...corners.map(p => p[0]));\n const east = Math.max(...corners.map(p => p[0]));\n const south = Math.min(...corners.map(p => p[1]));\n const north = Math.max(...corners.map(p => p[1]));\n return [[west, south], [east, north]];\n }\n getBoundingRegion() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return getBounds(this, options.z || 0);\n }\n getLocationAtPoint(_ref2) {\n let {\n lngLat,\n pos\n } = _ref2;\n return this.getMapCenterByLngLatPosition({\n lngLat,\n pos\n });\n }\n}","import { lerp } from './math-utils';\nimport { scaleToZoom, zoomToScale, lngLatToWorld, worldToLngLat } from './web-mercator-utils';\nimport * as vec2 from 'gl-matrix/vec2';\nconst EPSILON = 0.01;\nconst VIEWPORT_TRANSITION_PROPS = ['longitude', 'latitude', 'zoom'];\nconst DEFAULT_OPTS = {\n curve: 1.414,\n speed: 1.2\n};\nexport default function flyToViewport(startProps, endProps, t, options) {\n const {\n startZoom,\n startCenterXY,\n uDelta,\n w0,\n u1,\n S,\n rho,\n rho2,\n r0\n } = getFlyToTransitionParams(startProps, endProps, options);\n if (u1 < EPSILON) {\n const viewport = {};\n for (const key of VIEWPORT_TRANSITION_PROPS) {\n const startValue = startProps[key];\n const endValue = endProps[key];\n viewport[key] = lerp(startValue, endValue, t);\n }\n return viewport;\n }\n const s = t * S;\n const w = Math.cosh(r0) / Math.cosh(r0 + rho * s);\n const u = w0 * ((Math.cosh(r0) * Math.tanh(r0 + rho * s) - Math.sinh(r0)) / rho2) / u1;\n const scaleIncrement = 1 / w;\n const newZoom = startZoom + scaleToZoom(scaleIncrement);\n const newCenterWorld = vec2.scale([], uDelta, u);\n vec2.add(newCenterWorld, newCenterWorld, startCenterXY);\n const newCenter = worldToLngLat(newCenterWorld);\n return {\n longitude: newCenter[0],\n latitude: newCenter[1],\n zoom: newZoom\n };\n}\nexport function getFlyToDuration(startProps, endProps, options) {\n const opts = {\n ...DEFAULT_OPTS,\n ...options\n };\n const {\n screenSpeed,\n speed,\n maxDuration\n } = opts;\n const {\n S,\n rho\n } = getFlyToTransitionParams(startProps, endProps, opts);\n const length = 1000 * S;\n let duration;\n if (Number.isFinite(screenSpeed)) {\n duration = length / (screenSpeed / rho);\n } else {\n duration = length / speed;\n }\n return Number.isFinite(maxDuration) && duration > maxDuration ? 0 : duration;\n}\nfunction getFlyToTransitionParams(startProps, endProps, opts) {\n opts = Object.assign({}, DEFAULT_OPTS, opts);\n const rho = opts.curve;\n const startZoom = startProps.zoom;\n const startCenter = [startProps.longitude, startProps.latitude];\n const startScale = zoomToScale(startZoom);\n const endZoom = endProps.zoom;\n const endCenter = [endProps.longitude, endProps.latitude];\n const scale = zoomToScale(endZoom - startZoom);\n const startCenterXY = lngLatToWorld(startCenter);\n const endCenterXY = lngLatToWorld(endCenter);\n const uDelta = vec2.sub([], endCenterXY, startCenterXY);\n const w0 = Math.max(startProps.width, startProps.height);\n const w1 = w0 / scale;\n const u1 = vec2.length(uDelta) * startScale;\n const _u1 = Math.max(u1, EPSILON);\n const rho2 = rho * rho;\n const b0 = (w1 * w1 - w0 * w0 + rho2 * rho2 * _u1 * _u1) / (2 * w0 * rho2 * _u1);\n const b1 = (w1 * w1 - w0 * w0 - rho2 * rho2 * _u1 * _u1) / (2 * w1 * rho2 * _u1);\n const r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0);\n const r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n const S = (r1 - r0) / rho;\n return {\n startZoom,\n startCenterXY,\n uDelta,\n w0,\n u1,\n S,\n rho,\n rho2,\n r0,\n r1\n };\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n function getIndex(arr, key) {\n var result = -1;\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n return true;\n }\n return false;\n });\n return result;\n }\n return (/** @class */function () {\n function class_1() {\n this.__entries__ = [];\n }\n Object.defineProperty(class_1.prototype, \"size\", {\n /**\r\n * @returns {boolean}\r\n */\n get: function () {\n return this.__entries__.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n class_1.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n return entry && entry[1];\n };\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n class_1.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n class_1.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n if (~index) {\n entries.splice(index, 1);\n }\n };\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n class_1.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n /**\r\n * @returns {void}\r\n */\n class_1.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n class_1.prototype.forEach = function (callback, ctx) {\n if (ctx === void 0) {\n ctx = null;\n }\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\n var entry = _a[_i];\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n return class_1;\n }()\n );\n}();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\nvar global$1 = function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n }\n // eslint-disable-next-line no-new-func\n return Function('return this')();\n}();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\nvar requestAnimationFrame$1 = function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n return function (callback) {\n return setTimeout(function () {\n return callback(Date.now());\n }, 1000 / 60);\n };\n}();\n\n// Defines minimum timeout before adding a trailing call.\nvar trailingTimeout = 2;\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\nfunction throttle(callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n callback();\n }\n if (trailingCall) {\n proxy();\n }\n }\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n function proxy() {\n var timeStamp = Date.now();\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n }\n // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n setTimeout(timeoutCallback, delay);\n }\n lastCallTime = timeStamp;\n }\n return proxy;\n}\n\n// Minimum delay before invoking the update of observers.\nvar REFRESH_DELAY = 20;\n// A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\n// Check if MutationObserver is available.\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\nvar ResizeObserverController = /** @class */function () {\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\n function ResizeObserverController() {\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\n this.connected_ = false;\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\n this.mutationEventsAdded_ = false;\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n this.mutationsObserver_ = null;\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\n this.observers_ = [];\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n }\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n ResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n }\n // Add listeners if they haven't been added yet.\n if (!this.connected_) {\n this.connect_();\n }\n };\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\n ResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer);\n // Remove observer if it's present in registry.\n if (~index) {\n observers.splice(index, 1);\n }\n // Remove listeners if controller has no connected observers.\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n };\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\n ResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_();\n // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n if (changesDetected) {\n this.refresh();\n }\n };\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\n ResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n });\n // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n activeObservers.forEach(function (observer) {\n return observer.broadcastActive();\n });\n return activeObservers.length > 0;\n };\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n ResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n }\n // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n document.addEventListener('transitionend', this.onTransitionEnd_);\n window.addEventListener('resize', this.refresh);\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n this.mutationEventsAdded_ = true;\n }\n this.connected_ = true;\n };\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\n ResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n };\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\n var _b = _a.propertyName,\n propertyName = _b === void 0 ? '' : _b;\n // Detect whether transition may affect dimensions of an element.\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n if (isReflowProperty) {\n this.refresh();\n }\n };\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\n ResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n return this.instance_;\n };\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n ResizeObserverController.instance_ = null;\n return ResizeObserverController;\n}();\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\nvar defineConfigurable = function (target, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var key = _a[_i];\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n return target;\n};\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\nvar getWindowOf = function (target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\n // Return the local global object if it's not possible extract one from\n // provided element.\n return ownerGlobal || global$1;\n};\n\n// Placeholder of an empty content rectangle.\nvar emptyRect = createRectInit(0, 0, 0, 0);\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\nfunction getBordersSize(styles) {\n var positions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n positions[_i - 1] = arguments[_i];\n }\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n return size + toFloat(value);\n }, 0);\n}\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n var value = styles['padding-' + position];\n paddings[position] = toFloat(value);\n }\n return paddings;\n}\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth,\n clientHeight = target.clientHeight;\n // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom;\n // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n var width = toFloat(styles.width),\n height = toFloat(styles.height);\n // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n }\n // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the itself neither has\n // rendered scroll bars nor it can be clipped.\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\n // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nvar isSVGGraphicsElement = function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) {\n return target instanceof getWindowOf(target).SVGGraphicsElement;\n };\n }\n // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n return function (target) {\n return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';\n };\n}();\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n return getHTMLElementContentRect(target);\n}\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\nfunction createReadOnlyRect(_a) {\n var x = _a.x,\n y = _a.y,\n width = _a.width,\n height = _a.height;\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype);\n // Rectangle's properties are not writable and non-enumerable.\n defineConfigurable(rect, {\n x: x,\n y: y,\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n return rect;\n}\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\nfunction createRectInit(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\nvar ResizeObservation = /** @class */function () {\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\n function ResizeObservation(target) {\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastWidth = 0;\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\n this.broadcastHeight = 0;\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n this.target = target;\n }\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n ResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n this.contentRect_ = rect;\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n };\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\n ResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n return rect;\n };\n return ResizeObservation;\n}();\nvar ResizeObserverEntry = /** @class */function () {\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\n function ResizeObserverEntry(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit);\n // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n defineConfigurable(this, {\n target: target,\n contentRect: contentRect\n });\n }\n return ResizeObserverEntry;\n}();\nvar ResizeObserverSPI = /** @class */function () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\n function ResizeObserverSPI(callback, controller, callbackCtx) {\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\n this.activeObservations_ = [];\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\n this.observations_ = new MapShim();\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n }\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n ResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n // Do nothing if current environment doesn't have the Element interface.\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n var observations = this.observations_;\n // Do nothing if element is already being observed.\n if (observations.has(target)) {\n return;\n }\n observations.set(target, new ResizeObservation(target));\n this.controller_.addObserver(this);\n // Force the update of observations.\n this.controller_.refresh();\n };\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\n ResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n // Do nothing if current environment doesn't have the Element interface.\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n var observations = this.observations_;\n // Do nothing if element is not being observed.\n if (!observations.has(target)) {\n return;\n }\n observations.delete(target);\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n };\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\n ResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n };\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\n ResizeObserverSPI.prototype.gatherActive = function () {\n var _this = this;\n this.clearActive();\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n _this.activeObservations_.push(observation);\n }\n });\n };\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\n ResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n var ctx = this.callbackCtx_;\n // Create ResizeObserverEntry instance for every active observation.\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n };\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\n ResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n };\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\n ResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n };\n return ResizeObserverSPI;\n}();\n\n// Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\nvar ResizeObserver = /** @class */function () {\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\n function ResizeObserver(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n observers.set(this, observer);\n }\n return ResizeObserver;\n}();\n// Expose public methods of ResizeObserver.\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n var _a;\n return (_a = observers.get(this))[method].apply(_a, arguments);\n };\n});\nvar index = function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n return ResizeObserver;\n}();\nexport default index;","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","var window_ = typeof window !== 'undefined' ? window : global;\nvar global_ = typeof global !== 'undefined' ? global : window;\nvar document_ = typeof document !== 'undefined' ? document : {};\nexport { window_ as window, global_ as global, document_ as document };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nvar refProps = ['type', 'source', 'source-layer', 'minzoom', 'maxzoom', 'filter', 'layout'];\nexport function normalizeStyle(style) {\n if (!style) {\n return null;\n }\n if (typeof style === 'string') {\n return style;\n }\n if (style.toJS) {\n style = style.toJS();\n }\n var layerIndex = {};\n var _iterator = _createForOfIteratorHelper(style.layers),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var layer = _step.value;\n layerIndex[layer.id] = layer;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var layers = style.layers.map(function (layer) {\n var layerRef = layerIndex[layer.ref];\n var normalizedLayer = null;\n if ('interactive' in layer) {\n normalizedLayer = _objectSpread({}, layer);\n delete normalizedLayer.interactive;\n }\n if (layerRef) {\n normalizedLayer = normalizedLayer || _objectSpread({}, layer);\n delete normalizedLayer.ref;\n var _iterator2 = _createForOfIteratorHelper(refProps),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var propName = _step2.value;\n if (propName in layerRef) {\n normalizedLayer[propName] = layerRef[propName];\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n return normalizedLayer || layer;\n });\n return _objectSpread(_objectSpread({}, style), {}, {\n layers: layers\n });\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as PropTypes from 'prop-types';\nimport { document } from '../utils/globals';\nimport { normalizeStyle } from '../utils/style-utils';\nfunction noop() {}\nfunction defaultOnError(event) {\n if (event) {\n console.error(event.error);\n }\n}\nvar propTypes = {\n container: PropTypes.object,\n gl: PropTypes.object,\n mapboxApiAccessToken: PropTypes.string,\n mapboxApiUrl: PropTypes.string,\n attributionControl: PropTypes.bool,\n preserveDrawingBuffer: PropTypes.bool,\n reuseMaps: PropTypes.bool,\n transformRequest: PropTypes.func,\n mapOptions: PropTypes.object,\n mapStyle: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n preventStyleDiffing: PropTypes.bool,\n visible: PropTypes.bool,\n asyncRender: PropTypes.bool,\n onLoad: PropTypes.func,\n onError: PropTypes.func,\n width: PropTypes.number,\n height: PropTypes.number,\n viewState: PropTypes.object,\n longitude: PropTypes.number,\n latitude: PropTypes.number,\n zoom: PropTypes.number,\n bearing: PropTypes.number,\n pitch: PropTypes.number,\n altitude: PropTypes.number\n};\nvar defaultProps = {\n container: document.body,\n mapboxApiAccessToken: getAccessToken(),\n mapboxApiUrl: 'https://api.mapbox.com',\n preserveDrawingBuffer: false,\n attributionControl: true,\n reuseMaps: false,\n mapOptions: {},\n mapStyle: 'mapbox://styles/mapbox/light-v8',\n preventStyleDiffing: false,\n visible: true,\n asyncRender: false,\n onLoad: noop,\n onError: defaultOnError,\n width: 0,\n height: 0,\n longitude: 0,\n latitude: 0,\n zoom: 0,\n bearing: 0,\n pitch: 0,\n altitude: 1.5\n};\nexport function getAccessToken() {\n var accessToken = null;\n if (typeof window !== 'undefined' && window.location) {\n var match = window.location.search.match(/access_token=([^&\\/]*)/);\n accessToken = match && match[1];\n }\n if (!accessToken && typeof process !== 'undefined') {\n accessToken = accessToken || process.env.MapboxAccessToken || process.env.REACT_APP_MAPBOX_ACCESS_TOKEN;\n }\n return accessToken || 'no-token';\n}\nfunction checkPropTypes(props) {\n var component = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'component';\n if (props.debug) {\n PropTypes.checkPropTypes(propTypes, props, 'prop', component);\n }\n}\nvar Mapbox = function () {\n function Mapbox(props) {\n var _this = this;\n _classCallCheck(this, Mapbox);\n _defineProperty(this, \"props\", defaultProps);\n _defineProperty(this, \"width\", 0);\n _defineProperty(this, \"height\", 0);\n _defineProperty(this, \"_fireLoadEvent\", function () {\n _this.props.onLoad({\n type: 'load',\n target: _this._map\n });\n });\n _defineProperty(this, \"_handleError\", function (event) {\n _this.props.onError(event);\n });\n if (!props.mapboxgl) {\n throw new Error('Mapbox not available');\n }\n this.mapboxgl = props.mapboxgl;\n if (!Mapbox.initialized) {\n Mapbox.initialized = true;\n this._checkStyleSheet(this.mapboxgl.version);\n }\n this._initialize(props);\n }\n _createClass(Mapbox, [{\n key: \"finalize\",\n value: function finalize() {\n this._destroy();\n return this;\n }\n }, {\n key: \"setProps\",\n value: function setProps(props) {\n this._update(this.props, props);\n return this;\n }\n }, {\n key: \"redraw\",\n value: function redraw() {\n var map = this._map;\n if (map.style) {\n if (map._frame) {\n map._frame.cancel();\n map._frame = null;\n }\n map._render();\n }\n }\n }, {\n key: \"getMap\",\n value: function getMap() {\n return this._map;\n }\n }, {\n key: \"_reuse\",\n value: function _reuse(props) {\n this._map = Mapbox.savedMap;\n var oldContainer = this._map.getContainer();\n var newContainer = props.container;\n newContainer.classList.add('mapboxgl-map');\n while (oldContainer.childNodes.length > 0) {\n newContainer.appendChild(oldContainer.childNodes[0]);\n }\n this._map._container = newContainer;\n Mapbox.savedMap = null;\n if (props.mapStyle) {\n this._map.setStyle(normalizeStyle(props.mapStyle), {\n diff: false\n });\n }\n if (this._map.isStyleLoaded()) {\n this._fireLoadEvent();\n } else {\n this._map.once('styledata', this._fireLoadEvent);\n }\n }\n }, {\n key: \"_create\",\n value: function _create(props) {\n if (props.reuseMaps && Mapbox.savedMap) {\n this._reuse(props);\n } else {\n if (props.gl) {\n var getContext = HTMLCanvasElement.prototype.getContext;\n HTMLCanvasElement.prototype.getContext = function () {\n HTMLCanvasElement.prototype.getContext = getContext;\n return props.gl;\n };\n }\n var mapOptions = {\n container: props.container,\n center: [0, 0],\n zoom: 8,\n pitch: 0,\n bearing: 0,\n maxZoom: 24,\n style: normalizeStyle(props.mapStyle),\n interactive: false,\n trackResize: false,\n attributionControl: props.attributionControl,\n preserveDrawingBuffer: props.preserveDrawingBuffer\n };\n if (props.transformRequest) {\n mapOptions.transformRequest = props.transformRequest;\n }\n this._map = new this.mapboxgl.Map(Object.assign({}, mapOptions, props.mapOptions));\n this._map.once('load', this._fireLoadEvent);\n this._map.on('error', this._handleError);\n }\n return this;\n }\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n if (!this._map) {\n return;\n }\n if (this.props.reuseMaps && !Mapbox.savedMap) {\n Mapbox.savedMap = this._map;\n this._map.off('load', this._fireLoadEvent);\n this._map.off('error', this._handleError);\n this._map.off('styledata', this._fireLoadEvent);\n } else {\n this._map.remove();\n }\n this._map = null;\n }\n }, {\n key: \"_initialize\",\n value: function _initialize(props) {\n var _this2 = this;\n props = Object.assign({}, defaultProps, props);\n checkPropTypes(props, 'Mapbox');\n this.mapboxgl.accessToken = props.mapboxApiAccessToken || defaultProps.mapboxApiAccessToken;\n this.mapboxgl.baseApiUrl = props.mapboxApiUrl;\n this._create(props);\n var _props = props,\n container = _props.container;\n Object.defineProperty(container, 'offsetWidth', {\n configurable: true,\n get: function get() {\n return _this2.width;\n }\n });\n Object.defineProperty(container, 'clientWidth', {\n configurable: true,\n get: function get() {\n return _this2.width;\n }\n });\n Object.defineProperty(container, 'offsetHeight', {\n configurable: true,\n get: function get() {\n return _this2.height;\n }\n });\n Object.defineProperty(container, 'clientHeight', {\n configurable: true,\n get: function get() {\n return _this2.height;\n }\n });\n var canvas = this._map.getCanvas();\n if (canvas) {\n canvas.style.outline = 'none';\n }\n this._updateMapViewport({}, props);\n this._updateMapSize({}, props);\n this.props = props;\n }\n }, {\n key: \"_update\",\n value: function _update(oldProps, newProps) {\n if (!this._map) {\n return;\n }\n newProps = Object.assign({}, this.props, newProps);\n checkPropTypes(newProps, 'Mapbox');\n var viewportChanged = this._updateMapViewport(oldProps, newProps);\n var sizeChanged = this._updateMapSize(oldProps, newProps);\n this._updateMapStyle(oldProps, newProps);\n if (!newProps.asyncRender && (viewportChanged || sizeChanged)) {\n this.redraw();\n }\n this.props = newProps;\n }\n }, {\n key: \"_updateMapStyle\",\n value: function _updateMapStyle(oldProps, newProps) {\n var styleChanged = oldProps.mapStyle !== newProps.mapStyle;\n if (styleChanged) {\n this._map.setStyle(normalizeStyle(newProps.mapStyle), {\n diff: !newProps.preventStyleDiffing\n });\n }\n }\n }, {\n key: \"_updateMapSize\",\n value: function _updateMapSize(oldProps, newProps) {\n var sizeChanged = oldProps.width !== newProps.width || oldProps.height !== newProps.height;\n if (sizeChanged) {\n this.width = newProps.width;\n this.height = newProps.height;\n this._map.resize();\n }\n return sizeChanged;\n }\n }, {\n key: \"_updateMapViewport\",\n value: function _updateMapViewport(oldProps, newProps) {\n var oldViewState = this._getViewState(oldProps);\n var newViewState = this._getViewState(newProps);\n var viewportChanged = newViewState.latitude !== oldViewState.latitude || newViewState.longitude !== oldViewState.longitude || newViewState.zoom !== oldViewState.zoom || newViewState.pitch !== oldViewState.pitch || newViewState.bearing !== oldViewState.bearing || newViewState.altitude !== oldViewState.altitude;\n if (viewportChanged) {\n this._map.jumpTo(this._viewStateToMapboxProps(newViewState));\n if (newViewState.altitude !== oldViewState.altitude) {\n this._map.transform.altitude = newViewState.altitude;\n }\n }\n return viewportChanged;\n }\n }, {\n key: \"_getViewState\",\n value: function _getViewState(props) {\n var _ref = props.viewState || props,\n longitude = _ref.longitude,\n latitude = _ref.latitude,\n zoom = _ref.zoom,\n _ref$pitch = _ref.pitch,\n pitch = _ref$pitch === void 0 ? 0 : _ref$pitch,\n _ref$bearing = _ref.bearing,\n bearing = _ref$bearing === void 0 ? 0 : _ref$bearing,\n _ref$altitude = _ref.altitude,\n altitude = _ref$altitude === void 0 ? 1.5 : _ref$altitude;\n return {\n longitude: longitude,\n latitude: latitude,\n zoom: zoom,\n pitch: pitch,\n bearing: bearing,\n altitude: altitude\n };\n }\n }, {\n key: \"_checkStyleSheet\",\n value: function _checkStyleSheet() {\n var mapboxVersion = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '0.47.0';\n if (typeof document === 'undefined') {\n return;\n }\n try {\n var testElement = document.createElement('div');\n testElement.className = 'mapboxgl-map';\n testElement.style.display = 'none';\n document.body.appendChild(testElement);\n var isCssLoaded = window.getComputedStyle(testElement).position !== 'static';\n if (!isCssLoaded) {\n var link = document.createElement('link');\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('type', 'text/css');\n link.setAttribute('href', \"https://api.tiles.mapbox.com/mapbox-gl-js/v\".concat(mapboxVersion, \"/mapbox-gl.css\"));\n document.head.appendChild(link);\n }\n } catch (error) {}\n }\n }, {\n key: \"_viewStateToMapboxProps\",\n value: function _viewStateToMapboxProps(viewState) {\n return {\n center: [viewState.longitude, viewState.latitude],\n zoom: viewState.zoom,\n bearing: viewState.bearing,\n pitch: viewState.pitch\n };\n }\n }]);\n return Mapbox;\n}();\n_defineProperty(Mapbox, \"initialized\", false);\n_defineProperty(Mapbox, \"propTypes\", propTypes);\n_defineProperty(Mapbox, \"defaultProps\", defaultProps);\n_defineProperty(Mapbox, \"savedMap\", null);\nexport { Mapbox as default };","var EPSILON = 1e-7;\nfunction isArray(value) {\n return Array.isArray(value) || ArrayBuffer.isView(value);\n}\nexport function equals(a, b) {\n if (a === b) {\n return true;\n }\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; ++i) {\n if (!equals(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n return Math.abs(a - b) <= EPSILON;\n}\nexport function clamp(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nexport function lerp(a, b, t) {\n if (isArray(a)) {\n return a.map(function (ai, i) {\n return lerp(ai, b[i], t);\n });\n }\n return t * b + (1 - t) * a;\n}","export default function assert(condition, message) {\n if (!condition) {\n throw new Error(message || 'react-map-gl: assertion failed.');\n }\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport WebMercatorViewport, { normalizeViewportProps } from 'viewport-mercator-project';\nimport { clamp } from './math-utils';\nimport assert from './assert';\nexport var MAPBOX_LIMITS = {\n minZoom: 0,\n maxZoom: 24,\n minPitch: 0,\n maxPitch: 60\n};\nvar DEFAULT_STATE = {\n pitch: 0,\n bearing: 0,\n altitude: 1.5\n};\nvar PITCH_MOUSE_THRESHOLD = 5;\nvar PITCH_ACCEL = 1.2;\nvar MapState = function () {\n function MapState(_ref) {\n var width = _ref.width,\n height = _ref.height,\n latitude = _ref.latitude,\n longitude = _ref.longitude,\n zoom = _ref.zoom,\n _ref$bearing = _ref.bearing,\n bearing = _ref$bearing === void 0 ? DEFAULT_STATE.bearing : _ref$bearing,\n _ref$pitch = _ref.pitch,\n pitch = _ref$pitch === void 0 ? DEFAULT_STATE.pitch : _ref$pitch,\n _ref$altitude = _ref.altitude,\n altitude = _ref$altitude === void 0 ? DEFAULT_STATE.altitude : _ref$altitude,\n _ref$maxZoom = _ref.maxZoom,\n maxZoom = _ref$maxZoom === void 0 ? MAPBOX_LIMITS.maxZoom : _ref$maxZoom,\n _ref$minZoom = _ref.minZoom,\n minZoom = _ref$minZoom === void 0 ? MAPBOX_LIMITS.minZoom : _ref$minZoom,\n _ref$maxPitch = _ref.maxPitch,\n maxPitch = _ref$maxPitch === void 0 ? MAPBOX_LIMITS.maxPitch : _ref$maxPitch,\n _ref$minPitch = _ref.minPitch,\n minPitch = _ref$minPitch === void 0 ? MAPBOX_LIMITS.minPitch : _ref$minPitch,\n transitionDuration = _ref.transitionDuration,\n transitionEasing = _ref.transitionEasing,\n transitionInterpolator = _ref.transitionInterpolator,\n transitionInterruption = _ref.transitionInterruption,\n startPanLngLat = _ref.startPanLngLat,\n startZoomLngLat = _ref.startZoomLngLat,\n startRotatePos = _ref.startRotatePos,\n startBearing = _ref.startBearing,\n startPitch = _ref.startPitch,\n startZoom = _ref.startZoom;\n _classCallCheck(this, MapState);\n assert(Number.isFinite(width), '`width` must be supplied');\n assert(Number.isFinite(height), '`height` must be supplied');\n assert(Number.isFinite(longitude), '`longitude` must be supplied');\n assert(Number.isFinite(latitude), '`latitude` must be supplied');\n assert(Number.isFinite(zoom), '`zoom` must be supplied');\n this._viewportProps = this._applyConstraints({\n width: width,\n height: height,\n latitude: latitude,\n longitude: longitude,\n zoom: zoom,\n bearing: bearing,\n pitch: pitch,\n altitude: altitude,\n maxZoom: maxZoom,\n minZoom: minZoom,\n maxPitch: maxPitch,\n minPitch: minPitch,\n transitionDuration: transitionDuration,\n transitionEasing: transitionEasing,\n transitionInterpolator: transitionInterpolator,\n transitionInterruption: transitionInterruption\n });\n this._state = {\n startPanLngLat: startPanLngLat,\n startZoomLngLat: startZoomLngLat,\n startRotatePos: startRotatePos,\n startBearing: startBearing,\n startPitch: startPitch,\n startZoom: startZoom\n };\n }\n _createClass(MapState, [{\n key: \"getViewportProps\",\n value: function getViewportProps() {\n return this._viewportProps;\n }\n }, {\n key: \"getState\",\n value: function getState() {\n return this._state;\n }\n }, {\n key: \"panStart\",\n value: function panStart(_ref2) {\n var pos = _ref2.pos;\n return this._getUpdatedMapState({\n startPanLngLat: this._unproject(pos)\n });\n }\n }, {\n key: \"pan\",\n value: function pan(_ref3) {\n var pos = _ref3.pos,\n startPos = _ref3.startPos;\n var startPanLngLat = this._state.startPanLngLat || this._unproject(startPos);\n if (!startPanLngLat) {\n return this;\n }\n var _this$_calculateNewLn = this._calculateNewLngLat({\n startPanLngLat: startPanLngLat,\n pos: pos\n }),\n _this$_calculateNewLn2 = _slicedToArray(_this$_calculateNewLn, 2),\n longitude = _this$_calculateNewLn2[0],\n latitude = _this$_calculateNewLn2[1];\n return this._getUpdatedMapState({\n longitude: longitude,\n latitude: latitude\n });\n }\n }, {\n key: \"panEnd\",\n value: function panEnd() {\n return this._getUpdatedMapState({\n startPanLngLat: null\n });\n }\n }, {\n key: \"rotateStart\",\n value: function rotateStart(_ref4) {\n var pos = _ref4.pos;\n return this._getUpdatedMapState({\n startRotatePos: pos,\n startBearing: this._viewportProps.bearing,\n startPitch: this._viewportProps.pitch\n });\n }\n }, {\n key: \"rotate\",\n value: function rotate(_ref5) {\n var pos = _ref5.pos,\n _ref5$deltaAngleX = _ref5.deltaAngleX,\n deltaAngleX = _ref5$deltaAngleX === void 0 ? 0 : _ref5$deltaAngleX,\n _ref5$deltaAngleY = _ref5.deltaAngleY,\n deltaAngleY = _ref5$deltaAngleY === void 0 ? 0 : _ref5$deltaAngleY;\n var _this$_state = this._state,\n startRotatePos = _this$_state.startRotatePos,\n startBearing = _this$_state.startBearing,\n startPitch = _this$_state.startPitch;\n if (!Number.isFinite(startBearing) || !Number.isFinite(startPitch)) {\n return this;\n }\n var newRotation;\n if (pos) {\n newRotation = this._calculateNewPitchAndBearing(_objectSpread(_objectSpread({}, this._getRotationParams(pos, startRotatePos)), {}, {\n startBearing: startBearing,\n startPitch: startPitch\n }));\n } else {\n newRotation = {\n bearing: startBearing + deltaAngleX,\n pitch: startPitch + deltaAngleY\n };\n }\n return this._getUpdatedMapState(newRotation);\n }\n }, {\n key: \"rotateEnd\",\n value: function rotateEnd() {\n return this._getUpdatedMapState({\n startBearing: null,\n startPitch: null\n });\n }\n }, {\n key: \"zoomStart\",\n value: function zoomStart(_ref6) {\n var pos = _ref6.pos;\n return this._getUpdatedMapState({\n startZoomLngLat: this._unproject(pos),\n startZoom: this._viewportProps.zoom\n });\n }\n }, {\n key: \"zoom\",\n value: function zoom(_ref7) {\n var pos = _ref7.pos,\n startPos = _ref7.startPos,\n scale = _ref7.scale;\n assert(scale > 0, '`scale` must be a positive number');\n var _this$_state2 = this._state,\n startZoom = _this$_state2.startZoom,\n startZoomLngLat = _this$_state2.startZoomLngLat;\n if (!Number.isFinite(startZoom)) {\n startZoom = this._viewportProps.zoom;\n startZoomLngLat = this._unproject(startPos) || this._unproject(pos);\n }\n assert(startZoomLngLat, '`startZoomLngLat` prop is required ' + 'for zoom behavior to calculate where to position the map.');\n var zoom = this._calculateNewZoom({\n scale: scale,\n startZoom: startZoom || 0\n });\n var zoomedViewport = new WebMercatorViewport(Object.assign({}, this._viewportProps, {\n zoom: zoom\n }));\n var _zoomedViewport$getMa = zoomedViewport.getMapCenterByLngLatPosition({\n lngLat: startZoomLngLat,\n pos: pos\n }),\n _zoomedViewport$getMa2 = _slicedToArray(_zoomedViewport$getMa, 2),\n longitude = _zoomedViewport$getMa2[0],\n latitude = _zoomedViewport$getMa2[1];\n return this._getUpdatedMapState({\n zoom: zoom,\n longitude: longitude,\n latitude: latitude\n });\n }\n }, {\n key: \"zoomEnd\",\n value: function zoomEnd() {\n return this._getUpdatedMapState({\n startZoomLngLat: null,\n startZoom: null\n });\n }\n }, {\n key: \"_getUpdatedMapState\",\n value: function _getUpdatedMapState(newProps) {\n return new MapState(Object.assign({}, this._viewportProps, this._state, newProps));\n }\n }, {\n key: \"_applyConstraints\",\n value: function _applyConstraints(props) {\n var maxZoom = props.maxZoom,\n minZoom = props.minZoom,\n zoom = props.zoom;\n props.zoom = clamp(zoom, minZoom, maxZoom);\n var maxPitch = props.maxPitch,\n minPitch = props.minPitch,\n pitch = props.pitch;\n props.pitch = clamp(pitch, minPitch, maxPitch);\n Object.assign(props, normalizeViewportProps(props));\n return props;\n }\n }, {\n key: \"_unproject\",\n value: function _unproject(pos) {\n var viewport = new WebMercatorViewport(this._viewportProps);\n return pos && viewport.unproject(pos);\n }\n }, {\n key: \"_calculateNewLngLat\",\n value: function _calculateNewLngLat(_ref8) {\n var startPanLngLat = _ref8.startPanLngLat,\n pos = _ref8.pos;\n var viewport = new WebMercatorViewport(this._viewportProps);\n return viewport.getMapCenterByLngLatPosition({\n lngLat: startPanLngLat,\n pos: pos\n });\n }\n }, {\n key: \"_calculateNewZoom\",\n value: function _calculateNewZoom(_ref9) {\n var scale = _ref9.scale,\n startZoom = _ref9.startZoom;\n var _this$_viewportProps = this._viewportProps,\n maxZoom = _this$_viewportProps.maxZoom,\n minZoom = _this$_viewportProps.minZoom;\n var zoom = startZoom + Math.log2(scale);\n return clamp(zoom, minZoom, maxZoom);\n }\n }, {\n key: \"_calculateNewPitchAndBearing\",\n value: function _calculateNewPitchAndBearing(_ref10) {\n var deltaScaleX = _ref10.deltaScaleX,\n deltaScaleY = _ref10.deltaScaleY,\n startBearing = _ref10.startBearing,\n startPitch = _ref10.startPitch;\n deltaScaleY = clamp(deltaScaleY, -1, 1);\n var _this$_viewportProps2 = this._viewportProps,\n minPitch = _this$_viewportProps2.minPitch,\n maxPitch = _this$_viewportProps2.maxPitch;\n var bearing = startBearing + 180 * deltaScaleX;\n var pitch = startPitch;\n if (deltaScaleY > 0) {\n pitch = startPitch + deltaScaleY * (maxPitch - startPitch);\n } else if (deltaScaleY < 0) {\n pitch = startPitch - deltaScaleY * (minPitch - startPitch);\n }\n return {\n pitch: pitch,\n bearing: bearing\n };\n }\n }, {\n key: \"_getRotationParams\",\n value: function _getRotationParams(pos, startPos) {\n var deltaX = pos[0] - startPos[0];\n var deltaY = pos[1] - startPos[1];\n var centerY = pos[1];\n var startY = startPos[1];\n var _this$_viewportProps3 = this._viewportProps,\n width = _this$_viewportProps3.width,\n height = _this$_viewportProps3.height;\n var deltaScaleX = deltaX / width;\n var deltaScaleY = 0;\n if (deltaY > 0) {\n if (Math.abs(height - startY) > PITCH_MOUSE_THRESHOLD) {\n deltaScaleY = deltaY / (startY - height) * PITCH_ACCEL;\n }\n } else if (deltaY < 0) {\n if (startY > PITCH_MOUSE_THRESHOLD) {\n deltaScaleY = 1 - centerY / startY;\n }\n }\n deltaScaleY = Math.min(1, Math.max(-1, deltaScaleY));\n return {\n deltaScaleX: deltaScaleX,\n deltaScaleY: deltaScaleY\n };\n }\n }]);\n return MapState;\n}();\nexport { MapState as default };","import { worldToLngLat } from './web-mercator-utils';\nimport { mod, log2 } from './math-utils';\nconst TILE_SIZE = 512;\nexport default function normalizeViewportProps(props) {\n const {\n width,\n height,\n pitch = 0\n } = props;\n let {\n longitude,\n latitude,\n zoom,\n bearing = 0\n } = props;\n if (longitude < -180 || longitude > 180) {\n longitude = mod(longitude + 180, 360) - 180;\n }\n if (bearing < -180 || bearing > 180) {\n bearing = mod(bearing + 180, 360) - 180;\n }\n const minZoom = log2(height / TILE_SIZE);\n if (zoom <= minZoom) {\n zoom = minZoom;\n latitude = 0;\n } else {\n const halfHeightPixels = height / 2 / Math.pow(2, zoom);\n const minLatitude = worldToLngLat([0, halfHeightPixels])[1];\n if (latitude < minLatitude) {\n latitude = minLatitude;\n } else {\n const maxLatitude = worldToLngLat([0, TILE_SIZE - halfHeightPixels])[1];\n if (latitude > maxLatitude) {\n latitude = maxLatitude;\n }\n }\n }\n return {\n width,\n height,\n longitude,\n latitude,\n zoom,\n pitch,\n bearing\n };\n}","import { MAPBOX_LIMITS } from './map-state';\nfunction decapitalize(s) {\n return s[0].toLowerCase() + s.slice(1);\n}\nexport function checkVisibilityConstraints(props) {\n var constraints = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : MAPBOX_LIMITS;\n for (var constraintName in constraints) {\n var type = constraintName.slice(0, 3);\n var propName = decapitalize(constraintName.slice(3));\n if (type === 'min' && props[propName] < constraints[constraintName]) {\n return false;\n }\n if (type === 'max' && props[propName] > constraints[constraintName]) {\n return false;\n }\n }\n return true;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { createContext, useState, useContext } from 'react';\nvar MapContext = createContext({\n viewport: null,\n map: null,\n container: null,\n onViewportChange: null,\n onViewStateChange: null,\n eventManager: null\n});\nexport var MapContextProvider = MapContext.Provider;\nfunction WrappedProvider(_ref) {\n var value = _ref.value,\n children = _ref.children;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n map = _useState2[0],\n setMap = _useState2[1];\n var context = useContext(MapContext);\n value = _objectSpread(_objectSpread({\n setMap: setMap\n }, context), {}, {\n map: context && context.map || map\n }, value);\n return React.createElement(MapContextProvider, {\n value: value\n }, children);\n}\nMapContext.Provider = WrappedProvider;\nexport default MapContext;","import { useEffect, useLayoutEffect } from 'react';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useState, useRef, useCallback, useContext, useImperativeHandle, forwardRef } from 'react';\nimport WebMercatorViewport from 'viewport-mercator-project';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport Mapbox from '../mapbox/mapbox';\nimport mapboxgl from '../utils/mapboxgl';\nimport { checkVisibilityConstraints } from '../utils/map-constraints';\nimport { MAPBOX_LIMITS } from '../utils/map-state';\nimport MapContext, { MapContextProvider } from './map-context';\nimport useIsomorphicLayoutEffect from '../utils/use-isomorphic-layout-effect';\nvar TOKEN_DOC_URL = 'https://visgl.github.io/react-map-gl/docs/get-started/mapbox-tokens';\nvar NO_TOKEN_WARNING = 'A valid API access token is required to use Mapbox data';\nfunction noop() {}\nexport function getViewport(_ref) {\n var props = _ref.props,\n width = _ref.width,\n height = _ref.height;\n return new WebMercatorViewport(_objectSpread(_objectSpread(_objectSpread({}, props), props.viewState), {}, {\n width: width,\n height: height\n }));\n}\nvar UNAUTHORIZED_ERROR_CODE = 401;\nvar CONTAINER_STYLE = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n};\nvar defaultProps = Object.assign({}, Mapbox.defaultProps, {\n disableTokenWarning: false,\n visible: true,\n onResize: noop,\n className: '',\n style: null,\n visibilityConstraints: MAPBOX_LIMITS\n});\nfunction NoTokenWarning() {\n var style = {\n position: 'absolute',\n left: 0,\n top: 0\n };\n return React.createElement(\"div\", {\n key: \"warning\",\n id: \"no-token-warning\",\n style: style\n }, React.createElement(\"h3\", {\n key: \"header\"\n }, NO_TOKEN_WARNING), React.createElement(\"div\", {\n key: \"text\"\n }, \"For information on setting up your basemap, read\"), React.createElement(\"a\", {\n key: \"link\",\n href: TOKEN_DOC_URL\n }, \"Note on Map Tokens\"));\n}\nfunction getRefHandles(mapboxRef) {\n return {\n getMap: function getMap() {\n return mapboxRef.current && mapboxRef.current.getMap();\n },\n queryRenderedFeatures: function queryRenderedFeatures(geometry) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var map = mapboxRef.current && mapboxRef.current.getMap();\n return map && map.queryRenderedFeatures(geometry, options);\n }\n };\n}\nvar StaticMap = forwardRef(function (props, ref) {\n var _useState = useState(true),\n _useState2 = _slicedToArray(_useState, 2),\n accessTokenValid = _useState2[0],\n setTokenState = _useState2[1];\n var _useState3 = useState({\n width: 0,\n height: 0\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n size = _useState4[0],\n setSize = _useState4[1];\n var mapboxRef = useRef(null);\n var mapDivRef = useRef(null);\n var containerRef = useRef(null);\n var overlayRef = useRef(null);\n var context = useContext(MapContext);\n useIsomorphicLayoutEffect(function () {\n if (!StaticMap.supported()) {\n return undefined;\n }\n var mapbox = new Mapbox(_objectSpread(_objectSpread(_objectSpread({}, props), size), {}, {\n mapboxgl: mapboxgl,\n container: mapDivRef.current,\n onError: function onError(evt) {\n var statusCode = evt.error && evt.error.status || evt.status;\n if (statusCode === UNAUTHORIZED_ERROR_CODE && accessTokenValid) {\n console.error(NO_TOKEN_WARNING);\n setTokenState(false);\n }\n props.onError(evt);\n }\n }));\n mapboxRef.current = mapbox;\n if (context && context.setMap) {\n context.setMap(mapbox.getMap());\n }\n var resizeObserver = new ResizeObserver(function (entries) {\n if (entries[0].contentRect) {\n var _entries$0$contentRec = entries[0].contentRect,\n _width = _entries$0$contentRec.width,\n _height = _entries$0$contentRec.height;\n setSize({\n width: _width,\n height: _height\n });\n props.onResize({\n width: _width,\n height: _height\n });\n }\n });\n resizeObserver.observe(containerRef.current);\n return function () {\n mapbox.finalize();\n mapboxRef.current = null;\n resizeObserver.disconnect();\n };\n }, []);\n useIsomorphicLayoutEffect(function () {\n if (mapboxRef.current) {\n mapboxRef.current.setProps(_objectSpread(_objectSpread({}, props), size));\n }\n });\n var map = mapboxRef.current && mapboxRef.current.getMap();\n useImperativeHandle(ref, function () {\n return getRefHandles(mapboxRef);\n }, []);\n var preventScroll = useCallback(function (_ref2) {\n var target = _ref2.target;\n if (target === overlayRef.current) {\n target.scrollTo(0, 0);\n }\n }, []);\n var overlays = map && React.createElement(MapContextProvider, {\n value: _objectSpread(_objectSpread({}, context), {}, {\n viewport: context.viewport || getViewport(_objectSpread({\n map: map,\n props: props\n }, size)),\n map: map,\n container: context.container || containerRef.current\n })\n }, React.createElement(\"div\", {\n key: \"map-overlays\",\n className: \"overlays\",\n ref: overlayRef,\n style: CONTAINER_STYLE,\n onScroll: preventScroll\n }, props.children));\n var className = props.className,\n width = props.width,\n height = props.height,\n style = props.style,\n visibilityConstraints = props.visibilityConstraints;\n var mapContainerStyle = Object.assign({\n position: 'relative'\n }, style, {\n width: width,\n height: height\n });\n var visible = props.visible && checkVisibilityConstraints(props.viewState || props, visibilityConstraints);\n var mapStyle = Object.assign({}, CONTAINER_STYLE, {\n visibility: visible ? 'inherit' : 'hidden'\n });\n return React.createElement(\"div\", {\n key: \"map-container\",\n ref: containerRef,\n style: mapContainerStyle\n }, React.createElement(\"div\", {\n key: \"map-mapbox\",\n ref: mapDivRef,\n style: mapStyle,\n className: className\n }), overlays, !accessTokenValid && !props.disableTokenWarning && React.createElement(NoTokenWarning, null));\n});\nStaticMap.supported = function () {\n return mapboxgl && mapboxgl.supported();\n};\nStaticMap.defaultProps = defaultProps;\nexport default StaticMap;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nimport { equals } from '../math-utils';\nimport assert from '../assert';\nvar TransitionInterpolator = function () {\n function TransitionInterpolator() {\n _classCallCheck(this, TransitionInterpolator);\n _defineProperty(this, \"propNames\", []);\n }\n _createClass(TransitionInterpolator, [{\n key: \"arePropsEqual\",\n value: function arePropsEqual(currentProps, nextProps) {\n var _iterator = _createForOfIteratorHelper(this.propNames || []),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n if (!equals(currentProps[key], nextProps[key])) {\n return false;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return true;\n }\n }, {\n key: \"initializeProps\",\n value: function initializeProps(startProps, endProps) {\n return {\n start: startProps,\n end: endProps\n };\n }\n }, {\n key: \"interpolateProps\",\n value: function interpolateProps(startProps, endProps, t) {\n assert(false, 'interpolateProps is not implemented');\n }\n }, {\n key: \"getDuration\",\n value: function getDuration(startProps, endProps) {\n return endProps.transitionDuration;\n }\n }]);\n return TransitionInterpolator;\n}();\nexport { TransitionInterpolator as default };","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","var WRAPPED_ANGULAR_PROPS = {\n longitude: 1,\n bearing: 1\n};\nexport function mod(value, divisor) {\n var modulus = value % divisor;\n return modulus < 0 ? divisor + modulus : modulus;\n}\nexport function isValid(prop) {\n return Number.isFinite(prop) || Array.isArray(prop);\n}\nfunction isWrappedAngularProp(propName) {\n return propName in WRAPPED_ANGULAR_PROPS;\n}\nexport function getEndValueByShortestPath(propName, startValue, endValue) {\n if (isWrappedAngularProp(propName) && Math.abs(endValue - startValue) > 180) {\n endValue = endValue < 0 ? endValue + 360 : endValue - 360;\n }\n return endValue;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nimport assert from '../assert';\nimport TransitionInterpolator from './transition-interpolator';\nimport { flyToViewport, getFlyToDuration } from 'viewport-mercator-project';\nimport { isValid, getEndValueByShortestPath } from './transition-utils';\nimport { lerp } from '../math-utils';\nvar VIEWPORT_TRANSITION_PROPS = ['longitude', 'latitude', 'zoom', 'bearing', 'pitch'];\nvar REQUIRED_PROPS = ['latitude', 'longitude', 'zoom', 'width', 'height'];\nvar LINEARLY_INTERPOLATED_PROPS = ['bearing', 'pitch'];\nvar DEFAULT_OPTS = {\n speed: 1.2,\n curve: 1.414\n};\nvar ViewportFlyToInterpolator = function (_TransitionInterpolat) {\n _inherits(ViewportFlyToInterpolator, _TransitionInterpolat);\n var _super = _createSuper(ViewportFlyToInterpolator);\n function ViewportFlyToInterpolator() {\n var _this;\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, ViewportFlyToInterpolator);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"propNames\", VIEWPORT_TRANSITION_PROPS);\n _this.props = Object.assign({}, DEFAULT_OPTS, props);\n return _this;\n }\n _createClass(ViewportFlyToInterpolator, [{\n key: \"initializeProps\",\n value: function initializeProps(startProps, endProps) {\n var startViewportProps = {};\n var endViewportProps = {};\n var _iterator = _createForOfIteratorHelper(REQUIRED_PROPS),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n var startValue = startProps[key];\n var endValue = endProps[key];\n assert(isValid(startValue) && isValid(endValue), \"\".concat(key, \" must be supplied for transition\"));\n startViewportProps[key] = startValue;\n endViewportProps[key] = getEndValueByShortestPath(key, startValue, endValue);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var _iterator2 = _createForOfIteratorHelper(LINEARLY_INTERPOLATED_PROPS),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _key = _step2.value;\n var _startValue = startProps[_key] || 0;\n var _endValue = endProps[_key] || 0;\n startViewportProps[_key] = _startValue;\n endViewportProps[_key] = getEndValueByShortestPath(_key, _startValue, _endValue);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return {\n start: startViewportProps,\n end: endViewportProps\n };\n }\n }, {\n key: \"interpolateProps\",\n value: function interpolateProps(startProps, endProps, t) {\n var viewport = flyToViewport(startProps, endProps, t, this.props);\n var _iterator3 = _createForOfIteratorHelper(LINEARLY_INTERPOLATED_PROPS),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var key = _step3.value;\n viewport[key] = lerp(startProps[key], endProps[key], t);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return viewport;\n }\n }, {\n key: \"getDuration\",\n value: function getDuration(startProps, endProps) {\n var transitionDuration = endProps.transitionDuration;\n if (transitionDuration === 'auto') {\n transitionDuration = getFlyToDuration(startProps, endProps, this.props);\n }\n return transitionDuration;\n }\n }]);\n return ViewportFlyToInterpolator;\n}(TransitionInterpolator);\nexport { ViewportFlyToInterpolator as default };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nimport WebMercatorViewport from 'viewport-mercator-project';\nimport assert from '../assert';\nimport TransitionInterpolator from './transition-interpolator';\nimport { isValid, getEndValueByShortestPath } from './transition-utils';\nimport { lerp } from '../math-utils';\nvar VIEWPORT_TRANSITION_PROPS = ['longitude', 'latitude', 'zoom', 'bearing', 'pitch'];\nvar LinearInterpolator = function (_TransitionInterpolat) {\n _inherits(LinearInterpolator, _TransitionInterpolat);\n var _super = _createSuper(LinearInterpolator);\n function LinearInterpolator() {\n var _this;\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, LinearInterpolator);\n _this = _super.call(this);\n if (Array.isArray(opts)) {\n opts = {\n transitionProps: opts\n };\n }\n _this.propNames = opts.transitionProps || VIEWPORT_TRANSITION_PROPS;\n if (opts.around) {\n _this.around = opts.around;\n }\n return _this;\n }\n _createClass(LinearInterpolator, [{\n key: \"initializeProps\",\n value: function initializeProps(startProps, endProps) {\n var startViewportProps = {};\n var endViewportProps = {};\n if (this.around) {\n startViewportProps.around = this.around;\n var aroundLngLat = new WebMercatorViewport(startProps).unproject(this.around);\n Object.assign(endViewportProps, endProps, {\n around: new WebMercatorViewport(endProps).project(aroundLngLat),\n aroundLngLat: aroundLngLat\n });\n }\n var _iterator = _createForOfIteratorHelper(this.propNames),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n var startValue = startProps[key];\n var endValue = endProps[key];\n assert(isValid(startValue) && isValid(endValue), \"\".concat(key, \" must be supplied for transition\"));\n startViewportProps[key] = startValue;\n endViewportProps[key] = getEndValueByShortestPath(key, startValue, endValue);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return {\n start: startViewportProps,\n end: endViewportProps\n };\n }\n }, {\n key: \"interpolateProps\",\n value: function interpolateProps(startProps, endProps, t) {\n var viewport = {};\n var _iterator2 = _createForOfIteratorHelper(this.propNames),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var key = _step2.value;\n viewport[key] = lerp(startProps[key], endProps[key], t);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (endProps.around) {\n var _WebMercatorViewport$ = new WebMercatorViewport(Object.assign({}, endProps, viewport)).getMapCenterByLngLatPosition({\n lngLat: endProps.aroundLngLat,\n pos: lerp(startProps.around, endProps.around, t)\n }),\n _WebMercatorViewport$2 = _slicedToArray(_WebMercatorViewport$, 2),\n longitude = _WebMercatorViewport$2[0],\n latitude = _WebMercatorViewport$2[1];\n viewport.longitude = longitude;\n viewport.latitude = latitude;\n }\n return viewport;\n }\n }]);\n return LinearInterpolator;\n}(TransitionInterpolator);\nexport { LinearInterpolator as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport assert from './assert';\nimport { LinearInterpolator } from './transition';\nimport MapState from './map-state';\nvar noop = function noop() {};\nexport function cropEasingFunction(easing, x0) {\n var y0 = easing(x0);\n return function (t) {\n return 1 / (1 - y0) * (easing(t * (1 - x0) + x0) - y0);\n };\n}\nexport var TRANSITION_EVENTS = {\n BREAK: 1,\n SNAP_TO_END: 2,\n IGNORE: 3,\n UPDATE: 4\n};\nvar DEFAULT_PROPS = {\n transitionDuration: 0,\n transitionEasing: function transitionEasing(t) {\n return t;\n },\n transitionInterpolator: new LinearInterpolator(),\n transitionInterruption: TRANSITION_EVENTS.BREAK,\n onTransitionStart: noop,\n onTransitionInterrupt: noop,\n onTransitionEnd: noop\n};\nvar TransitionManager = function () {\n function TransitionManager() {\n var _this = this;\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, TransitionManager);\n _defineProperty(this, \"_animationFrame\", null);\n _defineProperty(this, \"_onTransitionFrame\", function () {\n _this._animationFrame = requestAnimationFrame(_this._onTransitionFrame);\n _this._updateViewport();\n });\n this.props = null;\n this.onViewportChange = opts.onViewportChange || noop;\n this.onStateChange = opts.onStateChange || noop;\n this.time = opts.getTime || Date.now;\n }\n _createClass(TransitionManager, [{\n key: \"getViewportInTransition\",\n value: function getViewportInTransition() {\n return this._animationFrame ? this.state.propsInTransition : null;\n }\n }, {\n key: \"processViewportChange\",\n value: function processViewportChange(nextProps) {\n var currentProps = this.props;\n this.props = nextProps;\n if (!currentProps || this._shouldIgnoreViewportChange(currentProps, nextProps)) {\n return false;\n }\n if (this._isTransitionEnabled(nextProps)) {\n var startProps = Object.assign({}, currentProps);\n var endProps = Object.assign({}, nextProps);\n if (this._isTransitionInProgress()) {\n currentProps.onTransitionInterrupt();\n if (this.state.interruption === TRANSITION_EVENTS.SNAP_TO_END) {\n Object.assign(startProps, this.state.endProps);\n } else {\n Object.assign(startProps, this.state.propsInTransition);\n }\n if (this.state.interruption === TRANSITION_EVENTS.UPDATE) {\n var currentTime = this.time();\n var x0 = (currentTime - this.state.startTime) / this.state.duration;\n endProps.transitionDuration = this.state.duration - (currentTime - this.state.startTime);\n endProps.transitionEasing = cropEasingFunction(this.state.easing, x0);\n endProps.transitionInterpolator = startProps.transitionInterpolator;\n }\n }\n endProps.onTransitionStart();\n this._triggerTransition(startProps, endProps);\n return true;\n }\n if (this._isTransitionInProgress()) {\n currentProps.onTransitionInterrupt();\n this._endTransition();\n }\n return false;\n }\n }, {\n key: \"_isTransitionInProgress\",\n value: function _isTransitionInProgress() {\n return Boolean(this._animationFrame);\n }\n }, {\n key: \"_isTransitionEnabled\",\n value: function _isTransitionEnabled(props) {\n var transitionDuration = props.transitionDuration,\n transitionInterpolator = props.transitionInterpolator;\n return (transitionDuration > 0 || transitionDuration === 'auto') && Boolean(transitionInterpolator);\n }\n }, {\n key: \"_isUpdateDueToCurrentTransition\",\n value: function _isUpdateDueToCurrentTransition(props) {\n if (this.state.propsInTransition) {\n return this.state.interpolator.arePropsEqual(props, this.state.propsInTransition);\n }\n return false;\n }\n }, {\n key: \"_shouldIgnoreViewportChange\",\n value: function _shouldIgnoreViewportChange(currentProps, nextProps) {\n if (!currentProps) {\n return true;\n }\n if (this._isTransitionInProgress()) {\n return this.state.interruption === TRANSITION_EVENTS.IGNORE || this._isUpdateDueToCurrentTransition(nextProps);\n }\n if (this._isTransitionEnabled(nextProps)) {\n return nextProps.transitionInterpolator.arePropsEqual(currentProps, nextProps);\n }\n return true;\n }\n }, {\n key: \"_triggerTransition\",\n value: function _triggerTransition(startProps, endProps) {\n assert(this._isTransitionEnabled(endProps));\n if (this._animationFrame) {\n cancelAnimationFrame(this._animationFrame);\n }\n var transitionInterpolator = endProps.transitionInterpolator;\n var duration = transitionInterpolator.getDuration ? transitionInterpolator.getDuration(startProps, endProps) : endProps.transitionDuration;\n if (duration === 0) {\n return;\n }\n var initialProps = endProps.transitionInterpolator.initializeProps(startProps, endProps);\n var interactionState = {\n inTransition: true,\n isZooming: startProps.zoom !== endProps.zoom,\n isPanning: startProps.longitude !== endProps.longitude || startProps.latitude !== endProps.latitude,\n isRotating: startProps.bearing !== endProps.bearing || startProps.pitch !== endProps.pitch\n };\n this.state = {\n duration: duration,\n easing: endProps.transitionEasing,\n interpolator: endProps.transitionInterpolator,\n interruption: endProps.transitionInterruption,\n startTime: this.time(),\n startProps: initialProps.start,\n endProps: initialProps.end,\n animation: null,\n propsInTransition: {}\n };\n this._onTransitionFrame();\n this.onStateChange(interactionState);\n }\n }, {\n key: \"_endTransition\",\n value: function _endTransition() {\n if (this._animationFrame) {\n cancelAnimationFrame(this._animationFrame);\n this._animationFrame = null;\n }\n this.onStateChange({\n inTransition: false,\n isZooming: false,\n isPanning: false,\n isRotating: false\n });\n }\n }, {\n key: \"_updateViewport\",\n value: function _updateViewport() {\n var currentTime = this.time();\n var _this$state = this.state,\n startTime = _this$state.startTime,\n duration = _this$state.duration,\n easing = _this$state.easing,\n interpolator = _this$state.interpolator,\n startProps = _this$state.startProps,\n endProps = _this$state.endProps;\n var shouldEnd = false;\n var t = (currentTime - startTime) / duration;\n if (t >= 1) {\n t = 1;\n shouldEnd = true;\n }\n t = easing(t);\n var viewport = interpolator.interpolateProps(startProps, endProps, t);\n var mapState = new MapState(Object.assign({}, this.props, viewport));\n this.state.propsInTransition = mapState.getViewportProps();\n this.onViewportChange(this.state.propsInTransition, this.props);\n if (shouldEnd) {\n this._endTransition();\n this.props.onTransitionEnd();\n }\n }\n }]);\n return TransitionManager;\n}();\n_defineProperty(TransitionManager, \"defaultProps\", DEFAULT_PROPS);\nexport { TransitionManager as default };","/**\n * This file contains overrides the default\n * hammer.js functions to add our own utility\n */\n/* eslint-disable */\n/* Hammer.js constants */\nconst INPUT_START = 1;\nconst INPUT_MOVE = 2;\nconst INPUT_END = 4;\nconst MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n/**\n * Helper function that returns true if any element in an array meets given criteria.\n * Because older browsers do not support `Array.prototype.some`\n * @params array {Array}\n * @params predict {Function}\n */\nfunction some(array, predict) {\n for (let i = 0; i < array.length; i++) {\n if (predict(array[i])) {\n return true;\n }\n }\n return false;\n}\n/* eslint-disable no-invalid-this */\nexport function enhancePointerEventInput(PointerEventInput) {\n const oldHandler = PointerEventInput.prototype.handler;\n // overrides PointerEventInput.handler to accept right mouse button\n PointerEventInput.prototype.handler = function handler(ev) {\n const store = this.store;\n // Allow non-left mouse buttons through\n if (ev.button > 0 && ev.type === 'pointerdown') {\n if (!some(store, e => e.pointerId === ev.pointerId)) {\n store.push(ev);\n }\n }\n oldHandler.call(this, ev);\n };\n}\n// overrides MouseInput.handler to accept right mouse button\nexport function enhanceMouseInput(MouseInput) {\n MouseInput.prototype.handler = function handler(ev) {\n let eventType = MOUSE_INPUT_MAP[ev.type];\n // on start we want to have the mouse button down\n if (eventType & INPUT_START && ev.button >= 0) {\n this.pressed = true;\n }\n if (eventType & INPUT_MOVE && ev.which === 0) {\n eventType = INPUT_END;\n }\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: 'mouse',\n srcEvent: ev\n });\n };\n}","import * as hammerjs from 'hammerjs';\nimport { enhancePointerEventInput, enhanceMouseInput } from './hammer-overrides';\nenhancePointerEventInput(hammerjs.PointerEventInput);\nenhanceMouseInput(hammerjs.MouseInput);\nexport const Manager = hammerjs.Manager;\nexport default hammerjs;","export default class Input {\n constructor(element, callback, options) {\n this.element = element;\n this.callback = callback;\n this.options = {\n enable: true,\n ...options\n };\n }\n}","import Hammer from './utils/hammer';\n// This module contains constants that must be conditionally required\n// due to `window`/`document` references downstream.\nexport const RECOGNIZERS = Hammer ? [[Hammer.Pan, {\n event: 'tripan',\n pointers: 3,\n threshold: 0,\n enable: false\n}], [Hammer.Rotate, {\n enable: false\n}], [Hammer.Pinch, {\n enable: false\n}], [Hammer.Swipe, {\n enable: false\n}], [Hammer.Pan, {\n threshold: 0,\n enable: false\n}], [Hammer.Press, {\n enable: false\n}], [Hammer.Tap, {\n event: 'doubletap',\n taps: 2,\n enable: false\n}],\n// TODO - rename to 'tap' and 'singletap' in the next major release\n[Hammer.Tap, {\n event: 'anytap',\n enable: false\n}], [Hammer.Tap, {\n enable: false\n}]] : null;\n// Recognize the following gestures even if a given recognizer succeeds\nexport const RECOGNIZER_COMPATIBLE_MAP = {\n tripan: ['rotate', 'pinch', 'pan'],\n rotate: ['pinch'],\n pinch: ['pan'],\n pan: ['press', 'doubletap', 'anytap', 'tap'],\n doubletap: ['anytap'],\n anytap: ['tap']\n};\n// Recognize the folling gestures only if a given recognizer fails\nexport const RECOGNIZER_FALLBACK_MAP = {\n doubletap: ['tap']\n};\n/**\n * Only one set of basic input events will be fired by Hammer.js:\n * either pointer, touch, or mouse, depending on system support.\n * In order to enable an application to be agnostic of system support,\n * alias basic input events into \"classes\" of events: down, move, and up.\n * See `_onBasicInput()` for usage of these aliases.\n */\nexport const BASIC_EVENT_ALIASES = {\n pointerdown: 'pointerdown',\n pointermove: 'pointermove',\n pointerup: 'pointerup',\n touchstart: 'pointerdown',\n touchmove: 'pointermove',\n touchend: 'pointerup',\n mousedown: 'pointerdown',\n mousemove: 'pointermove',\n mouseup: 'pointerup'\n};\nexport const INPUT_EVENT_TYPES = {\n KEY_EVENTS: ['keydown', 'keyup'],\n MOUSE_EVENTS: ['mousedown', 'mousemove', 'mouseup', 'mouseover', 'mouseout', 'mouseleave'],\n WHEEL_EVENTS: [\n // Chrome, Safari\n 'wheel',\n // IE\n 'mousewheel']\n};\n/**\n * \"Gestural\" events are those that have semantic meaning beyond the basic input event,\n * e.g. a click or tap is a sequence of `down` and `up` events with no `move` event in between.\n * Hammer.js handles these with its Recognizer system;\n * this block maps event names to the Recognizers required to detect the events.\n */\nexport const EVENT_RECOGNIZER_MAP = {\n tap: 'tap',\n anytap: 'anytap',\n doubletap: 'doubletap',\n press: 'press',\n pinch: 'pinch',\n pinchin: 'pinch',\n pinchout: 'pinch',\n pinchstart: 'pinch',\n pinchmove: 'pinch',\n pinchend: 'pinch',\n pinchcancel: 'pinch',\n rotate: 'rotate',\n rotatestart: 'rotate',\n rotatemove: 'rotate',\n rotateend: 'rotate',\n rotatecancel: 'rotate',\n tripan: 'tripan',\n tripanstart: 'tripan',\n tripanmove: 'tripan',\n tripanup: 'tripan',\n tripandown: 'tripan',\n tripanleft: 'tripan',\n tripanright: 'tripan',\n tripanend: 'tripan',\n tripancancel: 'tripan',\n pan: 'pan',\n panstart: 'pan',\n panmove: 'pan',\n panup: 'pan',\n pandown: 'pan',\n panleft: 'pan',\n panright: 'pan',\n panend: 'pan',\n pancancel: 'pan',\n swipe: 'swipe',\n swipeleft: 'swipe',\n swiperight: 'swipe',\n swipeup: 'swipe',\n swipedown: 'swipe'\n};\n/**\n * Map gestural events typically provided by browsers\n * that are not reported in 'hammer.input' events\n * to corresponding Hammer.js gestures.\n */\nexport const GESTURE_EVENT_ALIASES = {\n click: 'tap',\n anyclick: 'anytap',\n dblclick: 'doubletap',\n mousedown: 'pointerdown',\n mousemove: 'pointermove',\n mouseup: 'pointerup',\n mouseover: 'pointerover',\n mouseout: 'pointerout',\n mouseleave: 'pointerleave'\n};","// Purpose: include this in your module to avoids adding dependencies on\n// micro modules like 'global'\n/* global window, global, document, navigator */\nexport const userAgent = typeof navigator !== 'undefined' && navigator.userAgent ? navigator.userAgent.toLowerCase() : '';\nconst window_ = typeof window !== 'undefined' ? window : global;\nconst global_ = typeof global !== 'undefined' ? global : window;\nconst document_ = typeof document !== 'undefined' ? document : {};\nexport { window_ as window, global_ as global, document_ as document };\n/*\n * Detect whether passive option is supported by the current browser.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n #Safely_detecting_option_support\n */\nlet passiveSupported = false;\n/* eslint-disable accessor-pairs, no-empty */\ntry {\n const options = {\n // This function will be called when the browser\n // attempts to access the passive property.\n get passive() {\n passiveSupported = true;\n return true;\n }\n };\n window_.addEventListener('test', null, options);\n window_.removeEventListener('test', null);\n} catch (err) {\n passiveSupported = false;\n}\nexport { passiveSupported };","import Input from './input';\nimport { INPUT_EVENT_TYPES } from '../constants';\nimport { window, userAgent, passiveSupported } from '../utils/globals';\nconst firefox = userAgent.indexOf('firefox') !== -1;\nconst {\n WHEEL_EVENTS\n} = INPUT_EVENT_TYPES;\nconst EVENT_TYPE = 'wheel';\n// Constants for normalizing input delta\nconst WHEEL_DELTA_MAGIC_SCALER = 4.000244140625;\nconst WHEEL_DELTA_PER_LINE = 40;\n// Slow down zoom if shift key is held for more precise zooming\nconst SHIFT_MULTIPLIER = 0.25;\nexport default class WheelInput extends Input {\n constructor(element, callback, options) {\n super(element, callback, options);\n /* eslint-disable complexity, max-statements */\n this.handleEvent = event => {\n if (!this.options.enable) {\n return;\n }\n let value = event.deltaY;\n if (window.WheelEvent) {\n // Firefox doubles the values on retina screens...\n if (firefox && event.deltaMode === window.WheelEvent.DOM_DELTA_PIXEL) {\n value /= window.devicePixelRatio;\n }\n if (event.deltaMode === window.WheelEvent.DOM_DELTA_LINE) {\n value *= WHEEL_DELTA_PER_LINE;\n }\n }\n if (value !== 0 && value % WHEEL_DELTA_MAGIC_SCALER === 0) {\n // This one is definitely a mouse wheel event.\n // Normalize this value to match trackpad.\n value = Math.floor(value / WHEEL_DELTA_MAGIC_SCALER);\n }\n if (event.shiftKey && value) {\n value = value * SHIFT_MULTIPLIER;\n }\n this.callback({\n type: EVENT_TYPE,\n center: {\n x: event.clientX,\n y: event.clientY\n },\n delta: -value,\n srcEvent: event,\n pointerType: 'mouse',\n target: event.target\n });\n };\n this.events = (this.options.events || []).concat(WHEEL_EVENTS);\n this.events.forEach(event => element.addEventListener(event, this.handleEvent, passiveSupported ? {\n passive: false\n } : false));\n }\n destroy() {\n this.events.forEach(event => this.element.removeEventListener(event, this.handleEvent));\n }\n /**\n * Enable this input (begin processing events)\n * if the specified event type is among those handled by this input.\n */\n enableEventType(eventType, enabled) {\n if (eventType === EVENT_TYPE) {\n this.options.enable = enabled;\n }\n }\n}","import Input from './input';\nimport { INPUT_EVENT_TYPES } from '../constants';\nconst {\n MOUSE_EVENTS\n} = INPUT_EVENT_TYPES;\nconst MOVE_EVENT_TYPE = 'pointermove';\nconst OVER_EVENT_TYPE = 'pointerover';\nconst OUT_EVENT_TYPE = 'pointerout';\nconst ENTER_EVENT_TYPE = 'pointerenter';\nconst LEAVE_EVENT_TYPE = 'pointerleave';\n/**\n * Hammer.js swallows 'move' events (for pointer/touch/mouse)\n * when the pointer is not down. This class sets up a handler\n * specifically for these events to work around this limitation.\n * Note that this could be extended to more intelligently handle\n * move events across input types, e.g. storing multiple simultaneous\n * pointer/touch events, calculating speed/direction, etc.\n */\nexport default class MoveInput extends Input {\n constructor(element, callback, options) {\n super(element, callback, options);\n this.handleEvent = event => {\n this.handleOverEvent(event);\n this.handleOutEvent(event);\n this.handleEnterEvent(event);\n this.handleLeaveEvent(event);\n this.handleMoveEvent(event);\n };\n this.pressed = false;\n const {\n enable\n } = this.options;\n this.enableMoveEvent = enable;\n this.enableLeaveEvent = enable;\n this.enableEnterEvent = enable;\n this.enableOutEvent = enable;\n this.enableOverEvent = enable;\n this.events = (this.options.events || []).concat(MOUSE_EVENTS);\n this.events.forEach(event => element.addEventListener(event, this.handleEvent));\n }\n destroy() {\n this.events.forEach(event => this.element.removeEventListener(event, this.handleEvent));\n }\n /**\n * Enable this input (begin processing events)\n * if the specified event type is among those handled by this input.\n */\n enableEventType(eventType, enabled) {\n if (eventType === MOVE_EVENT_TYPE) {\n this.enableMoveEvent = enabled;\n }\n if (eventType === OVER_EVENT_TYPE) {\n this.enableOverEvent = enabled;\n }\n if (eventType === OUT_EVENT_TYPE) {\n this.enableOutEvent = enabled;\n }\n if (eventType === ENTER_EVENT_TYPE) {\n this.enableEnterEvent = enabled;\n }\n if (eventType === LEAVE_EVENT_TYPE) {\n this.enableLeaveEvent = enabled;\n }\n }\n handleOverEvent(event) {\n if (this.enableOverEvent) {\n if (event.type === 'mouseover') {\n this._emit(OVER_EVENT_TYPE, event);\n }\n }\n }\n handleOutEvent(event) {\n if (this.enableOutEvent) {\n if (event.type === 'mouseout') {\n this._emit(OUT_EVENT_TYPE, event);\n }\n }\n }\n handleEnterEvent(event) {\n if (this.enableEnterEvent) {\n if (event.type === 'mouseenter') {\n this._emit(ENTER_EVENT_TYPE, event);\n }\n }\n }\n handleLeaveEvent(event) {\n if (this.enableLeaveEvent) {\n if (event.type === 'mouseleave') {\n this._emit(LEAVE_EVENT_TYPE, event);\n }\n }\n }\n handleMoveEvent(event) {\n if (this.enableMoveEvent) {\n switch (event.type) {\n case 'mousedown':\n if (event.button >= 0) {\n // Button is down\n this.pressed = true;\n }\n break;\n case 'mousemove':\n // Move events use `which` to track the button being pressed\n if (event.which === 0) {\n // Button is not down\n this.pressed = false;\n }\n if (!this.pressed) {\n // Drag events are emitted by hammer already\n // we just need to emit the move event on hover\n this._emit(MOVE_EVENT_TYPE, event);\n }\n break;\n case 'mouseup':\n this.pressed = false;\n break;\n default:\n }\n }\n }\n _emit(type, event) {\n this.callback({\n type,\n center: {\n x: event.clientX,\n y: event.clientY\n },\n srcEvent: event,\n pointerType: 'mouse',\n target: event.target\n });\n }\n}","import Input from './input';\nimport { INPUT_EVENT_TYPES } from '../constants';\nconst {\n KEY_EVENTS\n} = INPUT_EVENT_TYPES;\nconst DOWN_EVENT_TYPE = 'keydown';\nconst UP_EVENT_TYPE = 'keyup';\nexport default class KeyInput extends Input {\n constructor(element, callback, options) {\n super(element, callback, options);\n this.handleEvent = event => {\n // Ignore if focused on text input\n const targetElement = event.target || event.srcElement;\n if (targetElement.tagName === 'INPUT' && targetElement.type === 'text' || targetElement.tagName === 'TEXTAREA') {\n return;\n }\n if (this.enableDownEvent && event.type === 'keydown') {\n this.callback({\n type: DOWN_EVENT_TYPE,\n srcEvent: event,\n key: event.key,\n target: event.target\n });\n }\n if (this.enableUpEvent && event.type === 'keyup') {\n this.callback({\n type: UP_EVENT_TYPE,\n srcEvent: event,\n key: event.key,\n target: event.target\n });\n }\n };\n this.enableDownEvent = this.options.enable;\n this.enableUpEvent = this.options.enable;\n this.events = (this.options.events || []).concat(KEY_EVENTS);\n element.tabIndex = this.options.tabIndex || 0;\n element.style.outline = 'none';\n this.events.forEach(event => element.addEventListener(event, this.handleEvent));\n }\n destroy() {\n this.events.forEach(event => this.element.removeEventListener(event, this.handleEvent));\n }\n /**\n * Enable this input (begin processing events)\n * if the specified event type is among those handled by this input.\n */\n enableEventType(eventType, enabled) {\n if (eventType === DOWN_EVENT_TYPE) {\n this.enableDownEvent = enabled;\n }\n if (eventType === UP_EVENT_TYPE) {\n this.enableUpEvent = enabled;\n }\n }\n}","import Input from './input';\nconst EVENT_TYPE = 'contextmenu';\nexport default class ContextmenuInput extends Input {\n constructor(element, callback, options) {\n super(element, callback, options);\n this.handleEvent = event => {\n if (!this.options.enable) {\n return;\n }\n this.callback({\n type: EVENT_TYPE,\n center: {\n x: event.clientX,\n y: event.clientY\n },\n srcEvent: event,\n pointerType: 'mouse',\n target: event.target\n });\n };\n element.addEventListener('contextmenu', this.handleEvent);\n }\n destroy() {\n this.element.removeEventListener('contextmenu', this.handleEvent);\n }\n /**\n * Enable this input (begin processing events)\n * if the specified event type is among those handled by this input.\n */\n enableEventType(eventType, enabled) {\n if (eventType === EVENT_TYPE) {\n this.options.enable = enabled;\n }\n }\n}","/* Constants */\nconst DOWN_EVENT = 1;\nconst MOVE_EVENT = 2;\nconst UP_EVENT = 4;\nconst MOUSE_EVENTS = {\n pointerdown: DOWN_EVENT,\n pointermove: MOVE_EVENT,\n pointerup: UP_EVENT,\n mousedown: DOWN_EVENT,\n mousemove: MOVE_EVENT,\n mouseup: UP_EVENT\n};\n// MouseEvent.which https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/which\nconst MOUSE_EVENT_WHICH_LEFT = 1;\nconst MOUSE_EVENT_WHICH_MIDDLE = 2;\nconst MOUSE_EVENT_WHICH_RIGHT = 3;\n// MouseEvent.button https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\nconst MOUSE_EVENT_BUTTON_LEFT = 0;\nconst MOUSE_EVENT_BUTTON_MIDDLE = 1;\nconst MOUSE_EVENT_BUTTON_RIGHT = 2;\n// MouseEvent.buttons https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\nconst MOUSE_EVENT_BUTTONS_LEFT_MASK = 1;\nconst MOUSE_EVENT_BUTTONS_RIGHT_MASK = 2;\nconst MOUSE_EVENT_BUTTONS_MIDDLE_MASK = 4;\n/**\n * Extract the involved mouse button\n */\nexport function whichButtons(event) {\n const eventType = MOUSE_EVENTS[event.srcEvent.type];\n if (!eventType) {\n // Not a mouse evet\n return null;\n }\n const {\n buttons,\n button,\n which\n } = event.srcEvent;\n let leftButton = false;\n let middleButton = false;\n let rightButton = false;\n if (\n // button is up, need to find out which one was pressed before\n eventType === UP_EVENT ||\n // moving but does not support `buttons` API\n eventType === MOVE_EVENT && !Number.isFinite(buttons)) {\n leftButton = which === MOUSE_EVENT_WHICH_LEFT;\n middleButton = which === MOUSE_EVENT_WHICH_MIDDLE;\n rightButton = which === MOUSE_EVENT_WHICH_RIGHT;\n } else if (eventType === MOVE_EVENT) {\n leftButton = Boolean(buttons & MOUSE_EVENT_BUTTONS_LEFT_MASK);\n middleButton = Boolean(buttons & MOUSE_EVENT_BUTTONS_MIDDLE_MASK);\n rightButton = Boolean(buttons & MOUSE_EVENT_BUTTONS_RIGHT_MASK);\n } else if (eventType === DOWN_EVENT) {\n leftButton = button === MOUSE_EVENT_BUTTON_LEFT;\n middleButton = button === MOUSE_EVENT_BUTTON_MIDDLE;\n rightButton = button === MOUSE_EVENT_BUTTON_RIGHT;\n }\n return {\n leftButton,\n middleButton,\n rightButton\n };\n}\n/**\n * Calculate event position relative to the root element\n */\nexport function getOffsetPosition(event, rootElement) {\n const center = event.center;\n // `center` is a hammer.js event property\n if (!center) {\n // Not a gestural event\n return null;\n }\n const rect = rootElement.getBoundingClientRect();\n // Fix scale for map affected by a CSS transform.\n // See https://stackoverflow.com/a/26893663/3528533\n const scaleX = rect.width / rootElement.offsetWidth || 1;\n const scaleY = rect.height / rootElement.offsetHeight || 1;\n // Calculate center relative to the root element\n const offsetCenter = {\n x: (center.x - rect.left - rootElement.clientLeft) / scaleX,\n y: (center.y - rect.top - rootElement.clientTop) / scaleY\n };\n return {\n center,\n offsetCenter\n };\n}","import { whichButtons, getOffsetPosition } from './event-utils';\nconst DEFAULT_OPTIONS = {\n srcElement: 'root',\n priority: 0\n};\nexport default class EventRegistrar {\n constructor(eventManager) {\n /**\n * Handles hammerjs event\n */\n this.handleEvent = event => {\n if (this.isEmpty()) {\n return;\n }\n const mjolnirEvent = this._normalizeEvent(event);\n let target = event.srcEvent.target;\n while (target && target !== mjolnirEvent.rootElement) {\n this._emit(mjolnirEvent, target);\n if (mjolnirEvent.handled) {\n return;\n }\n target = target.parentNode;\n }\n this._emit(mjolnirEvent, 'root');\n };\n this.eventManager = eventManager;\n this.handlers = [];\n // Element -> handler map\n this.handlersByElement = new Map();\n this._active = false;\n }\n // Returns true if there are no non-passive handlers\n isEmpty() {\n return !this._active;\n }\n add(type, handler, options) {\n let once = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n let passive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n const {\n handlers,\n handlersByElement\n } = this;\n let opts = DEFAULT_OPTIONS;\n if (typeof options === 'string' || options && options.addEventListener) {\n // is DOM element, backward compatibility\n // @ts-ignore\n opts = {\n ...DEFAULT_OPTIONS,\n srcElement: options\n };\n } else if (options) {\n opts = {\n ...DEFAULT_OPTIONS,\n ...options\n };\n }\n let entries = handlersByElement.get(opts.srcElement);\n if (!entries) {\n entries = [];\n handlersByElement.set(opts.srcElement, entries);\n }\n const entry = {\n type,\n handler,\n srcElement: opts.srcElement,\n priority: opts.priority\n };\n if (once) {\n entry.once = true;\n }\n if (passive) {\n entry.passive = true;\n }\n handlers.push(entry);\n this._active = this._active || !entry.passive;\n // Sort handlers by descending priority\n // Handlers with the same priority are excuted in the order of registration\n let insertPosition = entries.length - 1;\n while (insertPosition >= 0) {\n if (entries[insertPosition].priority >= entry.priority) {\n break;\n }\n insertPosition--;\n }\n entries.splice(insertPosition + 1, 0, entry);\n }\n remove(type, handler) {\n const {\n handlers,\n handlersByElement\n } = this;\n for (let i = handlers.length - 1; i >= 0; i--) {\n const entry = handlers[i];\n if (entry.type === type && entry.handler === handler) {\n handlers.splice(i, 1);\n const entries = handlersByElement.get(entry.srcElement);\n entries.splice(entries.indexOf(entry), 1);\n if (entries.length === 0) {\n handlersByElement.delete(entry.srcElement);\n }\n }\n }\n this._active = handlers.some(entry => !entry.passive);\n }\n /**\n * Invoke handlers on a particular element\n */\n _emit(event, srcElement) {\n const entries = this.handlersByElement.get(srcElement);\n if (entries) {\n let immediatePropagationStopped = false;\n // Prevents the current event from bubbling up\n const stopPropagation = () => {\n event.handled = true;\n };\n // Prevent any remaining listeners from being called\n const stopImmediatePropagation = () => {\n event.handled = true;\n immediatePropagationStopped = true;\n };\n const entriesToRemove = [];\n for (let i = 0; i < entries.length; i++) {\n const {\n type,\n handler,\n once\n } = entries[i];\n handler({\n ...event,\n // @ts-ignore\n type,\n stopPropagation,\n stopImmediatePropagation\n });\n if (once) {\n entriesToRemove.push(entries[i]);\n }\n if (immediatePropagationStopped) {\n break;\n }\n }\n for (let i = 0; i < entriesToRemove.length; i++) {\n const {\n type,\n handler\n } = entriesToRemove[i];\n this.remove(type, handler);\n }\n }\n }\n /**\n * Normalizes hammerjs and custom events to have predictable fields.\n */\n _normalizeEvent(event) {\n const rootElement = this.eventManager.getElement();\n return {\n ...event,\n ...whichButtons(event),\n ...getOffsetPosition(event, rootElement),\n preventDefault: () => {\n event.srcEvent.preventDefault();\n },\n stopImmediatePropagation: null,\n stopPropagation: null,\n handled: false,\n rootElement\n };\n }\n}","import { Manager } from './utils/hammer';\nimport WheelInput from './inputs/wheel-input';\nimport MoveInput from './inputs/move-input';\nimport KeyInput from './inputs/key-input';\nimport ContextmenuInput from './inputs/contextmenu-input';\nimport EventRegistrar from './utils/event-registrar';\nimport { BASIC_EVENT_ALIASES, EVENT_RECOGNIZER_MAP, GESTURE_EVENT_ALIASES, RECOGNIZERS, RECOGNIZER_COMPATIBLE_MAP, RECOGNIZER_FALLBACK_MAP } from './constants';\nconst DEFAULT_OPTIONS = {\n // event handlers\n events: null,\n // custom recognizers\n recognizers: null,\n recognizerOptions: {},\n // Manager class\n Manager,\n // allow browser default touch action\n // https://github.com/uber/react-map-gl/issues/506\n touchAction: 'none',\n tabIndex: 0\n};\n// Unified API for subscribing to events about both\n// basic input events (e.g. 'mousemove', 'touchstart', 'wheel')\n// and gestural input (e.g. 'click', 'tap', 'panstart').\n// Delegates gesture related event registration and handling to Hammer.js.\nexport default class EventManager {\n constructor() {\n let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n let options = arguments.length > 1 ? arguments[1] : undefined;\n /**\n * Handle basic events using the 'hammer.input' Hammer.js API:\n * Before running Recognizers, Hammer emits a 'hammer.input' event\n * with the basic event info. This function emits all basic events\n * aliased to the \"class\" of event received.\n * See constants.BASIC_EVENT_CLASSES basic event class definitions.\n */\n this._onBasicInput = event => {\n const {\n srcEvent\n } = event;\n const alias = BASIC_EVENT_ALIASES[srcEvent.type];\n if (alias) {\n // fire all events aliased to srcEvent.type\n this.manager.emit(alias, event);\n }\n };\n /**\n * Handle events not supported by Hammer.js,\n * and pipe back out through same (Hammer) channel used by other events.\n */\n this._onOtherEvent = event => {\n // console.log('onotherevent', event.type, event)\n this.manager.emit(event.type, event);\n };\n this.options = {\n ...DEFAULT_OPTIONS,\n ...options\n };\n this.events = new Map();\n this.setElement(element);\n // Register all passed events.\n const {\n events\n } = this.options;\n if (events) {\n this.on(events);\n }\n }\n getElement() {\n return this.element;\n }\n setElement(element) {\n if (this.element) {\n // unregister all events\n this.destroy();\n }\n this.element = element;\n if (!element) {\n return;\n }\n const {\n options\n } = this;\n const ManagerClass = options.Manager;\n this.manager = new ManagerClass(element, {\n touchAction: options.touchAction,\n recognizers: options.recognizers || RECOGNIZERS\n }).on('hammer.input', this._onBasicInput);\n if (!options.recognizers) {\n // Set default recognize withs\n // http://hammerjs.github.io/recognize-with/\n Object.keys(RECOGNIZER_COMPATIBLE_MAP).forEach(name => {\n const recognizer = this.manager.get(name);\n if (recognizer) {\n RECOGNIZER_COMPATIBLE_MAP[name].forEach(otherName => {\n recognizer.recognizeWith(otherName);\n });\n }\n });\n }\n // Set recognizer options\n for (const recognizerName in options.recognizerOptions) {\n const recognizer = this.manager.get(recognizerName);\n if (recognizer) {\n const recognizerOption = options.recognizerOptions[recognizerName];\n // `enable` is managed by the event registrations\n delete recognizerOption.enable;\n recognizer.set(recognizerOption);\n }\n }\n // Handle events not handled by Hammer.js:\n // - mouse wheel\n // - pointer/touch/mouse move\n this.wheelInput = new WheelInput(element, this._onOtherEvent, {\n enable: false\n });\n this.moveInput = new MoveInput(element, this._onOtherEvent, {\n enable: false\n });\n this.keyInput = new KeyInput(element, this._onOtherEvent, {\n enable: false,\n tabIndex: options.tabIndex\n });\n this.contextmenuInput = new ContextmenuInput(element, this._onOtherEvent, {\n enable: false\n });\n // Register all existing events\n for (const [eventAlias, eventRegistrar] of this.events) {\n if (!eventRegistrar.isEmpty()) {\n // Enable recognizer for this event.\n this._toggleRecognizer(eventRegistrar.recognizerName, true);\n this.manager.on(eventAlias, eventRegistrar.handleEvent);\n }\n }\n }\n // Tear down internal event management implementations.\n destroy() {\n if (this.element) {\n // wheelInput etc. are created in setElement() and therefore\n // cannot exist if there is no element\n this.wheelInput.destroy();\n this.moveInput.destroy();\n this.keyInput.destroy();\n this.contextmenuInput.destroy();\n this.manager.destroy();\n this.wheelInput = null;\n this.moveInput = null;\n this.keyInput = null;\n this.contextmenuInput = null;\n this.manager = null;\n this.element = null;\n }\n }\n /** Register an event handler function to be called on `event` */\n on(event, handler, opts) {\n this._addEventHandler(event, handler, opts, false);\n }\n once(event, handler, opts) {\n this._addEventHandler(event, handler, opts, true);\n }\n watch(event, handler, opts) {\n this._addEventHandler(event, handler, opts, false, true);\n }\n off(event, handler) {\n this._removeEventHandler(event, handler);\n }\n /*\n * Enable/disable recognizer for the given event\n */\n _toggleRecognizer(name, enabled) {\n const {\n manager\n } = this;\n if (!manager) {\n return;\n }\n const recognizer = manager.get(name);\n // @ts-ignore\n if (recognizer && recognizer.options.enable !== enabled) {\n recognizer.set({\n enable: enabled\n });\n const fallbackRecognizers = RECOGNIZER_FALLBACK_MAP[name];\n if (fallbackRecognizers && !this.options.recognizers) {\n // Set default require failures\n // http://hammerjs.github.io/require-failure/\n fallbackRecognizers.forEach(otherName => {\n const otherRecognizer = manager.get(otherName);\n if (enabled) {\n // Wait for this recognizer to fail\n otherRecognizer.requireFailure(name);\n /**\n * This seems to be a bug in hammerjs:\n * requireFailure() adds both ways\n * dropRequireFailure() only drops one way\n * https://github.com/hammerjs/hammer.js/blob/master/src/recognizerjs/\n recognizer-constructor.js#L136\n */\n recognizer.dropRequireFailure(otherName);\n } else {\n // Do not wait for this recognizer to fail\n otherRecognizer.dropRequireFailure(name);\n }\n });\n }\n }\n this.wheelInput.enableEventType(name, enabled);\n this.moveInput.enableEventType(name, enabled);\n this.keyInput.enableEventType(name, enabled);\n this.contextmenuInput.enableEventType(name, enabled);\n }\n /**\n * Process the event registration for a single event + handler.\n */\n _addEventHandler(event, handler, opts, once, passive) {\n if (typeof event !== 'string') {\n // @ts-ignore\n opts = handler;\n // If `event` is a map, call `on()` for each entry.\n for (const eventName in event) {\n this._addEventHandler(eventName, event[eventName], opts, once, passive);\n }\n return;\n }\n const {\n manager,\n events\n } = this;\n // Alias to a recognized gesture as necessary.\n const eventAlias = GESTURE_EVENT_ALIASES[event] || event;\n let eventRegistrar = events.get(eventAlias);\n if (!eventRegistrar) {\n eventRegistrar = new EventRegistrar(this);\n events.set(eventAlias, eventRegistrar);\n // Enable recognizer for this event.\n eventRegistrar.recognizerName = EVENT_RECOGNIZER_MAP[eventAlias] || eventAlias;\n // Listen to the event\n if (manager) {\n manager.on(eventAlias, eventRegistrar.handleEvent);\n }\n }\n eventRegistrar.add(event, handler, opts, once, passive);\n if (!eventRegistrar.isEmpty()) {\n this._toggleRecognizer(eventRegistrar.recognizerName, true);\n }\n }\n /**\n * Process the event deregistration for a single event + handler.\n */\n _removeEventHandler(event, handler) {\n if (typeof event !== 'string') {\n // If `event` is a map, call `off()` for each entry.\n for (const eventName in event) {\n this._removeEventHandler(eventName, event[eventName]);\n }\n return;\n }\n const {\n events\n } = this;\n // Alias to a recognized gesture as necessary.\n const eventAlias = GESTURE_EVENT_ALIASES[event] || event;\n const eventRegistrar = events.get(eventAlias);\n if (!eventRegistrar) {\n return;\n }\n eventRegistrar.remove(event, handler);\n if (eventRegistrar.isEmpty()) {\n const {\n recognizerName\n } = eventRegistrar;\n // Disable recognizer if no more handlers are attached to its events\n let isRecognizerUsed = false;\n for (const eh of events.values()) {\n if (eh.recognizerName === recognizerName && !eh.isEmpty()) {\n isRecognizerUsed = true;\n break;\n }\n }\n if (!isRecognizerUsed) {\n this._toggleRecognizer(recognizerName, false);\n }\n }\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport MapState from './map-state';\nimport { LinearInterpolator } from './transition';\nimport TransitionManager, { TRANSITION_EVENTS } from './transition-manager';\nvar NO_TRANSITION_PROPS = {\n transitionDuration: 0\n};\nexport var LINEAR_TRANSITION_PROPS = {\n transitionDuration: 300,\n transitionEasing: function transitionEasing(t) {\n return t;\n },\n transitionInterpolator: new LinearInterpolator(),\n transitionInterruption: TRANSITION_EVENTS.BREAK\n};\nvar DEFAULT_INERTIA = 300;\nvar INERTIA_EASING = function INERTIA_EASING(t) {\n return 1 - (1 - t) * (1 - t);\n};\nvar EVENT_TYPES = {\n WHEEL: ['wheel'],\n PAN: ['panstart', 'panmove', 'panend'],\n PINCH: ['pinchstart', 'pinchmove', 'pinchend'],\n TRIPLE_PAN: ['tripanstart', 'tripanmove', 'tripanend'],\n DOUBLE_TAP: ['doubletap'],\n KEYBOARD: ['keydown']\n};\nvar MapController = function () {\n function MapController() {\n var _this = this;\n _classCallCheck(this, MapController);\n _defineProperty(this, \"events\", []);\n _defineProperty(this, \"scrollZoom\", true);\n _defineProperty(this, \"dragPan\", true);\n _defineProperty(this, \"dragRotate\", true);\n _defineProperty(this, \"doubleClickZoom\", true);\n _defineProperty(this, \"touchZoom\", true);\n _defineProperty(this, \"touchRotate\", false);\n _defineProperty(this, \"keyboard\", true);\n _defineProperty(this, \"_interactionState\", {\n isDragging: false\n });\n _defineProperty(this, \"_events\", {});\n _defineProperty(this, \"_setInteractionState\", function (newState) {\n Object.assign(_this._interactionState, newState);\n if (_this.onStateChange) {\n _this.onStateChange(_this._interactionState);\n }\n });\n _defineProperty(this, \"_onTransition\", function (newViewport, oldViewport) {\n _this.onViewportChange(newViewport, _this._interactionState, oldViewport);\n });\n this.handleEvent = this.handleEvent.bind(this);\n this._transitionManager = new TransitionManager({\n onViewportChange: this._onTransition,\n onStateChange: this._setInteractionState\n });\n }\n _createClass(MapController, [{\n key: \"handleEvent\",\n value: function handleEvent(event) {\n this.mapState = this.getMapState();\n var eventStartBlocked = this._eventStartBlocked;\n switch (event.type) {\n case 'panstart':\n return eventStartBlocked ? false : this._onPanStart(event);\n case 'panmove':\n return this._onPan(event);\n case 'panend':\n return this._onPanEnd(event);\n case 'pinchstart':\n return eventStartBlocked ? false : this._onPinchStart(event);\n case 'pinchmove':\n return this._onPinch(event);\n case 'pinchend':\n return this._onPinchEnd(event);\n case 'tripanstart':\n return eventStartBlocked ? false : this._onTriplePanStart(event);\n case 'tripanmove':\n return this._onTriplePan(event);\n case 'tripanend':\n return this._onTriplePanEnd(event);\n case 'doubletap':\n return this._onDoubleTap(event);\n case 'wheel':\n return this._onWheel(event);\n case 'keydown':\n return this._onKeyDown(event);\n default:\n return false;\n }\n }\n }, {\n key: \"getCenter\",\n value: function getCenter(event) {\n var _event$offsetCenter = event.offsetCenter,\n x = _event$offsetCenter.x,\n y = _event$offsetCenter.y;\n return [x, y];\n }\n }, {\n key: \"isFunctionKeyPressed\",\n value: function isFunctionKeyPressed(event) {\n var srcEvent = event.srcEvent;\n return Boolean(srcEvent.metaKey || srcEvent.altKey || srcEvent.ctrlKey || srcEvent.shiftKey);\n }\n }, {\n key: \"blockEvents\",\n value: function blockEvents(timeout) {\n var _this2 = this;\n var timer = setTimeout(function () {\n if (_this2._eventStartBlocked === timer) {\n _this2._eventStartBlocked = null;\n }\n }, timeout);\n this._eventStartBlocked = timer;\n }\n }, {\n key: \"updateViewport\",\n value: function updateViewport(newMapState, extraProps, interactionState) {\n var oldViewport = this.mapState instanceof MapState ? this.mapState.getViewportProps() : this.mapState;\n var newViewport = _objectSpread(_objectSpread({}, newMapState.getViewportProps()), extraProps);\n var viewStateChanged = Object.keys(newViewport).some(function (key) {\n return oldViewport[key] !== newViewport[key];\n });\n this._state = newMapState.getState();\n this._setInteractionState(interactionState);\n if (viewStateChanged) {\n this.onViewportChange(newViewport, this._interactionState, oldViewport);\n }\n }\n }, {\n key: \"getMapState\",\n value: function getMapState(overrides) {\n return new MapState(_objectSpread(_objectSpread(_objectSpread({}, this.mapStateProps), this._state), overrides));\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n return this._interactionState.isDragging;\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var onViewportChange = options.onViewportChange,\n onStateChange = options.onStateChange,\n _options$eventManager = options.eventManager,\n eventManager = _options$eventManager === void 0 ? this.eventManager : _options$eventManager,\n _options$isInteractiv = options.isInteractive,\n isInteractive = _options$isInteractiv === void 0 ? true : _options$isInteractiv,\n _options$scrollZoom = options.scrollZoom,\n scrollZoom = _options$scrollZoom === void 0 ? this.scrollZoom : _options$scrollZoom,\n _options$dragPan = options.dragPan,\n dragPan = _options$dragPan === void 0 ? this.dragPan : _options$dragPan,\n _options$dragRotate = options.dragRotate,\n dragRotate = _options$dragRotate === void 0 ? this.dragRotate : _options$dragRotate,\n _options$doubleClickZ = options.doubleClickZoom,\n doubleClickZoom = _options$doubleClickZ === void 0 ? this.doubleClickZoom : _options$doubleClickZ,\n _options$touchZoom = options.touchZoom,\n touchZoom = _options$touchZoom === void 0 ? this.touchZoom : _options$touchZoom,\n _options$touchRotate = options.touchRotate,\n touchRotate = _options$touchRotate === void 0 ? this.touchRotate : _options$touchRotate,\n _options$keyboard = options.keyboard,\n keyboard = _options$keyboard === void 0 ? this.keyboard : _options$keyboard;\n this.onViewportChange = onViewportChange;\n this.onStateChange = onStateChange;\n var prevOptions = this.mapStateProps || {};\n var dimensionChanged = prevOptions.height !== options.height || prevOptions.width !== options.width;\n this.mapStateProps = options;\n if (dimensionChanged) {\n this.mapState = prevOptions;\n this.updateViewport(new MapState(options));\n }\n this._transitionManager.processViewportChange(options);\n if (this.eventManager !== eventManager) {\n this.eventManager = eventManager;\n this._events = {};\n this.toggleEvents(this.events, true);\n }\n this.toggleEvents(EVENT_TYPES.WHEEL, isInteractive && Boolean(scrollZoom));\n this.toggleEvents(EVENT_TYPES.PAN, isInteractive && Boolean(dragPan || dragRotate));\n this.toggleEvents(EVENT_TYPES.PINCH, isInteractive && Boolean(touchZoom || touchRotate));\n this.toggleEvents(EVENT_TYPES.TRIPLE_PAN, isInteractive && Boolean(touchRotate));\n this.toggleEvents(EVENT_TYPES.DOUBLE_TAP, isInteractive && Boolean(doubleClickZoom));\n this.toggleEvents(EVENT_TYPES.KEYBOARD, isInteractive && Boolean(keyboard));\n this.scrollZoom = scrollZoom;\n this.dragPan = dragPan;\n this.dragRotate = dragRotate;\n this.doubleClickZoom = doubleClickZoom;\n this.touchZoom = touchZoom;\n this.touchRotate = touchRotate;\n this.keyboard = keyboard;\n }\n }, {\n key: \"toggleEvents\",\n value: function toggleEvents(eventNames, enabled) {\n var _this3 = this;\n if (this.eventManager) {\n eventNames.forEach(function (eventName) {\n if (_this3._events[eventName] !== enabled) {\n _this3._events[eventName] = enabled;\n if (enabled) {\n _this3.eventManager.on(eventName, _this3.handleEvent);\n } else {\n _this3.eventManager.off(eventName, _this3.handleEvent);\n }\n }\n });\n }\n }\n }, {\n key: \"_onPanStart\",\n value: function _onPanStart(event) {\n var pos = this.getCenter(event);\n this._panRotate = this.isFunctionKeyPressed(event) || event.rightButton;\n var newMapState = this._panRotate ? this.mapState.rotateStart({\n pos: pos\n }) : this.mapState.panStart({\n pos: pos\n });\n this.updateViewport(newMapState, NO_TRANSITION_PROPS, {\n isDragging: true\n });\n return true;\n }\n }, {\n key: \"_onPan\",\n value: function _onPan(event) {\n if (!this.isDragging()) {\n return false;\n }\n return this._panRotate ? this._onPanRotate(event) : this._onPanMove(event);\n }\n }, {\n key: \"_onPanEnd\",\n value: function _onPanEnd(event) {\n if (!this.isDragging()) {\n return false;\n }\n return this._panRotate ? this._onPanRotateEnd(event) : this._onPanMoveEnd(event);\n }\n }, {\n key: \"_onPanMove\",\n value: function _onPanMove(event) {\n if (!this.dragPan) {\n return false;\n }\n var pos = this.getCenter(event);\n var newMapState = this.mapState.pan({\n pos: pos\n });\n this.updateViewport(newMapState, NO_TRANSITION_PROPS, {\n isPanning: true\n });\n return true;\n }\n }, {\n key: \"_onPanMoveEnd\",\n value: function _onPanMoveEnd(event) {\n if (this.dragPan) {\n var _this$dragPan$inertia = this.dragPan.inertia,\n inertia = _this$dragPan$inertia === void 0 ? DEFAULT_INERTIA : _this$dragPan$inertia;\n if (inertia && event.velocity) {\n var pos = this.getCenter(event);\n var endPos = [pos[0] + event.velocityX * inertia / 2, pos[1] + event.velocityY * inertia / 2];\n var newControllerState = this.mapState.pan({\n pos: endPos\n }).panEnd();\n this.updateViewport(newControllerState, _objectSpread(_objectSpread({}, LINEAR_TRANSITION_PROPS), {}, {\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n }), {\n isDragging: false,\n isPanning: true\n });\n return true;\n }\n }\n var newMapState = this.mapState.panEnd();\n this.updateViewport(newMapState, null, {\n isDragging: false,\n isPanning: false\n });\n return true;\n }\n }, {\n key: \"_onPanRotate\",\n value: function _onPanRotate(event) {\n if (!this.dragRotate) {\n return false;\n }\n var pos = this.getCenter(event);\n var newMapState = this.mapState.rotate({\n pos: pos\n });\n this.updateViewport(newMapState, NO_TRANSITION_PROPS, {\n isRotating: true\n });\n return true;\n }\n }, {\n key: \"_onPanRotateEnd\",\n value: function _onPanRotateEnd(event) {\n if (this.dragRotate) {\n var _this$dragRotate$iner = this.dragRotate.inertia,\n inertia = _this$dragRotate$iner === void 0 ? DEFAULT_INERTIA : _this$dragRotate$iner;\n if (inertia && event.velocity) {\n var pos = this.getCenter(event);\n var endPos = [pos[0] + event.velocityX * inertia / 2, pos[1] + event.velocityY * inertia / 2];\n var newControllerState = this.mapState.rotate({\n pos: endPos\n }).rotateEnd();\n this.updateViewport(newControllerState, _objectSpread(_objectSpread({}, LINEAR_TRANSITION_PROPS), {}, {\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n }), {\n isDragging: false,\n isRotating: true\n });\n return true;\n }\n }\n var newMapState = this.mapState.panEnd();\n this.updateViewport(newMapState, null, {\n isDragging: false,\n isRotating: false\n });\n return true;\n }\n }, {\n key: \"_onWheel\",\n value: function _onWheel(event) {\n if (!this.scrollZoom) {\n return false;\n }\n var _this$scrollZoom = this.scrollZoom,\n _this$scrollZoom$spee = _this$scrollZoom.speed,\n speed = _this$scrollZoom$spee === void 0 ? 0.01 : _this$scrollZoom$spee,\n _this$scrollZoom$smoo = _this$scrollZoom.smooth,\n smooth = _this$scrollZoom$smoo === void 0 ? false : _this$scrollZoom$smoo;\n event.preventDefault();\n var pos = this.getCenter(event);\n var delta = event.delta;\n var scale = 2 / (1 + Math.exp(-Math.abs(delta * speed)));\n if (delta < 0 && scale !== 0) {\n scale = 1 / scale;\n }\n var newMapState = this.mapState.zoom({\n pos: pos,\n scale: scale\n });\n if (newMapState.getViewportProps().zoom === this.mapStateProps.zoom) {\n return false;\n }\n this.updateViewport(newMapState, _objectSpread(_objectSpread({}, LINEAR_TRANSITION_PROPS), {}, {\n transitionInterpolator: new LinearInterpolator({\n around: pos\n }),\n transitionDuration: smooth ? 250 : 1\n }), {\n isPanning: true,\n isZooming: true\n });\n return true;\n }\n }, {\n key: \"_onPinchStart\",\n value: function _onPinchStart(event) {\n var pos = this.getCenter(event);\n var newMapState = this.mapState.zoomStart({\n pos: pos\n }).rotateStart({\n pos: pos\n });\n this._startPinchRotation = event.rotation;\n this._lastPinchEvent = event;\n this.updateViewport(newMapState, NO_TRANSITION_PROPS, {\n isDragging: true\n });\n return true;\n }\n }, {\n key: \"_onPinch\",\n value: function _onPinch(event) {\n if (!this.isDragging()) {\n return false;\n }\n if (!this.touchZoom && !this.touchRotate) {\n return false;\n }\n var newMapState = this.mapState;\n if (this.touchZoom) {\n var scale = event.scale;\n var pos = this.getCenter(event);\n newMapState = newMapState.zoom({\n pos: pos,\n scale: scale\n });\n }\n if (this.touchRotate) {\n var rotation = event.rotation;\n newMapState = newMapState.rotate({\n deltaAngleX: this._startPinchRotation - rotation\n });\n }\n this.updateViewport(newMapState, NO_TRANSITION_PROPS, {\n isDragging: true,\n isPanning: Boolean(this.touchZoom),\n isZooming: Boolean(this.touchZoom),\n isRotating: Boolean(this.touchRotate)\n });\n this._lastPinchEvent = event;\n return true;\n }\n }, {\n key: \"_onPinchEnd\",\n value: function _onPinchEnd(event) {\n if (!this.isDragging()) {\n return false;\n }\n if (this.touchZoom) {\n var _this$touchZoom$inert = this.touchZoom.inertia,\n inertia = _this$touchZoom$inert === void 0 ? DEFAULT_INERTIA : _this$touchZoom$inert;\n var _lastPinchEvent = this._lastPinchEvent;\n if (inertia && _lastPinchEvent && event.scale !== _lastPinchEvent.scale) {\n var pos = this.getCenter(event);\n var _newMapState = this.mapState.rotateEnd();\n var z = Math.log2(event.scale);\n var velocityZ = (z - Math.log2(_lastPinchEvent.scale)) / (event.deltaTime - _lastPinchEvent.deltaTime);\n var endScale = Math.pow(2, z + velocityZ * inertia / 2);\n _newMapState = _newMapState.zoom({\n pos: pos,\n scale: endScale\n }).zoomEnd();\n this.updateViewport(_newMapState, _objectSpread(_objectSpread({}, LINEAR_TRANSITION_PROPS), {}, {\n transitionInterpolator: new LinearInterpolator({\n around: pos\n }),\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n }), {\n isDragging: false,\n isPanning: Boolean(this.touchZoom),\n isZooming: Boolean(this.touchZoom),\n isRotating: false\n });\n this.blockEvents(inertia);\n return true;\n }\n }\n var newMapState = this.mapState.zoomEnd().rotateEnd();\n this._state.startPinchRotation = 0;\n this.updateViewport(newMapState, null, {\n isDragging: false,\n isPanning: false,\n isZooming: false,\n isRotating: false\n });\n this._startPinchRotation = null;\n this._lastPinchEvent = null;\n return true;\n }\n }, {\n key: \"_onTriplePanStart\",\n value: function _onTriplePanStart(event) {\n var pos = this.getCenter(event);\n var newMapState = this.mapState.rotateStart({\n pos: pos\n });\n this.updateViewport(newMapState, NO_TRANSITION_PROPS, {\n isDragging: true\n });\n return true;\n }\n }, {\n key: \"_onTriplePan\",\n value: function _onTriplePan(event) {\n if (!this.isDragging()) {\n return false;\n }\n if (!this.touchRotate) {\n return false;\n }\n var pos = this.getCenter(event);\n pos[0] -= event.deltaX;\n var newMapState = this.mapState.rotate({\n pos: pos\n });\n this.updateViewport(newMapState, NO_TRANSITION_PROPS, {\n isRotating: true\n });\n return true;\n }\n }, {\n key: \"_onTriplePanEnd\",\n value: function _onTriplePanEnd(event) {\n if (!this.isDragging()) {\n return false;\n }\n if (this.touchRotate) {\n var _this$touchRotate$ine = this.touchRotate.inertia,\n inertia = _this$touchRotate$ine === void 0 ? DEFAULT_INERTIA : _this$touchRotate$ine;\n if (inertia && event.velocityY) {\n var pos = this.getCenter(event);\n var endPos = [pos[0], pos[1] += event.velocityY * inertia / 2];\n var _newMapState2 = this.mapState.rotate({\n pos: endPos\n });\n this.updateViewport(_newMapState2, _objectSpread(_objectSpread({}, LINEAR_TRANSITION_PROPS), {}, {\n transitionDuration: inertia,\n transitionEasing: INERTIA_EASING\n }), {\n isDragging: false,\n isRotating: true\n });\n this.blockEvents(inertia);\n return false;\n }\n }\n var newMapState = this.mapState.rotateEnd();\n this.updateViewport(newMapState, null, {\n isDragging: false,\n isRotating: false\n });\n return true;\n }\n }, {\n key: \"_onDoubleTap\",\n value: function _onDoubleTap(event) {\n if (!this.doubleClickZoom) {\n return false;\n }\n var pos = this.getCenter(event);\n var isZoomOut = this.isFunctionKeyPressed(event);\n var newMapState = this.mapState.zoom({\n pos: pos,\n scale: isZoomOut ? 0.5 : 2\n });\n this.updateViewport(newMapState, Object.assign({}, LINEAR_TRANSITION_PROPS, {\n transitionInterpolator: new LinearInterpolator({\n around: pos\n })\n }), {\n isZooming: true\n });\n return true;\n }\n }, {\n key: \"_onKeyDown\",\n value: function _onKeyDown(event) {\n if (!this.keyboard) {\n return false;\n }\n var funcKey = this.isFunctionKeyPressed(event);\n var _this$keyboard = this.keyboard,\n _this$keyboard$zoomSp = _this$keyboard.zoomSpeed,\n zoomSpeed = _this$keyboard$zoomSp === void 0 ? 2 : _this$keyboard$zoomSp,\n _this$keyboard$moveSp = _this$keyboard.moveSpeed,\n moveSpeed = _this$keyboard$moveSp === void 0 ? 100 : _this$keyboard$moveSp,\n _this$keyboard$rotate = _this$keyboard.rotateSpeedX,\n rotateSpeedX = _this$keyboard$rotate === void 0 ? 15 : _this$keyboard$rotate,\n _this$keyboard$rotate2 = _this$keyboard.rotateSpeedY,\n rotateSpeedY = _this$keyboard$rotate2 === void 0 ? 10 : _this$keyboard$rotate2;\n var mapStateProps = this.mapStateProps;\n var newMapState;\n switch (event.srcEvent.keyCode) {\n case 189:\n if (funcKey) {\n newMapState = this.getMapState({\n zoom: mapStateProps.zoom - Math.log2(zoomSpeed) - 1\n });\n } else {\n newMapState = this.getMapState({\n zoom: mapStateProps.zoom - Math.log2(zoomSpeed)\n });\n }\n break;\n case 187:\n if (funcKey) {\n newMapState = this.getMapState({\n zoom: mapStateProps.zoom + Math.log2(zoomSpeed) + 1\n });\n } else {\n newMapState = this.getMapState({\n zoom: mapStateProps.zoom + Math.log2(zoomSpeed)\n });\n }\n break;\n case 37:\n if (funcKey) {\n newMapState = this.getMapState({\n bearing: mapStateProps.bearing - rotateSpeedX\n });\n } else {\n newMapState = this.mapState.pan({\n pos: [moveSpeed, 0],\n startPos: [0, 0]\n });\n }\n break;\n case 39:\n if (funcKey) {\n newMapState = this.getMapState({\n bearing: mapStateProps.bearing + rotateSpeedX\n });\n } else {\n newMapState = this.mapState.pan({\n pos: [-moveSpeed, 0],\n startPos: [0, 0]\n });\n }\n break;\n case 38:\n if (funcKey) {\n newMapState = this.getMapState({\n pitch: mapStateProps.pitch + rotateSpeedY\n });\n } else {\n newMapState = this.mapState.pan({\n pos: [0, moveSpeed],\n startPos: [0, 0]\n });\n }\n break;\n case 40:\n if (funcKey) {\n newMapState = this.getMapState({\n pitch: mapStateProps.pitch - rotateSpeedY\n });\n } else {\n newMapState = this.mapState.pan({\n pos: [0, -moveSpeed],\n startPos: [0, 0]\n });\n }\n break;\n default:\n return false;\n }\n return this.updateViewport(newMapState, LINEAR_TRANSITION_PROPS);\n }\n }]);\n return MapController;\n}();\nexport { MapController as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useContext, useRef, useMemo, useEffect, useImperativeHandle, forwardRef } from 'react';\nimport * as PropTypes from 'prop-types';\nimport StaticMap, { getViewport } from './static-map';\nimport { MAPBOX_LIMITS } from '../utils/map-state';\nimport TransitionManager from '../utils/transition-manager';\nimport MapContext, { MapContextProvider } from './map-context';\nimport { EventManager } from 'mjolnir.js';\nimport MapController from '../utils/map-controller';\nimport useIsomorphicLayoutEffect from '../utils/use-isomorphic-layout-effect';\nvar propTypes = Object.assign({}, StaticMap.propTypes, {\n maxZoom: PropTypes.number,\n minZoom: PropTypes.number,\n maxPitch: PropTypes.number,\n minPitch: PropTypes.number,\n onViewStateChange: PropTypes.func,\n onViewportChange: PropTypes.func,\n onInteractionStateChange: PropTypes.func,\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n transitionInterpolator: PropTypes.object,\n transitionInterruption: PropTypes.number,\n transitionEasing: PropTypes.func,\n onTransitionStart: PropTypes.func,\n onTransitionInterrupt: PropTypes.func,\n onTransitionEnd: PropTypes.func,\n scrollZoom: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n dragPan: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n dragRotate: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n doubleClickZoom: PropTypes.bool,\n touchZoom: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n touchRotate: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n keyboard: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n onHover: PropTypes.func,\n onClick: PropTypes.func,\n onDblClick: PropTypes.func,\n onContextMenu: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseUp: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOut: PropTypes.func,\n onWheel: PropTypes.func,\n touchAction: PropTypes.string,\n eventRecognizerOptions: PropTypes.object,\n clickRadius: PropTypes.number,\n interactiveLayerIds: PropTypes.array,\n getCursor: PropTypes.func,\n controller: PropTypes.instanceOf(MapController)\n});\nvar getDefaultCursor = function getDefaultCursor(_ref) {\n var isDragging = _ref.isDragging,\n isHovering = _ref.isHovering;\n return isDragging ? 'grabbing' : isHovering ? 'pointer' : 'grab';\n};\nvar defaultProps = Object.assign({}, StaticMap.defaultProps, MAPBOX_LIMITS, TransitionManager.defaultProps, {\n onViewStateChange: null,\n onViewportChange: null,\n onClick: null,\n onNativeClick: null,\n onHover: null,\n onContextMenu: function onContextMenu(event) {\n return event.preventDefault();\n },\n scrollZoom: true,\n dragPan: true,\n dragRotate: true,\n doubleClickZoom: true,\n touchZoom: true,\n touchRotate: false,\n keyboard: true,\n touchAction: 'none',\n eventRecognizerOptions: {},\n clickRadius: 0,\n getCursor: getDefaultCursor\n});\nfunction normalizeEvent(event) {\n if (event.lngLat || !event.offsetCenter) {\n return event;\n }\n var _event$offsetCenter = event.offsetCenter,\n x = _event$offsetCenter.x,\n y = _event$offsetCenter.y;\n if (!Number.isFinite(x) || !Number.isFinite(y)) {\n return event;\n }\n var pos = [x, y];\n event.point = pos;\n event.lngLat = this.viewport.unproject(pos);\n return event;\n}\nfunction getFeatures(pos) {\n var map = this.map;\n if (!map || !pos) {\n return null;\n }\n var queryParams = {};\n var size = this.props.clickRadius;\n if (this.props.interactiveLayerIds) {\n queryParams.layers = this.props.interactiveLayerIds;\n }\n try {\n return map.queryRenderedFeatures(size ? [[pos[0] - size, pos[1] + size], [pos[0] + size, pos[1] - size]] : pos, queryParams);\n } catch (_unused) {\n return null;\n }\n}\nfunction onEvent(callbackName, event) {\n var func = this.props[callbackName];\n if (func) {\n func(normalizeEvent.call(this, event));\n }\n}\nfunction onPointerDown(event) {\n onEvent.call(this, event.pointerType === 'touch' ? 'onTouchStart' : 'onMouseDown', event);\n}\nfunction onPointerUp(event) {\n onEvent.call(this, event.pointerType === 'touch' ? 'onTouchEnd' : 'onMouseUp', event);\n}\nfunction onPointerMove(event) {\n onEvent.call(this, event.pointerType === 'touch' ? 'onTouchMove' : 'onMouseMove', event);\n if (!this.state.isDragging) {\n var _this$props = this.props,\n onHover = _this$props.onHover,\n interactiveLayerIds = _this$props.interactiveLayerIds;\n var features;\n event = normalizeEvent.call(this, event);\n if (interactiveLayerIds || onHover) {\n features = getFeatures.call(this, event.point);\n }\n var isHovering = Boolean(interactiveLayerIds && features && features.length > 0);\n var isEntering = isHovering && !this.state.isHovering;\n var isExiting = !isHovering && this.state.isHovering;\n if (onHover || isEntering) {\n event.features = features;\n if (onHover) {\n onHover(event);\n }\n }\n if (isEntering) {\n onEvent.call(this, 'onMouseEnter', event);\n }\n if (isExiting) {\n onEvent.call(this, 'onMouseLeave', event);\n }\n if (isEntering || isExiting) {\n this.setState({\n isHovering: isHovering\n });\n }\n }\n}\nfunction onPointerClick(event) {\n var _this$props2 = this.props,\n onClick = _this$props2.onClick,\n onNativeClick = _this$props2.onNativeClick,\n onDblClick = _this$props2.onDblClick,\n doubleClickZoom = _this$props2.doubleClickZoom;\n var callbacks = [];\n var isDoubleClickEnabled = onDblClick || doubleClickZoom;\n switch (event.type) {\n case 'anyclick':\n callbacks.push(onNativeClick);\n if (!isDoubleClickEnabled) {\n callbacks.push(onClick);\n }\n break;\n case 'click':\n if (isDoubleClickEnabled) {\n callbacks.push(onClick);\n }\n break;\n default:\n }\n callbacks = callbacks.filter(Boolean);\n if (callbacks.length) {\n event = normalizeEvent.call(this, event);\n event.features = getFeatures.call(this, event.point);\n callbacks.forEach(function (cb) {\n return cb(event);\n });\n }\n}\nfunction getRefHandles(staticMapRef) {\n return {\n getMap: staticMapRef.current && staticMapRef.current.getMap,\n queryRenderedFeatures: staticMapRef.current && staticMapRef.current.queryRenderedFeatures\n };\n}\nvar InteractiveMap = forwardRef(function (props, ref) {\n var parentContext = useContext(MapContext);\n var controller = useMemo(function () {\n return props.controller || new MapController();\n }, []);\n var eventManager = useMemo(function () {\n return new EventManager(null, {\n touchAction: props.touchAction,\n recognizerOptions: props.eventRecognizerOptions\n });\n }, []);\n var eventCanvasRef = useRef(null);\n var staticMapRef = useRef(null);\n var _thisRef = useRef({\n width: 0,\n height: 0,\n state: {\n isHovering: false,\n isDragging: false\n }\n });\n var thisRef = _thisRef.current;\n thisRef.props = props;\n thisRef.map = staticMapRef.current && staticMapRef.current.getMap();\n thisRef.setState = function (newState) {\n thisRef.state = _objectSpread(_objectSpread({}, thisRef.state), newState);\n eventCanvasRef.current.style.cursor = props.getCursor(thisRef.state);\n };\n var inRender = true;\n var viewportUpdateRequested;\n var stateUpdateRequested;\n var handleViewportChange = function handleViewportChange(viewState, interactionState, oldViewState) {\n if (inRender) {\n viewportUpdateRequested = [viewState, interactionState, oldViewState];\n return;\n }\n var _thisRef$props = thisRef.props,\n onViewStateChange = _thisRef$props.onViewStateChange,\n onViewportChange = _thisRef$props.onViewportChange;\n if (onViewStateChange) {\n onViewStateChange({\n viewState: viewState,\n interactionState: interactionState,\n oldViewState: oldViewState\n });\n }\n if (onViewportChange) {\n onViewportChange(viewState, interactionState, oldViewState);\n }\n };\n useImperativeHandle(ref, function () {\n return getRefHandles(staticMapRef);\n }, []);\n var context = useMemo(function () {\n return _objectSpread(_objectSpread({}, parentContext), {}, {\n eventManager: eventManager,\n container: parentContext.container || eventCanvasRef.current\n });\n }, [parentContext, eventCanvasRef.current]);\n context.onViewportChange = handleViewportChange;\n context.viewport = parentContext.viewport || getViewport(thisRef);\n thisRef.viewport = context.viewport;\n var handleInteractionStateChange = function handleInteractionStateChange(interactionState) {\n var _interactionState$isD = interactionState.isDragging,\n isDragging = _interactionState$isD === void 0 ? false : _interactionState$isD;\n if (isDragging !== thisRef.state.isDragging) {\n thisRef.setState({\n isDragging: isDragging\n });\n }\n if (inRender) {\n stateUpdateRequested = interactionState;\n return;\n }\n var onInteractionStateChange = thisRef.props.onInteractionStateChange;\n if (onInteractionStateChange) {\n onInteractionStateChange(interactionState);\n }\n };\n var updateControllerOpts = function updateControllerOpts() {\n if (thisRef.width && thisRef.height) {\n controller.setOptions(_objectSpread(_objectSpread(_objectSpread({}, thisRef.props), thisRef.props.viewState), {}, {\n isInteractive: Boolean(thisRef.props.onViewStateChange || thisRef.props.onViewportChange),\n onViewportChange: handleViewportChange,\n onStateChange: handleInteractionStateChange,\n eventManager: eventManager,\n width: thisRef.width,\n height: thisRef.height\n }));\n }\n };\n var onResize = function onResize(_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n thisRef.width = width;\n thisRef.height = height;\n updateControllerOpts();\n thisRef.props.onResize({\n width: width,\n height: height\n });\n };\n useEffect(function () {\n eventManager.setElement(eventCanvasRef.current);\n eventManager.on({\n pointerdown: onPointerDown.bind(thisRef),\n pointermove: onPointerMove.bind(thisRef),\n pointerup: onPointerUp.bind(thisRef),\n pointerleave: onEvent.bind(thisRef, 'onMouseOut'),\n click: onPointerClick.bind(thisRef),\n anyclick: onPointerClick.bind(thisRef),\n dblclick: onEvent.bind(thisRef, 'onDblClick'),\n wheel: onEvent.bind(thisRef, 'onWheel'),\n contextmenu: onEvent.bind(thisRef, 'onContextMenu')\n });\n return function () {\n eventManager.destroy();\n };\n }, []);\n useIsomorphicLayoutEffect(function () {\n if (viewportUpdateRequested) {\n handleViewportChange.apply(void 0, _toConsumableArray(viewportUpdateRequested));\n }\n if (stateUpdateRequested) {\n handleInteractionStateChange(stateUpdateRequested);\n }\n });\n updateControllerOpts();\n var width = props.width,\n height = props.height,\n style = props.style,\n getCursor = props.getCursor;\n var eventCanvasStyle = useMemo(function () {\n return _objectSpread(_objectSpread({\n position: 'relative'\n }, style), {}, {\n width: width,\n height: height,\n cursor: getCursor(thisRef.state)\n });\n }, [style, width, height, getCursor, thisRef.state]);\n if (!viewportUpdateRequested || !thisRef._child) {\n thisRef._child = React.createElement(MapContextProvider, {\n value: context\n }, React.createElement(\"div\", {\n key: \"event-canvas\",\n ref: eventCanvasRef,\n style: eventCanvasStyle\n }, React.createElement(StaticMap, _extends({}, props, {\n width: \"100%\",\n height: \"100%\",\n style: null,\n onResize: onResize,\n ref: staticMapRef\n }))));\n }\n inRender = false;\n return thisRef._child;\n});\nInteractiveMap.supported = StaticMap.supported;\nInteractiveMap.propTypes = propTypes;\nInteractiveMap.defaultProps = defaultProps;\nexport default InteractiveMap;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport default function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n } else if (Array.isArray(b)) {\n return false;\n }\n if (_typeof(a) === 'object' && _typeof(b) === 'object') {\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {\n var key = _aKeys[_i];\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport { cloneElement } from 'react';\nimport MapContext from './map-context';\nimport assert from '../utils/assert';\nimport deepEqual from '../utils/deep-equal';\nvar sourceCounter = 0;\nfunction createSource(map, id, props) {\n if (map.style && map.style._loaded) {\n var options = _objectSpread({}, props);\n delete options.id;\n delete options.children;\n map.addSource(id, options);\n return map.getSource(id);\n }\n return null;\n}\nfunction updateSource(source, props, prevProps) {\n assert(props.id === prevProps.id, 'source id changed');\n assert(props.type === prevProps.type, 'source type changed');\n var changedKey = '';\n var changedKeyCount = 0;\n for (var key in props) {\n if (key !== 'children' && key !== 'id' && !deepEqual(prevProps[key], props[key])) {\n changedKey = key;\n changedKeyCount++;\n }\n }\n if (!changedKeyCount) {\n return;\n }\n var type = props.type;\n if (type === 'geojson') {\n source.setData(props.data);\n } else if (type === 'image') {\n source.updateImage({\n url: props.url,\n coordinates: props.coordinates\n });\n } else if ((type === 'canvas' || type === 'video') && changedKeyCount === 1 && changedKey === 'coordinates') {\n source.setCoordinates(props.coordinates);\n } else if (type === 'vector' && source.setUrl) {\n switch (changedKey) {\n case 'url':\n source.setUrl(props.url);\n break;\n case 'tiles':\n source.setTiles(props.tiles);\n break;\n default:\n }\n } else {\n console.warn(\"Unable to update prop: \".concat(changedKey));\n }\n}\nfunction Source(props) {\n var context = useContext(MapContext);\n var propsRef = useRef({\n id: props.id,\n type: props.type\n });\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n setStyleLoaded = _useState2[1];\n var id = useMemo(function () {\n return props.id || \"jsx-source-\".concat(sourceCounter++);\n }, []);\n var map = context.map;\n useEffect(function () {\n if (map) {\n var forceUpdate = function forceUpdate() {\n return setStyleLoaded(function (version) {\n return version + 1;\n });\n };\n map.on('styledata', forceUpdate);\n return function () {\n map.off('styledata', forceUpdate);\n requestAnimationFrame(function () {\n if (map.style && map.style._loaded && map.getSource(id)) {\n map.removeSource(id);\n }\n });\n };\n }\n return undefined;\n }, [map, id]);\n var source = map && map.style && map.getSource(id);\n if (source) {\n updateSource(source, props, propsRef.current);\n } else {\n source = createSource(map, id, props);\n }\n propsRef.current = props;\n return source && React.Children.map(props.children, function (child) {\n return child && cloneElement(child, {\n source: id\n });\n }) || null;\n}\nexport default Source;","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport * as PropTypes from 'prop-types';\nimport MapContext from './map-context';\nimport assert from '../utils/assert';\nimport deepEqual from '../utils/deep-equal';\nvar LAYER_TYPES = ['fill', 'line', 'symbol', 'circle', 'fill-extrusion', 'raster', 'background', 'heatmap', 'hillshade'];\nvar propTypes = {\n type: PropTypes.oneOf(LAYER_TYPES).isRequired,\n id: PropTypes.string,\n source: PropTypes.string,\n beforeId: PropTypes.string\n};\nfunction diffLayerStyles(map, id, props, prevProps) {\n var _props$layout = props.layout,\n layout = _props$layout === void 0 ? {} : _props$layout,\n _props$paint = props.paint,\n paint = _props$paint === void 0 ? {} : _props$paint,\n filter = props.filter,\n minzoom = props.minzoom,\n maxzoom = props.maxzoom,\n beforeId = props.beforeId,\n otherProps = _objectWithoutProperties(props, [\"layout\", \"paint\", \"filter\", \"minzoom\", \"maxzoom\", \"beforeId\"]);\n if (beforeId !== prevProps.beforeId) {\n map.moveLayer(id, beforeId);\n }\n if (layout !== prevProps.layout) {\n var prevLayout = prevProps.layout || {};\n for (var key in layout) {\n if (!deepEqual(layout[key], prevLayout[key])) {\n map.setLayoutProperty(id, key, layout[key]);\n }\n }\n for (var _key in prevLayout) {\n if (!layout.hasOwnProperty(_key)) {\n map.setLayoutProperty(id, _key, undefined);\n }\n }\n }\n if (paint !== prevProps.paint) {\n var prevPaint = prevProps.paint || {};\n for (var _key2 in paint) {\n if (!deepEqual(paint[_key2], prevPaint[_key2])) {\n map.setPaintProperty(id, _key2, paint[_key2]);\n }\n }\n for (var _key3 in prevPaint) {\n if (!paint.hasOwnProperty(_key3)) {\n map.setPaintProperty(id, _key3, undefined);\n }\n }\n }\n if (!deepEqual(filter, prevProps.filter)) {\n map.setFilter(id, filter);\n }\n if (minzoom !== prevProps.minzoom || maxzoom !== prevProps.maxzoom) {\n map.setLayerZoomRange(id, minzoom, maxzoom);\n }\n for (var _key4 in otherProps) {\n if (!deepEqual(otherProps[_key4], prevProps[_key4])) {\n map.setLayerProperty(id, _key4, otherProps[_key4]);\n }\n }\n}\nfunction createLayer(map, id, props) {\n if (map.style && map.style._loaded) {\n var options = _objectSpread(_objectSpread({}, props), {}, {\n id: id\n });\n delete options.beforeId;\n map.addLayer(options, props.beforeId);\n }\n}\nfunction updateLayer(map, id, props, prevProps) {\n assert(props.id === prevProps.id, 'layer id changed');\n assert(props.type === prevProps.type, 'layer type changed');\n try {\n diffLayerStyles(map, id, props, prevProps);\n } catch (error) {\n console.warn(error);\n }\n}\nvar layerCounter = 0;\nfunction Layer(props) {\n var context = useContext(MapContext);\n var propsRef = useRef({\n id: props.id,\n type: props.type\n });\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n setStyleLoaded = _useState2[1];\n var id = useMemo(function () {\n return props.id || \"jsx-layer-\".concat(layerCounter++);\n }, []);\n var map = context.map;\n useEffect(function () {\n if (map) {\n var forceUpdate = function forceUpdate() {\n return setStyleLoaded(function (version) {\n return version + 1;\n });\n };\n map.on('styledata', forceUpdate);\n return function () {\n map.off('styledata', forceUpdate);\n if (map.style && map.style._loaded) {\n map.removeLayer(id);\n }\n };\n }\n return undefined;\n }, [map]);\n var layer = map && map.style && map.getLayer(id);\n if (layer) {\n updateLayer(map, id, props, propsRef.current);\n } else {\n createLayer(map, id, props);\n }\n propsRef.current = props;\n return null;\n}\nLayer.propTypes = propTypes;\nexport default Layer;","import { useContext, useRef, useEffect } from 'react';\nimport * as PropTypes from 'prop-types';\nimport MapContext from './map-context';\nexport var mapControlDefaultProps = {\n captureScroll: false,\n captureDrag: true,\n captureClick: true,\n captureDoubleClick: true,\n capturePointerMove: false\n};\nexport var mapControlPropTypes = {\n captureScroll: PropTypes.bool,\n captureDrag: PropTypes.bool,\n captureClick: PropTypes.bool,\n captureDoubleClick: PropTypes.bool,\n capturePointerMove: PropTypes.bool\n};\nfunction onMount(thisRef) {\n var ref = thisRef.containerRef.current;\n var eventManager = thisRef.context.eventManager;\n if (!ref || !eventManager) {\n return undefined;\n }\n var events = {\n wheel: function wheel(evt) {\n var props = thisRef.props;\n if (props.captureScroll) {\n evt.stopPropagation();\n }\n if (props.onScroll) {\n props.onScroll(evt, thisRef);\n }\n },\n panstart: function panstart(evt) {\n var props = thisRef.props;\n if (props.captureDrag) {\n evt.stopPropagation();\n }\n if (props.onDragStart) {\n props.onDragStart(evt, thisRef);\n }\n },\n anyclick: function anyclick(evt) {\n var props = thisRef.props;\n if (props.captureClick) {\n evt.stopPropagation();\n }\n if (props.onNativeClick) {\n props.onNativeClick(evt, thisRef);\n }\n },\n click: function click(evt) {\n var props = thisRef.props;\n if (props.captureClick) {\n evt.stopPropagation();\n }\n if (props.onClick) {\n props.onClick(evt, thisRef);\n }\n },\n dblclick: function dblclick(evt) {\n var props = thisRef.props;\n if (props.captureDoubleClick) {\n evt.stopPropagation();\n }\n if (props.onDoubleClick) {\n props.onDoubleClick(evt, thisRef);\n }\n },\n pointermove: function pointermove(evt) {\n var props = thisRef.props;\n if (props.capturePointerMove) {\n evt.stopPropagation();\n }\n if (props.onPointerMove) {\n props.onPointerMove(evt, thisRef);\n }\n }\n };\n eventManager.watch(events, ref);\n return function () {\n eventManager.off(events);\n };\n}\nexport default function useMapControl() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var context = useContext(MapContext);\n var containerRef = useRef(null);\n var _thisRef = useRef({\n props: props,\n state: {},\n context: context,\n containerRef: containerRef\n });\n var thisRef = _thisRef.current;\n thisRef.props = props;\n thisRef.context = context;\n useEffect(function () {\n return onMount(thisRef);\n }, [context.eventManager]);\n return thisRef;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nimport * as React from 'react';\nimport { PureComponent, createRef } from 'react';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nfunction Control(props) {\n var instance = props.instance;\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n instance._context = context;\n instance._containerRef = containerRef;\n return instance._render();\n}\nvar BaseControl = function (_PureComponent) {\n _inherits(BaseControl, _PureComponent);\n var _super = _createSuper(BaseControl);\n function BaseControl() {\n var _this;\n _classCallCheck(this, BaseControl);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"_context\", {});\n _defineProperty(_assertThisInitialized(_this), \"_containerRef\", createRef());\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (evt) {});\n _defineProperty(_assertThisInitialized(_this), \"_onDragStart\", function (evt) {});\n _defineProperty(_assertThisInitialized(_this), \"_onDblClick\", function (evt) {});\n _defineProperty(_assertThisInitialized(_this), \"_onClick\", function (evt) {});\n _defineProperty(_assertThisInitialized(_this), \"_onPointerMove\", function (evt) {});\n return _this;\n }\n _createClass(BaseControl, [{\n key: \"_render\",\n value: function _render() {\n throw new Error('_render() not implemented');\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(Control, _extends({\n instance: this\n }, this.props, {\n onScroll: this._onScroll,\n onDragStart: this._onDragStart,\n onDblClick: this._onDblClick,\n onClick: this._onClick,\n onPointerMove: this._onPointerMove\n }));\n }\n }]);\n return BaseControl;\n}(PureComponent);\n_defineProperty(BaseControl, \"propTypes\", mapControlPropTypes);\n_defineProperty(BaseControl, \"defaultProps\", mapControlDefaultProps);\nexport { BaseControl as default };","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as PropTypes from 'prop-types';\nimport { useState, useEffect } from 'react';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nexport var draggableControlPropTypes = Object.assign({}, mapControlPropTypes, {\n draggable: PropTypes.bool,\n onDrag: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDragStart: PropTypes.func,\n offsetLeft: PropTypes.number,\n offsetTop: PropTypes.number\n});\nexport var draggableControlDefaultProps = Object.assign({}, mapControlDefaultProps, {\n draggable: false,\n offsetLeft: 0,\n offsetTop: 0\n});\nfunction getDragEventPosition(event) {\n var _event$offsetCenter = event.offsetCenter,\n x = _event$offsetCenter.x,\n y = _event$offsetCenter.y;\n return [x, y];\n}\nfunction getDragEventOffset(event, container) {\n var _event$center = event.center,\n x = _event$center.x,\n y = _event$center.y;\n if (container) {\n var rect = container.getBoundingClientRect();\n return [rect.left - x, rect.top - y];\n }\n return null;\n}\nfunction getDragLngLat(dragPos, dragOffset, props, context) {\n var x = dragPos[0] + dragOffset[0] - props.offsetLeft;\n var y = dragPos[1] + dragOffset[1] - props.offsetTop;\n return context.viewport.unproject([x, y]);\n}\nfunction onDragStart(event, _ref) {\n var props = _ref.props,\n callbacks = _ref.callbacks,\n state = _ref.state,\n context = _ref.context,\n containerRef = _ref.containerRef;\n var draggable = props.draggable;\n if (!draggable) {\n return;\n }\n event.stopPropagation();\n var dragPos = getDragEventPosition(event);\n var dragOffset = getDragEventOffset(event, containerRef.current);\n state.setDragPos(dragPos);\n state.setDragOffset(dragOffset);\n if (callbacks.onDragStart && dragOffset) {\n var callbackEvent = Object.assign({}, event);\n callbackEvent.lngLat = getDragLngLat(dragPos, dragOffset, props, context);\n callbacks.onDragStart(callbackEvent);\n }\n}\nfunction onDrag(event, _ref2) {\n var props = _ref2.props,\n callbacks = _ref2.callbacks,\n state = _ref2.state,\n context = _ref2.context;\n event.stopPropagation();\n var dragPos = getDragEventPosition(event);\n state.setDragPos(dragPos);\n var dragOffset = state.dragOffset;\n if (callbacks.onDrag && dragOffset) {\n var callbackEvent = Object.assign({}, event);\n callbackEvent.lngLat = getDragLngLat(dragPos, dragOffset, props, context);\n callbacks.onDrag(callbackEvent);\n }\n}\nfunction onDragEnd(event, _ref3) {\n var props = _ref3.props,\n callbacks = _ref3.callbacks,\n state = _ref3.state,\n context = _ref3.context;\n event.stopPropagation();\n var dragPos = state.dragPos,\n dragOffset = state.dragOffset;\n state.setDragPos(null);\n state.setDragOffset(null);\n if (callbacks.onDragEnd && dragPos && dragOffset) {\n var callbackEvent = Object.assign({}, event);\n callbackEvent.lngLat = getDragLngLat(dragPos, dragOffset, props, context);\n callbacks.onDragEnd(callbackEvent);\n }\n}\nfunction onDragCancel(event, _ref4) {\n var state = _ref4.state;\n event.stopPropagation();\n state.setDragPos(null);\n state.setDragOffset(null);\n}\nfunction registerEvents(thisRef) {\n var eventManager = thisRef.context.eventManager;\n if (!eventManager || !thisRef.state.dragPos) {\n return undefined;\n }\n var events = {\n panmove: function panmove(evt) {\n return onDrag(evt, thisRef);\n },\n panend: function panend(evt) {\n return onDragEnd(evt, thisRef);\n },\n pancancel: function pancancel(evt) {\n return onDragCancel(evt, thisRef);\n }\n };\n eventManager.watch(events);\n return function () {\n eventManager.off(events);\n };\n}\nexport default function useDraggableControl(props) {\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n dragPos = _useState2[0],\n setDragPos = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n dragOffset = _useState4[0],\n setDragOffset = _useState4[1];\n var thisRef = useMapControl(_objectSpread(_objectSpread({}, props), {}, {\n onDragStart: onDragStart\n }));\n thisRef.callbacks = props;\n thisRef.state.dragPos = dragPos;\n thisRef.state.setDragPos = setDragPos;\n thisRef.state.dragOffset = dragOffset;\n thisRef.state.setDragOffset = setDragOffset;\n useEffect(function () {\n return registerEvents(thisRef);\n }, [thisRef.context.eventManager, Boolean(dragPos)]);\n return thisRef;\n}","var pixelRatio = typeof window !== 'undefined' && window.devicePixelRatio || 1;\nexport var crispPixel = function crispPixel(size) {\n return Math.round(size * pixelRatio) / pixelRatio;\n};\nexport var crispPercentage = function crispPercentage(el, percentage) {\n var dimension = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'x';\n if (el === null) {\n return percentage;\n }\n var origSize = dimension === 'x' ? el.offsetWidth : el.offsetHeight;\n return crispPixel(percentage / 100 * origSize) / origSize * 100;\n};","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport useDraggableControl, { draggableControlDefaultProps, draggableControlPropTypes } from './draggable-control';\nimport { crispPixel } from '../utils/crisp-pixel';\nvar defaultProps = Object.assign({}, draggableControlDefaultProps, {\n className: ''\n});\nfunction getPosition(_ref) {\n var props = _ref.props,\n state = _ref.state,\n context = _ref.context;\n var longitude = props.longitude,\n latitude = props.latitude,\n offsetLeft = props.offsetLeft,\n offsetTop = props.offsetTop;\n var dragPos = state.dragPos,\n dragOffset = state.dragOffset;\n if (dragPos && dragOffset) {\n return [dragPos[0] + dragOffset[0], dragPos[1] + dragOffset[1]];\n }\n var _context$viewport$pro = context.viewport.project([longitude, latitude]),\n _context$viewport$pro2 = _slicedToArray(_context$viewport$pro, 2),\n x = _context$viewport$pro2[0],\n y = _context$viewport$pro2[1];\n x += offsetLeft;\n y += offsetTop;\n return [x, y];\n}\nfunction Marker(props) {\n var thisRef = useDraggableControl(props);\n var state = thisRef.state,\n containerRef = thisRef.containerRef;\n var children = props.children,\n className = props.className,\n draggable = props.draggable,\n style = props.style;\n var dragPos = state.dragPos;\n var _getPosition = getPosition(thisRef),\n _getPosition2 = _slicedToArray(_getPosition, 2),\n x = _getPosition2[0],\n y = _getPosition2[1];\n var transform = \"translate(\".concat(crispPixel(x), \"px, \").concat(crispPixel(y), \"px)\");\n var cursor = draggable ? dragPos ? 'grabbing' : 'grab' : 'auto';\n var control = useMemo(function () {\n var containerStyle = _objectSpread({\n position: 'absolute',\n left: 0,\n top: 0,\n transform: transform,\n cursor: cursor\n }, style);\n return React.createElement(\"div\", {\n className: \"mapboxgl-marker \".concat(className),\n ref: thisRef.containerRef,\n style: containerStyle\n }, children);\n }, [children, className]);\n var container = containerRef.current;\n if (container) {\n container.style.transform = transform;\n container.style.cursor = cursor;\n }\n return control;\n}\nMarker.defaultProps = defaultProps;\nexport default React.memo(Marker);","export var ANCHOR_POSITION = {\n top: {\n x: 0.5,\n y: 0\n },\n 'top-left': {\n x: 0,\n y: 0\n },\n 'top-right': {\n x: 1,\n y: 0\n },\n bottom: {\n x: 0.5,\n y: 1\n },\n 'bottom-left': {\n x: 0,\n y: 1\n },\n 'bottom-right': {\n x: 1,\n y: 1\n },\n left: {\n x: 0,\n y: 0.5\n },\n right: {\n x: 1,\n y: 0.5\n }\n};\nvar ANCHOR_TYPES = Object.keys(ANCHOR_POSITION);\nexport function getDynamicPosition(_ref) {\n var x = _ref.x,\n y = _ref.y,\n width = _ref.width,\n height = _ref.height,\n selfWidth = _ref.selfWidth,\n selfHeight = _ref.selfHeight,\n anchor = _ref.anchor,\n _ref$padding = _ref.padding,\n padding = _ref$padding === void 0 ? 0 : _ref$padding;\n var _ANCHOR_POSITION$anch = ANCHOR_POSITION[anchor],\n anchorX = _ANCHOR_POSITION$anch.x,\n anchorY = _ANCHOR_POSITION$anch.y;\n var top = y - anchorY * selfHeight;\n var bottom = top + selfHeight;\n var cutoffY = Math.max(0, padding - top) + Math.max(0, bottom - height + padding);\n if (cutoffY > 0) {\n var bestAnchorY = anchorY;\n var minCutoff = cutoffY;\n for (anchorY = 0; anchorY <= 1; anchorY += 0.5) {\n top = y - anchorY * selfHeight;\n bottom = top + selfHeight;\n cutoffY = Math.max(0, padding - top) + Math.max(0, bottom - height + padding);\n if (cutoffY < minCutoff) {\n minCutoff = cutoffY;\n bestAnchorY = anchorY;\n }\n }\n anchorY = bestAnchorY;\n }\n var xStep = 0.5;\n if (anchorY === 0.5) {\n anchorX = Math.floor(anchorX);\n xStep = 1;\n }\n var left = x - anchorX * selfWidth;\n var right = left + selfWidth;\n var cutoffX = Math.max(0, padding - left) + Math.max(0, right - width + padding);\n if (cutoffX > 0) {\n var bestAnchorX = anchorX;\n var _minCutoff = cutoffX;\n for (anchorX = 0; anchorX <= 1; anchorX += xStep) {\n left = x - anchorX * selfWidth;\n right = left + selfWidth;\n cutoffX = Math.max(0, padding - left) + Math.max(0, right - width + padding);\n if (cutoffX < _minCutoff) {\n _minCutoff = cutoffX;\n bestAnchorX = anchorX;\n }\n }\n anchorX = bestAnchorX;\n }\n return ANCHOR_TYPES.find(function (positionType) {\n var anchorPosition = ANCHOR_POSITION[positionType];\n return anchorPosition.x === anchorX && anchorPosition.y === anchorY;\n }) || anchor;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useState, useEffect, useCallback } from 'react';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nimport { getDynamicPosition, ANCHOR_POSITION } from '../utils/dynamic-position';\nimport { crispPercentage, crispPixel } from '../utils/crisp-pixel';\nvar defaultProps = Object.assign({}, mapControlDefaultProps, {\n className: '',\n altitude: 0,\n offsetLeft: 0,\n offsetTop: 0,\n tipSize: 10,\n anchor: 'bottom',\n dynamicPosition: true,\n sortByDepth: false,\n closeButton: true,\n closeOnClick: true,\n onClose: function onClose() {}\n});\nfunction getPosition(props, viewport, el, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n x = _ref2[0],\n y = _ref2[1];\n var anchor = props.anchor,\n dynamicPosition = props.dynamicPosition,\n tipSize = props.tipSize;\n if (el) {\n return dynamicPosition ? getDynamicPosition({\n x: x,\n y: y,\n anchor: anchor,\n padding: tipSize,\n width: viewport.width,\n height: viewport.height,\n selfWidth: el.clientWidth,\n selfHeight: el.clientHeight\n }) : anchor;\n }\n return anchor;\n}\nfunction getContainerStyle(props, viewport, el, _ref3, positionType) {\n var _ref4 = _slicedToArray(_ref3, 3),\n x = _ref4[0],\n y = _ref4[1],\n z = _ref4[2];\n var offsetLeft = props.offsetLeft,\n offsetTop = props.offsetTop,\n sortByDepth = props.sortByDepth;\n var anchorPosition = ANCHOR_POSITION[positionType];\n var left = x + offsetLeft;\n var top = y + offsetTop;\n var xPercentage = crispPercentage(el, -anchorPosition.x * 100);\n var yPercentage = crispPercentage(el, -anchorPosition.y * 100, 'y');\n var style = {\n position: 'absolute',\n transform: \"\\n translate(\".concat(xPercentage, \"%, \").concat(yPercentage, \"%)\\n translate(\").concat(crispPixel(left), \"px, \").concat(crispPixel(top), \"px)\\n \"),\n display: undefined,\n zIndex: undefined\n };\n if (!sortByDepth) {\n return style;\n }\n if (z > 1 || z < -1 || x < 0 || x > viewport.width || y < 0 || y > viewport.height) {\n style.display = 'none';\n } else {\n style.zIndex = Math.floor((1 - z) / 2 * 100000);\n }\n return style;\n}\nfunction Popup(props) {\n var contentRef = useRef(null);\n var thisRef = useMapControl(props);\n var context = thisRef.context,\n containerRef = thisRef.containerRef;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n setLoaded = _useState2[1];\n useEffect(function () {\n setLoaded(true);\n }, [contentRef.current]);\n useEffect(function () {\n if (context.eventManager && props.closeOnClick) {\n var clickCallback = function clickCallback() {\n return thisRef.props.onClose();\n };\n context.eventManager.on('anyclick', clickCallback);\n return function () {\n context.eventManager.off('anyclick', clickCallback);\n };\n }\n return undefined;\n }, [context.eventManager, props.closeOnClick]);\n var viewport = context.viewport;\n var className = props.className,\n longitude = props.longitude,\n latitude = props.latitude,\n altitude = props.altitude,\n tipSize = props.tipSize,\n closeButton = props.closeButton,\n children = props.children;\n var position = viewport.project([longitude, latitude, altitude]);\n var positionType = getPosition(props, viewport, contentRef.current, position);\n var containerStyle = getContainerStyle(props, viewport, containerRef.current, position, positionType);\n var onClickCloseButton = useCallback(function (evt) {\n thisRef.props.onClose();\n var eventManager = thisRef.context.eventManager;\n if (eventManager) {\n eventManager.once('click', function (e) {\n return e.stopPropagation();\n }, evt.target);\n }\n }, []);\n return React.createElement(\"div\", {\n className: \"mapboxgl-popup mapboxgl-popup-anchor-\".concat(positionType, \" \").concat(className),\n style: containerStyle,\n ref: containerRef\n }, React.createElement(\"div\", {\n key: \"tip\",\n className: \"mapboxgl-popup-tip\",\n style: {\n borderWidth: tipSize\n }\n }), React.createElement(\"div\", {\n key: \"content\",\n ref: contentRef,\n className: \"mapboxgl-popup-content\"\n }, closeButton && React.createElement(\"button\", {\n key: \"close-button\",\n className: \"mapboxgl-popup-close-button\",\n type: \"button\",\n onClick: onClickCloseButton\n }, \"\\xD7\"), children));\n}\nPopup.defaultProps = defaultProps;\nexport default React.memo(Popup);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useEffect, useCallback, useState, useRef, useMemo } from 'react';\nimport mapboxgl from '../utils/mapboxgl';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nvar defaultProps = Object.assign({}, mapControlDefaultProps, {\n className: '',\n toggleLabel: 'Toggle Attribution'\n});\nfunction setupAttributioncontrol(opts, map, container, attributionContainer) {\n var control = new mapboxgl.AttributionControl(opts);\n control._map = map;\n control._container = container;\n control._innerContainer = attributionContainer;\n control._updateAttributions();\n control._updateEditLink();\n map.on('styledata', control._updateData);\n map.on('sourcedata', control._updateData);\n return control;\n}\nfunction removeAttributionControl(control) {\n control._map.off('styledata', control._updateData);\n control._map.off('sourcedata', control._updateData);\n}\nfunction AttributionControl(props) {\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n var innerContainerRef = useRef(null);\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n showCompact = _useState2[0],\n setShowCompact = _useState2[1];\n useEffect(function () {\n var control;\n if (context.map) {\n control = setupAttributioncontrol({\n customAttribution: props.customAttribution\n }, context.map, containerRef.current, innerContainerRef.current);\n }\n return function () {\n return control && removeAttributionControl(control);\n };\n }, [context.map]);\n var compact = props.compact === undefined ? context.viewport.width <= 640 : props.compact;\n useEffect(function () {\n if (!compact && showCompact) {\n setShowCompact(false);\n }\n }, [compact]);\n var toggleAttribution = useCallback(function () {\n return setShowCompact(function (value) {\n return !value;\n });\n }, []);\n var style = useMemo(function () {\n return _objectSpread({\n position: 'absolute'\n }, props.style);\n }, [props.style]);\n return React.createElement(\"div\", {\n style: style,\n className: props.className\n }, React.createElement(\"div\", {\n ref: containerRef,\n \"aria-pressed\": showCompact,\n className: \"mapboxgl-ctrl mapboxgl-ctrl-attrib \".concat(compact ? 'mapboxgl-compact' : '', \" \").concat(showCompact ? 'mapboxgl-compact-show' : '')\n }, React.createElement(\"button\", {\n type: \"button\",\n className: \"mapboxgl-ctrl-attrib-button\",\n title: props.toggleLabel,\n onClick: toggleAttribution\n }), React.createElement(\"div\", {\n ref: innerContainerRef,\n className: \"mapboxgl-ctrl-attrib-inner\",\n role: \"list\"\n })));\n}\nAttributionControl.defaultProps = defaultProps;\nexport default React.memo(AttributionControl);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport { document } from '../utils/globals';\nimport * as React from 'react';\nimport { useEffect, useState, useMemo } from 'react';\nimport mapboxgl from '../utils/mapboxgl';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nvar defaultProps = Object.assign({}, mapControlDefaultProps, {\n className: '',\n container: null,\n label: 'Toggle fullscreen'\n});\nfunction FullscreenControl(props) {\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isFullscreen = _useState2[0],\n setIsFullscreen = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n showButton = _useState4[0],\n setShowButton = _useState4[1];\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n mapboxFullscreenControl = _useState6[0],\n createMapboxFullscreenControl = _useState6[1];\n useEffect(function () {\n var control = new mapboxgl.FullscreenControl();\n createMapboxFullscreenControl(control);\n setShowButton(control._checkFullscreenSupport());\n var onFullscreenChange = function onFullscreenChange() {\n var nextState = !control._fullscreen;\n control._fullscreen = nextState;\n setIsFullscreen(nextState);\n };\n document.addEventListener(control._fullscreenchange, onFullscreenChange);\n return function () {\n document.removeEventListener(control._fullscreenchange, onFullscreenChange);\n };\n }, []);\n var onClickFullscreen = function onClickFullscreen() {\n if (mapboxFullscreenControl) {\n mapboxFullscreenControl._container = props.container || context.container;\n mapboxFullscreenControl._onClickFullscreen();\n }\n };\n var style = useMemo(function () {\n return _objectSpread({\n position: 'absolute'\n }, props.style);\n }, [props.style]);\n if (!showButton) {\n return null;\n }\n var className = props.className,\n label = props.label;\n var type = isFullscreen ? 'shrink' : 'fullscreen';\n return React.createElement(\"div\", {\n style: style,\n className: className\n }, React.createElement(\"div\", {\n className: \"mapboxgl-ctrl mapboxgl-ctrl-group\",\n ref: containerRef\n }, React.createElement(\"button\", {\n key: type,\n className: \"mapboxgl-ctrl-icon mapboxgl-ctrl-\".concat(type),\n type: \"button\",\n title: label,\n onClick: onClickFullscreen\n }, React.createElement(\"span\", {\n className: \"mapboxgl-ctrl-icon\",\n \"aria-hidden\": \"true\"\n }))));\n}\nFullscreenControl.defaultProps = defaultProps;\nexport default React.memo(FullscreenControl);","var supported;\nexport function isGeolocationSupported() {\n if (supported !== undefined) {\n return Promise.resolve(supported);\n }\n if (window.navigator.permissions !== undefined) {\n return window.navigator.permissions.query({\n name: 'geolocation'\n }).then(function (p) {\n supported = p.state !== 'denied';\n return supported;\n });\n }\n supported = Boolean(window.navigator.geolocation);\n return Promise.resolve(supported);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useRef, useEffect, useState, useCallback, useMemo } from 'react';\nimport { document } from '../utils/globals';\nimport mapboxgl from '../utils/mapboxgl';\nimport MapState from '../utils/map-state';\nimport { LINEAR_TRANSITION_PROPS } from '../utils/map-controller';\nimport { isGeolocationSupported } from '../utils/geolocate-utils';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nvar noop = function noop() {};\nvar defaultProps = Object.assign({}, mapControlDefaultProps, {\n className: '',\n label: 'Find My Location',\n disabledLabel: 'Location Not Available',\n auto: false,\n positionOptions: {\n enableHighAccuracy: false,\n timeout: 6000\n },\n fitBoundsOptions: {\n maxZoom: 15\n },\n trackUserLocation: false,\n showUserLocation: true,\n showUserHeading: false,\n showAccuracyCircle: true,\n onGeolocate: function onGeolocate() {}\n});\nfunction getBounds(position) {\n var center = new mapboxgl.LngLat(position.coords.longitude, position.coords.latitude);\n var radius = position.coords.accuracy;\n var bounds = center.toBounds(radius);\n return [[bounds._ne.lng, bounds._ne.lat], [bounds._sw.lng, bounds._sw.lat]];\n}\nfunction setupMapboxGeolocateControl(context, props, geolocateButton) {\n var control = new mapboxgl.GeolocateControl(props);\n control._container = document.createElement('div');\n control._map = {\n on: function on() {},\n _getUIString: function _getUIString() {\n return '';\n }\n };\n control._setupUI(true);\n control._map = context.map;\n control._geolocateButton = geolocateButton;\n var eventManager = context.eventManager;\n if (control.options.trackUserLocation && eventManager) {\n eventManager.on('panstart', function () {\n if (control._watchState === 'ACTIVE_LOCK') {\n control._watchState = 'BACKGROUND';\n geolocateButton.classList.add('mapboxgl-ctrl-geolocate-background');\n geolocateButton.classList.remove('mapboxgl-ctrl-geolocate-active');\n }\n });\n }\n control.on('geolocate', props.onGeolocate);\n return control;\n}\nfunction updateCamera(position, _ref) {\n var context = _ref.context,\n props = _ref.props;\n var bounds = getBounds(position);\n var _context$viewport$fit = context.viewport.fitBounds(bounds, props.fitBoundsOptions),\n longitude = _context$viewport$fit.longitude,\n latitude = _context$viewport$fit.latitude,\n zoom = _context$viewport$fit.zoom;\n var newViewState = Object.assign({}, context.viewport, {\n longitude: longitude,\n latitude: latitude,\n zoom: zoom\n });\n var mapState = new MapState(newViewState);\n var viewState = Object.assign({}, mapState.getViewportProps(), LINEAR_TRANSITION_PROPS);\n var onViewportChange = props.onViewportChange || context.onViewportChange || noop;\n var onViewStateChange = props.onViewStateChange || context.onViewStateChange || noop;\n onViewStateChange({\n viewState: viewState\n });\n onViewportChange(viewState);\n}\nfunction GeolocateControl(props) {\n var thisRef = useMapControl(props);\n var context = thisRef.context,\n containerRef = thisRef.containerRef;\n var geolocateButtonRef = useRef(null);\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mapboxGeolocateControl = _useState2[0],\n createMapboxGeolocateControl = _useState2[1];\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n supportsGeolocation = _useState4[0],\n setSupportsGeolocation = _useState4[1];\n useEffect(function () {\n var control;\n if (context.map) {\n isGeolocationSupported().then(function (result) {\n setSupportsGeolocation(result);\n if (geolocateButtonRef.current) {\n control = setupMapboxGeolocateControl(context, props, geolocateButtonRef.current);\n control._updateCamera = function (position) {\n return updateCamera(position, thisRef);\n };\n createMapboxGeolocateControl(control);\n }\n });\n }\n return function () {\n if (control) {\n control._clearWatch();\n }\n };\n }, [context.map]);\n var triggerGeolocate = useCallback(function () {\n if (mapboxGeolocateControl) {\n mapboxGeolocateControl.options = thisRef.props;\n mapboxGeolocateControl.trigger();\n }\n }, [mapboxGeolocateControl]);\n useEffect(function () {\n if (props.auto) {\n triggerGeolocate();\n }\n }, [mapboxGeolocateControl, props.auto]);\n useEffect(function () {\n if (mapboxGeolocateControl) {\n mapboxGeolocateControl._onZoom();\n }\n }, [context.viewport.zoom]);\n var className = props.className,\n label = props.label,\n disabledLabel = props.disabledLabel,\n trackUserLocation = props.trackUserLocation;\n var style = useMemo(function () {\n return _objectSpread({\n position: 'absolute'\n }, props.style);\n }, [props.style]);\n return React.createElement(\"div\", {\n style: style,\n className: className\n }, React.createElement(\"div\", {\n key: \"geolocate-control\",\n className: \"mapboxgl-ctrl mapboxgl-ctrl-group\",\n ref: containerRef\n }, React.createElement(\"button\", {\n key: \"geolocate\",\n className: \"mapboxgl-ctrl-icon mapboxgl-ctrl-geolocate\",\n ref: geolocateButtonRef,\n disabled: !supportsGeolocation,\n \"aria-pressed\": !trackUserLocation,\n type: \"button\",\n title: supportsGeolocation ? label : disabledLabel,\n \"aria-label\": supportsGeolocation ? label : disabledLabel,\n onClick: triggerGeolocate\n }, React.createElement(\"span\", {\n className: \"mapboxgl-ctrl-icon\",\n \"aria-hidden\": \"true\"\n }))));\n}\nGeolocateControl.defaultProps = defaultProps;\nexport default React.memo(GeolocateControl);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport MapState from '../utils/map-state';\nimport { LINEAR_TRANSITION_PROPS } from '../utils/map-controller';\nimport { compareVersions } from '../utils/version';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nvar noop = function noop() {};\nvar defaultProps = Object.assign({}, mapControlDefaultProps, {\n className: '',\n showCompass: true,\n showZoom: true,\n zoomInLabel: 'Zoom In',\n zoomOutLabel: 'Zoom Out',\n compassLabel: 'Reset North'\n});\nvar VERSION_LEGACY = 1;\nvar VERSION_1_6 = 2;\nfunction getUIVersion(mapboxVersion) {\n return compareVersions(mapboxVersion, '1.6.0') >= 0 ? VERSION_1_6 : VERSION_LEGACY;\n}\nfunction updateViewport(context, props, opts) {\n var viewport = context.viewport;\n var mapState = new MapState(Object.assign({}, viewport, opts));\n var viewState = Object.assign({}, mapState.getViewportProps(), LINEAR_TRANSITION_PROPS);\n var onViewportChange = props.onViewportChange || context.onViewportChange || noop;\n var onViewStateChange = props.onViewStateChange || context.onViewStateChange || noop;\n onViewStateChange({\n viewState: viewState\n });\n onViewportChange(viewState);\n}\nfunction renderButton(type, label, callback, children) {\n return React.createElement(\"button\", {\n key: type,\n className: \"mapboxgl-ctrl-icon mapboxgl-ctrl-\".concat(type),\n type: \"button\",\n title: label,\n onClick: callback\n }, children || React.createElement(\"span\", {\n className: \"mapboxgl-ctrl-icon\",\n \"aria-hidden\": \"true\"\n }));\n}\nfunction renderCompass(context) {\n var uiVersion = useMemo(function () {\n return context.map ? getUIVersion(context.map.version) : VERSION_1_6;\n }, [context.map]);\n var bearing = context.viewport.bearing;\n var style = {\n transform: \"rotate(\".concat(-bearing, \"deg)\")\n };\n return uiVersion === VERSION_1_6 ? React.createElement(\"span\", {\n className: \"mapboxgl-ctrl-icon\",\n \"aria-hidden\": \"true\",\n style: style\n }) : React.createElement(\"span\", {\n className: \"mapboxgl-ctrl-compass-arrow\",\n style: style\n });\n}\nfunction NavigationControl(props) {\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n var onZoomIn = function onZoomIn() {\n updateViewport(context, props, {\n zoom: context.viewport.zoom + 1\n });\n };\n var onZoomOut = function onZoomOut() {\n updateViewport(context, props, {\n zoom: context.viewport.zoom - 1\n });\n };\n var onResetNorth = function onResetNorth() {\n updateViewport(context, props, {\n bearing: 0,\n pitch: 0\n });\n };\n var className = props.className,\n showCompass = props.showCompass,\n showZoom = props.showZoom,\n zoomInLabel = props.zoomInLabel,\n zoomOutLabel = props.zoomOutLabel,\n compassLabel = props.compassLabel;\n var style = useMemo(function () {\n return _objectSpread({\n position: 'absolute'\n }, props.style);\n }, [props.style]);\n return React.createElement(\"div\", {\n style: style,\n className: className\n }, React.createElement(\"div\", {\n className: \"mapboxgl-ctrl mapboxgl-ctrl-group\",\n ref: containerRef\n }, showZoom && renderButton('zoom-in', zoomInLabel, onZoomIn), showZoom && renderButton('zoom-out', zoomOutLabel, onZoomOut), showCompass && renderButton('compass', compassLabel, onResetNorth, renderCompass(context))));\n}\nNavigationControl.defaultProps = defaultProps;\nexport default React.memo(NavigationControl);","export function compareVersions(version1, version2) {\n var v1 = (version1 || '').split('.').map(Number);\n var v2 = (version2 || '').split('.').map(Number);\n for (var i = 0; i < 3; i++) {\n var part1 = v1[i] || 0;\n var part2 = v2[i] || 0;\n if (part1 < part2) {\n return -1;\n }\n if (part1 > part2) {\n return 1;\n }\n }\n return 0;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport { useEffect, useState, useMemo } from 'react';\nimport mapboxgl from '../utils/mapboxgl';\nimport useMapControl, { mapControlDefaultProps, mapControlPropTypes } from './use-map-control';\nvar defaultProps = Object.assign({}, mapControlDefaultProps, {\n className: '',\n maxWidth: 100,\n unit: 'metric'\n});\nfunction ScaleControl(props) {\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mapboxScaleControl = _useState2[0],\n createMapboxScaleControl = _useState2[1];\n useEffect(function () {\n if (context.map) {\n var control = new mapboxgl.ScaleControl();\n control._map = context.map;\n control._container = containerRef.current;\n createMapboxScaleControl(control);\n }\n }, [context.map]);\n if (mapboxScaleControl) {\n mapboxScaleControl.options = props;\n mapboxScaleControl._onMove();\n }\n var style = useMemo(function () {\n return _objectSpread({\n position: 'absolute'\n }, props.style);\n }, [props.style]);\n return React.createElement(\"div\", {\n style: style,\n className: props.className\n }, React.createElement(\"div\", {\n ref: containerRef,\n className: \"mapboxgl-ctrl mapboxgl-ctrl-scale\"\n }));\n}\nScaleControl.defaultProps = defaultProps;\nexport default React.memo(ScaleControl);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useEffect } from 'react';\nimport useMapControl, { mapControlPropTypes } from '../components/use-map-control';\nvar pixelRatio = typeof window !== 'undefined' && window.devicePixelRatio || 1;\nvar defaultProps = {\n captureScroll: false,\n captureDrag: false,\n captureClick: false,\n captureDoubleClick: false,\n capturePointerMove: false\n};\nfunction CanvasOverlay(props) {\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n ctx = _useState2[0],\n setDrawingContext = _useState2[1];\n useEffect(function () {\n setDrawingContext(containerRef.current.getContext('2d'));\n }, []);\n var viewport = context.viewport,\n isDragging = context.isDragging;\n if (ctx) {\n ctx.save();\n ctx.scale(pixelRatio, pixelRatio);\n props.redraw({\n width: viewport.width,\n height: viewport.height,\n ctx: ctx,\n isDragging: isDragging,\n project: viewport.project,\n unproject: viewport.unproject\n });\n ctx.restore();\n }\n return React.createElement(\"canvas\", {\n ref: containerRef,\n width: viewport.width * pixelRatio,\n height: viewport.height * pixelRatio,\n style: {\n width: \"\".concat(viewport.width, \"px\"),\n height: \"\".concat(viewport.height, \"px\"),\n position: 'absolute',\n left: 0,\n top: 0\n }\n });\n}\nCanvasOverlay.defaultProps = defaultProps;\nexport default CanvasOverlay;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport useMapControl, { mapControlPropTypes } from '../components/use-map-control';\nvar defaultProps = {\n captureScroll: false,\n captureDrag: false,\n captureClick: false,\n captureDoubleClick: false,\n capturePointerMove: false\n};\nfunction HTMLOverlay(props) {\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n var viewport = context.viewport,\n isDragging = context.isDragging;\n var style = _objectSpread({\n position: 'absolute',\n left: 0,\n top: 0,\n width: viewport.width,\n height: viewport.height\n }, props.style);\n return React.createElement(\"div\", {\n ref: containerRef,\n style: style\n }, props.redraw({\n width: viewport.width,\n height: viewport.height,\n isDragging: isDragging,\n project: viewport.project,\n unproject: viewport.unproject\n }));\n}\nHTMLOverlay.defaultProps = defaultProps;\nexport default HTMLOverlay;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nimport * as React from 'react';\nimport useMapControl, { mapControlPropTypes } from '../components/use-map-control';\nvar defaultProps = {\n captureScroll: false,\n captureDrag: false,\n captureClick: false,\n captureDoubleClick: false,\n capturePointerMove: false\n};\nfunction SVGOverlay(props) {\n var _useMapControl = useMapControl(props),\n context = _useMapControl.context,\n containerRef = _useMapControl.containerRef;\n var viewport = context.viewport,\n isDragging = context.isDragging;\n var style = _objectSpread({\n position: 'absolute',\n left: 0,\n top: 0\n }, props.style);\n return React.createElement(\"svg\", {\n width: viewport.width,\n height: viewport.height,\n ref: containerRef,\n style: style\n }, props.redraw({\n width: viewport.width,\n height: viewport.height,\n isDragging: isDragging,\n project: viewport.project,\n unproject: viewport.unproject\n }));\n}\nSVGOverlay.defaultProps = defaultProps;\nexport default SVGOverlay;","import mapboxgl from './mapboxgl';\nvar setRTLTextPlugin = mapboxgl ? mapboxgl.setRTLTextPlugin : function () {};\nexport default setRTLTextPlugin;","const chinaGeojson = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n properties: {\n id: '65',\n size: '550',\n name: '新疆维吾尔自治区',\n cp: [84.9023, 42.148],\n childNum: 18,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [96.416, 42.7588],\n [96.416, 42.7148],\n [95.9766, 42.4951],\n [96.0645, 42.3193],\n [96.2402, 42.2314],\n [95.9766, 41.9238],\n [95.2734, 41.6162],\n [95.1855, 41.792],\n [94.5703, 41.4844],\n [94.043, 41.0889],\n [93.8672, 40.6934],\n [93.0762, 40.6494],\n [92.6367, 39.6387],\n [92.373, 39.3311],\n [92.373, 39.1113],\n [92.373, 39.0234],\n [90.1758, 38.4961],\n [90.3516, 38.2324],\n [90.6152, 38.3203],\n [90.5273, 37.8369],\n [91.0547, 37.4414],\n [91.3184, 37.0898],\n [90.7031, 36.7822],\n [90.791, 36.6064],\n [91.0547, 36.5186],\n [91.0547, 36.0791],\n [90.8789, 36.0352],\n [90, 36.2549],\n [89.9121, 36.0791],\n [89.7363, 36.0791],\n [89.209, 36.2988],\n [88.7695, 36.3428],\n [88.5938, 36.4746],\n [87.3633, 36.4307],\n [86.2207, 36.167],\n [86.1328, 35.8594],\n [85.6055, 35.6836],\n [85.0781, 35.7275],\n [84.1992, 35.376],\n [83.1445, 35.4199],\n [82.8809, 35.6836],\n [82.4414, 35.7275],\n [82.002, 35.332],\n [81.6504, 35.2441],\n [80.4199, 35.4199],\n [80.2441, 35.2881],\n [80.332, 35.1563],\n [80.2441, 35.2002],\n [79.8926, 34.8047],\n [79.8047, 34.4971],\n [79.1016, 34.4531],\n [79.0137, 34.3213],\n [78.2227, 34.7168],\n [78.0469, 35.2441],\n [78.0469, 35.5078],\n [77.4316, 35.4639],\n [76.8164, 35.6396],\n [76.5527, 35.8594],\n [76.2012, 35.8154],\n [75.9375, 36.0352],\n [76.0254, 36.4746],\n [75.8496, 36.6943],\n [75.498, 36.7383],\n [75.4102, 36.958],\n [75.0586, 37.002],\n [74.8828, 36.9141],\n [74.7949, 37.0459],\n [74.5313, 37.0898],\n [74.5313, 37.2217],\n [74.8828, 37.2217],\n [75.1465, 37.4414],\n [74.8828, 37.5732],\n [74.9707, 37.749],\n [74.8828, 38.4521],\n [74.3555, 38.6719],\n [74.1797, 38.6719],\n [74.0918, 38.54],\n [73.8281, 38.584],\n [73.7402, 38.8477],\n [73.8281, 38.9795],\n [73.4766, 39.375],\n [73.916, 39.5068],\n [73.916, 39.6826],\n [73.8281, 39.7705],\n [74.0039, 40.0342],\n [74.8828, 40.3418],\n [74.7949, 40.5176],\n [75.2344, 40.4297],\n [75.5859, 40.6494],\n [75.7617, 40.2979],\n [76.377, 40.3857],\n [76.9043, 41.001],\n [77.6074, 41.001],\n [78.1348, 41.2207],\n [78.1348, 41.3965],\n [80.1563, 42.0557],\n [80.2441, 42.2754],\n [80.1563, 42.627],\n [80.2441, 42.8467],\n [80.5078, 42.8906],\n [80.4199, 43.0664],\n [80.7715, 43.1982],\n [80.4199, 44.165],\n [80.4199, 44.6045],\n [79.9805, 44.8242],\n [79.9805, 44.9561],\n [81.7383, 45.3955],\n [82.0898, 45.2197],\n [82.5293, 45.2197],\n [82.2656, 45.6592],\n [83.0566, 47.2412],\n [83.6719, 47.0215],\n [84.7266, 47.0215],\n [84.9023, 46.8896],\n [85.5176, 47.0654],\n [85.6934, 47.2852],\n [85.5176, 48.1201],\n [85.7813, 48.4277],\n [86.5723, 48.5596],\n [86.8359, 48.8232],\n [86.748, 48.9551],\n [86.8359, 49.1309],\n [87.8027, 49.1748],\n [87.8906, 48.999],\n [87.7148, 48.9111],\n [88.0664, 48.7354],\n [87.9785, 48.6035],\n [88.5059, 48.3838],\n [88.6816, 48.1641],\n [89.1211, 47.9883],\n [89.5605, 48.0322],\n [89.7363, 47.8564],\n [90.0879, 47.8564],\n [90.3516, 47.6807],\n [90.5273, 47.2412],\n [90.8789, 46.9775],\n [91.0547, 46.582],\n [90.8789, 46.3184],\n [91.0547, 46.0107],\n [90.7031, 45.7471],\n [90.7031, 45.5273],\n [90.8789, 45.2197],\n [91.582, 45.0879],\n [93.5156, 44.9561],\n [94.7461, 44.3408],\n [95.3613, 44.2969],\n [95.3613, 44.0332],\n [95.5371, 43.9014],\n [95.8887, 43.2422],\n [96.3281, 42.9346],\n [96.416, 42.7588],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '54',\n size: '550',\n name: '西藏自治区',\n cp: [87.8695, 31.6846],\n childNum: 7,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [79.0137, 34.3213],\n [79.1016, 34.4531],\n [79.8047, 34.4971],\n [79.8926, 34.8047],\n [80.2441, 35.2002],\n [80.332, 35.1563],\n [80.2441, 35.2881],\n [80.4199, 35.4199],\n [81.6504, 35.2441],\n [82.002, 35.332],\n [82.4414, 35.7275],\n [82.8809, 35.6836],\n [83.1445, 35.4199],\n [84.1992, 35.376],\n [85.0781, 35.7275],\n [85.6055, 35.6836],\n [86.1328, 35.8594],\n [86.2207, 36.167],\n [87.3633, 36.4307],\n [88.5938, 36.4746],\n [88.7695, 36.3428],\n [89.209, 36.2988],\n [89.7363, 36.0791],\n [89.3848, 36.0352],\n [89.4727, 35.9033],\n [89.7363, 35.7715],\n [89.7363, 35.4199],\n [89.4727, 35.376],\n [89.4727, 35.2441],\n [89.5605, 34.8926],\n [89.8242, 34.8486],\n [89.7363, 34.6729],\n [89.8242, 34.3652],\n [89.6484, 34.0137],\n [90.0879, 33.4863],\n [90.7031, 33.1348],\n [91.4063, 33.1348],\n [91.9336, 32.8271],\n [92.1973, 32.8271],\n [92.2852, 32.7393],\n [92.9883, 32.7393],\n [93.5156, 32.4756],\n [93.7793, 32.5635],\n [94.1309, 32.4316],\n [94.6582, 32.6074],\n [95.1855, 32.4316],\n [95.0098, 32.2998],\n [95.1855, 32.3438],\n [95.2734, 32.2119],\n [95.3613, 32.168],\n [95.3613, 31.9922],\n [95.4492, 31.8164],\n [95.8008, 31.6846],\n [95.9766, 31.8164],\n [96.1523, 31.5967],\n [96.2402, 31.9482],\n [96.5039, 31.7285],\n [96.8555, 31.6846],\n [96.7676, 31.9922],\n [97.2949, 32.0801],\n [97.3828, 32.5635],\n [97.7344, 32.5195],\n [98.1738, 32.3438],\n [98.4375, 31.8604],\n [98.877, 31.4209],\n [98.6133, 31.2012],\n [98.9648, 30.7617],\n [99.1406, 29.2676],\n [98.9648, 29.1357],\n [98.9648, 28.8281],\n [98.7891, 28.8721],\n [98.7891, 29.0039],\n [98.7012, 28.916],\n [98.6133, 28.5205],\n [98.7891, 28.3447],\n [98.7012, 28.2129],\n [98.3496, 28.125],\n [98.2617, 28.3887],\n [98.1738, 28.125],\n [97.5586, 28.5205],\n [97.2949, 28.0811],\n [97.3828, 27.9053],\n [97.0313, 27.7295],\n [96.5039, 28.125],\n [95.7129, 28.2568],\n [95.3613, 28.125],\n [95.2734, 27.9492],\n [94.2188, 27.5537],\n [93.8672, 27.0264],\n [93.6035, 26.9385],\n [92.1094, 26.8506],\n [92.0215, 27.4658],\n [91.582, 27.5537],\n [91.582, 27.9053],\n [91.4063, 28.0371],\n [91.0547, 27.8613],\n [90.7031, 28.0811],\n [89.8242, 28.2129],\n [89.6484, 28.1689],\n [89.1211, 27.5977],\n [89.1211, 27.334],\n [89.0332, 27.2021],\n [88.7695, 27.4219],\n [88.8574, 27.9932],\n [88.6816, 28.125],\n [88.1543, 27.9053],\n [87.8906, 27.9492],\n [87.7148, 27.8174],\n [87.0996, 27.8174],\n [86.748, 28.125],\n [86.5723, 28.125],\n [86.4844, 27.9053],\n [86.1328, 28.125],\n [86.0449, 27.9053],\n [85.6934, 28.3447],\n [85.6055, 28.2568],\n [85.166, 28.3447],\n [85.166, 28.6523],\n [84.9023, 28.5645],\n [84.4629, 28.7402],\n [84.2871, 28.8721],\n [84.1992, 29.2236],\n [84.1113, 29.2676],\n [83.584, 29.1797],\n [83.2324, 29.5752],\n [82.1777, 30.0586],\n [82.0898, 30.3223],\n [81.3867, 30.3662],\n [81.2109, 30.0146],\n [81.0352, 30.2344],\n [80.0684, 30.5859],\n [79.7168, 30.9375],\n [79.0137, 31.0693],\n [78.75, 31.333],\n [78.8379, 31.5967],\n [78.6621, 31.8164],\n [78.75, 31.9043],\n [78.4863, 32.124],\n [78.3984, 32.5195],\n [78.75, 32.6953],\n [78.9258, 32.3438],\n [79.2773, 32.5635],\n [79.1016, 33.1787],\n [78.6621, 33.6621],\n [78.6621, 34.1016],\n [78.9258, 34.1455],\n [79.0137, 34.3213],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '15',\n size: '450',\n name: '内蒙古自治区',\n cp: [112.5977, 46.3408],\n childNum: 12,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [97.207, 42.8027],\n [99.4922, 42.583],\n [100.8105, 42.6709],\n [101.7773, 42.4951],\n [102.041, 42.2314],\n [102.7441, 42.1436],\n [103.3594, 41.8799],\n [103.8867, 41.792],\n [104.502, 41.8799],\n [104.502, 41.6602],\n [105.0293, 41.5723],\n [105.7324, 41.9238],\n [107.4023, 42.4512],\n [109.4238, 42.4512],\n [110.3906, 42.7588],\n [111.0059, 43.3301],\n [111.9727, 43.6816],\n [111.9727, 43.8135],\n [111.4453, 44.3848],\n [111.7969, 45],\n [111.9727, 45.0879],\n [113.6426, 44.7363],\n [114.1699, 44.9561],\n [114.5215, 45.3955],\n [115.6641, 45.4395],\n [116.1914, 45.7031],\n [116.2793, 45.9668],\n [116.543, 46.2744],\n [117.334, 46.3623],\n [117.4219, 46.582],\n [117.7734, 46.5381],\n [118.3008, 46.7578],\n [118.7402, 46.7139],\n [118.916, 46.7578],\n [119.0918, 46.6699],\n [119.707, 46.626],\n [119.9707, 46.7139],\n [119.707, 47.1973],\n [118.4766, 47.9883],\n [117.8613, 48.0322],\n [117.334, 47.6807],\n [116.8066, 47.9004],\n [116.1914, 47.8564],\n [115.9277, 47.6807],\n [115.5762, 47.9004],\n [115.4883, 48.1641],\n [115.8398, 48.252],\n [115.8398, 48.5596],\n [116.7188, 49.834],\n [117.7734, 49.5264],\n [118.5645, 49.9219],\n [119.2676, 50.0977],\n [119.3555, 50.3174],\n [119.1797, 50.3613],\n [119.5313, 50.7568],\n [119.5313, 50.8887],\n [119.707, 51.0645],\n [120.1465, 51.6797],\n [120.6738, 51.9434],\n [120.7617, 52.1191],\n [120.7617, 52.251],\n [120.5859, 52.3389],\n [120.6738, 52.5146],\n [120.4102, 52.6465],\n [120.0586, 52.6025],\n [120.0586, 52.7344],\n [120.8496, 53.2617],\n [121.4648, 53.3496],\n [121.8164, 53.042],\n [121.2012, 52.5586],\n [121.6406, 52.4268],\n [121.7285, 52.2949],\n [121.9922, 52.2949],\n [122.168, 52.5146],\n [122.6953, 52.251],\n [122.6074, 52.0752],\n [122.959, 51.3281],\n [123.3105, 51.2402],\n [123.6621, 51.3721],\n [124.3652, 51.2842],\n [124.541, 51.3721],\n [124.8926, 51.3721],\n [125.0684, 51.6357],\n [125.332, 51.6357],\n [126.0352, 51.0205],\n [125.7715, 50.7568],\n [125.7715, 50.5371],\n [125.332, 50.1416],\n [125.1563, 49.834],\n [125.2441, 49.1748],\n [124.8047, 49.1309],\n [124.4531, 48.1201],\n [124.2773, 48.5156],\n [122.4316, 47.373],\n [123.0469, 46.7139],\n [123.3984, 46.8896],\n [123.3984, 46.9775],\n [123.4863, 46.9775],\n [123.5742, 46.8457],\n [123.5742, 46.8896],\n [123.5742, 46.6699],\n [123.0469, 46.582],\n [123.2227, 46.2305],\n [122.7832, 46.0107],\n [122.6953, 45.7031],\n [122.4316, 45.8789],\n [122.2559, 45.791],\n [121.8164, 46.0107],\n [121.7285, 45.7471],\n [121.9043, 45.7031],\n [122.2559, 45.2637],\n [122.0801, 44.8682],\n [122.3438, 44.2529],\n [123.1348, 44.4727],\n [123.4863, 43.7256],\n [123.3105, 43.5059],\n [123.6621, 43.374],\n [123.5742, 43.0225],\n [123.3105, 42.9785],\n [123.1348, 42.8027],\n [122.7832, 42.7148],\n [122.3438, 42.8467],\n [122.3438, 42.6709],\n [121.9922, 42.7148],\n [121.7285, 42.4512],\n [121.4648, 42.4951],\n [120.498, 42.0996],\n [120.1465, 41.7041],\n [119.8828, 42.1875],\n [119.5313, 42.3633],\n [119.3555, 42.2754],\n [119.2676, 41.7041],\n [119.4434, 41.6162],\n [119.2676, 41.3086],\n [118.3887, 41.3086],\n [118.125, 41.748],\n [118.3008, 41.792],\n [118.3008, 42.0996],\n [118.125, 42.0557],\n [117.9492, 42.2314],\n [118.0371, 42.4072],\n [117.7734, 42.627],\n [117.5098, 42.583],\n [117.334, 42.4512],\n [116.8945, 42.4072],\n [116.8066, 42.0117],\n [116.2793, 42.0117],\n [116.0156, 41.792],\n [115.9277, 41.9238],\n [115.2246, 41.5723],\n [114.9609, 41.6162],\n [114.873, 42.0996],\n [114.5215, 42.1436],\n [114.1699, 41.792],\n [114.2578, 41.5723],\n [113.9063, 41.4404],\n [113.9941, 41.2207],\n [113.9063, 41.1328],\n [114.082, 40.7373],\n [114.082, 40.5176],\n [113.8184, 40.5176],\n [113.5547, 40.3418],\n [113.2031, 40.3857],\n [112.7637, 40.166],\n [112.3242, 40.2539],\n [111.9727, 39.5947],\n [111.4453, 39.6387],\n [111.3574, 39.4189],\n [111.0938, 39.375],\n [111.0938, 39.5947],\n [110.6543, 39.2871],\n [110.127, 39.4629],\n [110.2148, 39.2871],\n [109.8633, 39.2432],\n [109.9512, 39.1553],\n [108.9844, 38.3203],\n [109.0723, 38.0127],\n [108.8965, 37.9688],\n [108.8086, 38.0127],\n [108.7207, 37.7051],\n [108.1934, 37.6172],\n [107.666, 37.8809],\n [107.3145, 38.1006],\n [106.7871, 38.1885],\n [106.5234, 38.3203],\n [106.9629, 38.9795],\n [106.7871, 39.375],\n [106.3477, 39.2871],\n [105.9082, 38.7158],\n [105.8203, 37.793],\n [104.3262, 37.4414],\n [103.4473, 37.8369],\n [103.3594, 38.0127],\n [103.5352, 38.1445],\n [103.4473, 38.3643],\n [104.2383, 38.9795],\n [104.0625, 39.4189],\n [103.3594, 39.3311],\n [103.0078, 39.1113],\n [102.4805, 39.2432],\n [101.8652, 39.1113],\n [102.041, 38.8916],\n [101.7773, 38.6719],\n [101.3379, 38.7598],\n [101.25, 39.0234],\n [100.9863, 38.9355],\n [100.8105, 39.4189],\n [100.5469, 39.4189],\n [100.0195, 39.7705],\n [99.4922, 39.8584],\n [100.1074, 40.2539],\n [100.1953, 40.6494],\n [99.9316, 41.001],\n [99.2285, 40.8691],\n [99.0527, 40.6934],\n [98.9648, 40.7813],\n [98.7891, 40.6055],\n [98.5254, 40.7373],\n [98.6133, 40.6494],\n [98.3496, 40.5615],\n [98.3496, 40.9131],\n [97.4707, 41.4844],\n [97.8223, 41.6162],\n [97.8223, 41.748],\n [97.207, 42.8027],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '63',\n size: '800',\n name: '青海省',\n cp: [95.2402, 35.4199],\n childNum: 8,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [89.7363, 36.0791],\n [89.9121, 36.0791],\n [90, 36.2549],\n [90.8789, 36.0352],\n [91.0547, 36.0791],\n [91.0547, 36.5186],\n [90.791, 36.6064],\n [90.7031, 36.7822],\n [91.3184, 37.0898],\n [91.0547, 37.4414],\n [90.5273, 37.8369],\n [90.6152, 38.3203],\n [90.3516, 38.2324],\n [90.1758, 38.4961],\n [92.373, 39.0234],\n [92.373, 39.1113],\n [93.1641, 39.1992],\n [93.1641, 38.9795],\n [93.6914, 38.9355],\n [93.8672, 38.7158],\n [94.3066, 38.7598],\n [94.5703, 38.3643],\n [95.0098, 38.4082],\n [95.4492, 38.2764],\n [95.7129, 38.3643],\n [96.2402, 38.1006],\n [96.416, 38.2324],\n [96.6797, 38.1885],\n [96.6797, 38.4521],\n [97.1191, 38.584],\n [97.0313, 39.1992],\n [98.1738, 38.8037],\n [98.3496, 39.0234],\n [98.6133, 38.9355],\n [98.7891, 39.0674],\n [99.1406, 38.9355],\n [99.8438, 38.3643],\n [100.1953, 38.2764],\n [100.0195, 38.4521],\n [100.1074, 38.4961],\n [100.459, 38.2764],\n [100.7227, 38.2324],\n [101.1621, 37.8369],\n [101.5137, 37.8809],\n [101.7773, 37.6172],\n [101.9531, 37.7051],\n [102.1289, 37.4414],\n [102.5684, 37.1777],\n [102.4805, 36.958],\n [102.6563, 36.8262],\n [102.5684, 36.7383],\n [102.832, 36.3428],\n [103.0078, 36.2549],\n [102.9199, 36.0791],\n [102.9199, 35.9033],\n [102.6563, 35.7715],\n [102.832, 35.5957],\n [102.4805, 35.5957],\n [102.3047, 35.4199],\n [102.3926, 35.2002],\n [101.9531, 34.8486],\n [101.9531, 34.6289],\n [102.2168, 34.4092],\n [102.1289, 34.2773],\n [101.6895, 34.1016],\n [100.9863, 34.3652],\n [100.8105, 34.2773],\n [101.25, 33.6621],\n [101.5137, 33.7061],\n [101.6016, 33.5303],\n [101.7773, 33.5303],\n [101.6895, 33.3105],\n [101.7773, 33.2227],\n [101.6016, 33.1348],\n [101.1621, 33.2227],\n [101.25, 32.6953],\n [100.7227, 32.6514],\n [100.7227, 32.5195],\n [100.3711, 32.7393],\n [100.1074, 32.6514],\n [100.1074, 32.8711],\n [99.8438, 33.0029],\n [99.7559, 32.7393],\n [99.2285, 32.915],\n [99.2285, 33.0469],\n [98.877, 33.1787],\n [98.4375, 34.0576],\n [97.8223, 34.1895],\n [97.6465, 34.1016],\n [97.7344, 33.9258],\n [97.3828, 33.8818],\n [97.4707, 33.5742],\n [97.7344, 33.3984],\n [97.3828, 32.8711],\n [97.4707, 32.6953],\n [97.7344, 32.5195],\n [97.3828, 32.5635],\n [97.2949, 32.0801],\n [96.7676, 31.9922],\n [96.8555, 31.6846],\n [96.5039, 31.7285],\n [96.2402, 31.9482],\n [96.1523, 31.5967],\n [95.9766, 31.8164],\n [95.8008, 31.6846],\n [95.4492, 31.8164],\n [95.3613, 31.9922],\n [95.3613, 32.168],\n [95.2734, 32.2119],\n [95.1855, 32.3438],\n [95.0098, 32.2998],\n [95.1855, 32.4316],\n [94.6582, 32.6074],\n [94.1309, 32.4316],\n [93.7793, 32.5635],\n [93.5156, 32.4756],\n [92.9883, 32.7393],\n [92.2852, 32.7393],\n [92.1973, 32.8271],\n [91.9336, 32.8271],\n [91.4063, 33.1348],\n [90.7031, 33.1348],\n [90.0879, 33.4863],\n [89.6484, 34.0137],\n [89.8242, 34.3652],\n [89.7363, 34.6729],\n [89.8242, 34.8486],\n [89.5605, 34.8926],\n [89.4727, 35.2441],\n [89.4727, 35.376],\n [89.7363, 35.4199],\n [89.7363, 35.7715],\n [89.4727, 35.9033],\n [89.3848, 36.0352],\n [89.7363, 36.0791],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '51',\n size: '900',\n name: '四川省',\n cp: [101.9199, 30.1904],\n childNum: 21,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [101.7773, 33.5303],\n [101.8652, 33.5742],\n [101.9531, 33.4424],\n [101.8652, 33.0908],\n [102.4805, 33.4424],\n [102.2168, 33.9258],\n [102.9199, 34.3213],\n [103.0957, 34.1895],\n [103.1836, 33.7939],\n [104.1504, 33.6182],\n [104.2383, 33.3984],\n [104.4141, 33.3105],\n [104.3262, 33.2227],\n [104.4141, 33.0469],\n [104.3262, 32.8711],\n [104.4141, 32.7393],\n [105.2051, 32.6074],\n [105.3809, 32.7393],\n [105.3809, 32.8711],\n [105.4688, 32.915],\n [105.5566, 32.7393],\n [106.084, 32.8711],\n [106.084, 32.7393],\n [106.3477, 32.6514],\n [107.0508, 32.6953],\n [107.1387, 32.4756],\n [107.2266, 32.4316],\n [107.4023, 32.5195],\n [108.0176, 32.168],\n [108.2813, 32.2559],\n [108.5449, 32.2119],\n [108.3691, 32.168],\n [108.2813, 31.9043],\n [108.5449, 31.6846],\n [108.1934, 31.5088],\n [107.9297, 30.8496],\n [107.4902, 30.8496],\n [107.4023, 30.7617],\n [107.4902, 30.6299],\n [107.0508, 30.0146],\n [106.7871, 30.0146],\n [106.6113, 30.3223],\n [106.2598, 30.1904],\n [105.8203, 30.4541],\n [105.6445, 30.2783],\n [105.5566, 30.1025],\n [105.7324, 29.8828],\n [105.293, 29.5313],\n [105.4688, 29.3115],\n [105.7324, 29.2676],\n [105.8203, 28.96],\n [106.2598, 28.8721],\n [106.3477, 28.5205],\n [105.9961, 28.7402],\n [105.6445, 28.4326],\n [105.9082, 28.125],\n [106.1719, 28.125],\n [106.3477, 27.8174],\n [105.6445, 27.6416],\n [105.5566, 27.7734],\n [105.293, 27.7295],\n [105.2051, 27.9932],\n [105.0293, 28.0811],\n [104.8535, 27.9053],\n [104.4141, 27.9492],\n [104.3262, 28.0371],\n [104.4141, 28.125],\n [104.4141, 28.2568],\n [104.2383, 28.4326],\n [104.4141, 28.6084],\n [103.8867, 28.6523],\n [103.7988, 28.3008],\n [103.4473, 28.125],\n [103.4473, 27.7734],\n [102.9199, 27.29],\n [103.0078, 26.3672],\n [102.6563, 26.1914],\n [102.5684, 26.3672],\n [102.1289, 26.1035],\n [101.8652, 26.0596],\n [101.6016, 26.2354],\n [101.6895, 26.3672],\n [101.4258, 26.5869],\n [101.4258, 26.8066],\n [101.4258, 26.7188],\n [101.1621, 27.0264],\n [101.1621, 27.1582],\n [100.7227, 27.8613],\n [100.3711, 27.8174],\n [100.2832, 27.7295],\n [100.0195, 28.125],\n [100.1953, 28.3447],\n [99.668, 28.8281],\n [99.4043, 28.5205],\n [99.4043, 28.1689],\n [99.2285, 28.3008],\n [99.1406, 29.2676],\n [98.9648, 30.7617],\n [98.6133, 31.2012],\n [98.877, 31.4209],\n [98.4375, 31.8604],\n [98.1738, 32.3438],\n [97.7344, 32.5195],\n [97.4707, 32.6953],\n [97.3828, 32.8711],\n [97.7344, 33.3984],\n [97.4707, 33.5742],\n [97.3828, 33.8818],\n [97.7344, 33.9258],\n [97.6465, 34.1016],\n [97.8223, 34.1895],\n [98.4375, 34.0576],\n [98.877, 33.1787],\n [99.2285, 33.0469],\n [99.2285, 32.915],\n [99.7559, 32.7393],\n [99.8438, 33.0029],\n [100.1074, 32.8711],\n [100.1074, 32.6514],\n [100.3711, 32.7393],\n [100.7227, 32.5195],\n [100.7227, 32.6514],\n [101.25, 32.6953],\n [101.1621, 33.2227],\n [101.6016, 33.1348],\n [101.7773, 33.2227],\n [101.6895, 33.3105],\n [101.7773, 33.5303],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '23',\n size: '700',\n name: '黑龙江省',\n cp: [126.1445, 48.7156],\n childNum: 13,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [121.4648, 53.3496],\n [123.6621, 53.5693],\n [124.8926, 53.0859],\n [125.0684, 53.2178],\n [125.5957, 53.0859],\n [125.6836, 52.9102],\n [126.123, 52.7783],\n [126.0352, 52.6025],\n [126.2109, 52.5146],\n [126.3867, 52.2949],\n [126.3867, 52.207],\n [126.5625, 52.1631],\n [126.4746, 51.9434],\n [126.9141, 51.3721],\n [126.8262, 51.2842],\n [127.002, 51.3281],\n [126.9141, 51.1084],\n [127.2656, 50.7568],\n [127.3535, 50.2734],\n [127.6172, 50.2295],\n [127.5293, 49.8779],\n [127.793, 49.6143],\n [128.7598, 49.5703],\n [129.1113, 49.3506],\n [129.4629, 49.4385],\n [130.2539, 48.8672],\n [130.6934, 48.8672],\n [130.5176, 48.6475],\n [130.8691, 48.2959],\n [130.6934, 48.1201],\n [131.0449, 47.6807],\n [132.5391, 47.7246],\n [132.627, 47.9443],\n [133.0664, 48.1201],\n [133.5059, 48.1201],\n [134.209, 48.3838],\n [135.0879, 48.4277],\n [134.7363, 48.252],\n [134.5605, 47.9883],\n [134.7363, 47.6807],\n [134.5605, 47.4609],\n [134.3848, 47.4609],\n [134.209, 47.2852],\n [134.209, 47.1533],\n [133.8574, 46.5381],\n [133.9453, 46.2744],\n [133.5059, 45.835],\n [133.418, 45.5713],\n [133.2422, 45.5273],\n [133.0664, 45.1318],\n [132.8906, 45.0439],\n [131.9238, 45.3516],\n [131.5723, 45.0439],\n [131.0449, 44.8682],\n [131.3086, 44.0771],\n [131.2207, 43.7256],\n [131.3086, 43.4619],\n [130.8691, 43.418],\n [130.5176, 43.6377],\n [130.3418, 43.9893],\n [129.9902, 43.8574],\n [129.9023, 44.0332],\n [129.8145, 43.9014],\n [129.2871, 43.8135],\n [129.1992, 43.5938],\n [128.8477, 43.5498],\n [128.4961, 44.165],\n [128.4082, 44.4727],\n [128.0566, 44.3408],\n [128.0566, 44.1211],\n [127.7051, 44.1211],\n [127.5293, 44.6045],\n [127.0898, 44.6045],\n [127.002, 44.7803],\n [127.0898, 45],\n [126.9141, 45.1318],\n [126.5625, 45.2637],\n [126.0352, 45.1758],\n [125.7715, 45.3076],\n [125.6836, 45.5273],\n [125.0684, 45.3955],\n [124.8926, 45.5273],\n [124.3652, 45.4395],\n [124.0137, 45.7471],\n [123.9258, 46.2305],\n [123.2227, 46.2305],\n [123.0469, 46.582],\n [123.5742, 46.6699],\n [123.5742, 46.8896],\n [123.5742, 46.8457],\n [123.4863, 46.9775],\n [123.3984, 46.9775],\n [123.3984, 46.8896],\n [123.0469, 46.7139],\n [122.4316, 47.373],\n [124.2773, 48.5156],\n [124.4531, 48.1201],\n [124.8047, 49.1309],\n [125.2441, 49.1748],\n [125.1563, 49.834],\n [125.332, 50.1416],\n [125.7715, 50.5371],\n [125.7715, 50.7568],\n [126.0352, 51.0205],\n [125.332, 51.6357],\n [125.0684, 51.6357],\n [124.8926, 51.3721],\n [124.541, 51.3721],\n [124.3652, 51.2842],\n [123.6621, 51.3721],\n [123.3105, 51.2402],\n [122.959, 51.3281],\n [122.6074, 52.0752],\n [122.6953, 52.251],\n [122.168, 52.5146],\n [121.9922, 52.2949],\n [121.7285, 52.2949],\n [121.6406, 52.4268],\n [121.2012, 52.5586],\n [121.8164, 53.042],\n [121.4648, 53.3496],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '62',\n size: '690',\n name: '甘肃省',\n cp: [99.7129, 38.166],\n childNum: 14,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [96.416, 42.7148],\n [97.207, 42.8027],\n [97.8223, 41.748],\n [97.8223, 41.6162],\n [97.4707, 41.4844],\n [98.3496, 40.9131],\n [98.3496, 40.5615],\n [98.6133, 40.6494],\n [98.5254, 40.7373],\n [98.7891, 40.6055],\n [98.9648, 40.7813],\n [99.0527, 40.6934],\n [99.2285, 40.8691],\n [99.9316, 41.001],\n [100.1953, 40.6494],\n [100.1074, 40.2539],\n [99.4922, 39.8584],\n [100.0195, 39.7705],\n [100.5469, 39.4189],\n [100.8105, 39.4189],\n [100.9863, 38.9355],\n [101.25, 39.0234],\n [101.3379, 38.7598],\n [101.7773, 38.6719],\n [102.041, 38.8916],\n [101.8652, 39.1113],\n [102.4805, 39.2432],\n [103.0078, 39.1113],\n [103.3594, 39.3311],\n [104.0625, 39.4189],\n [104.2383, 38.9795],\n [103.4473, 38.3643],\n [103.5352, 38.1445],\n [103.3594, 38.0127],\n [103.4473, 37.8369],\n [104.3262, 37.4414],\n [104.5898, 37.4414],\n [104.5898, 37.2217],\n [104.8535, 37.2217],\n [105.293, 36.8262],\n [105.2051, 36.6943],\n [105.4688, 36.123],\n [105.293, 35.9912],\n [105.3809, 35.7715],\n [105.7324, 35.7275],\n [105.8203, 35.5518],\n [105.9961, 35.4639],\n [105.9082, 35.4199],\n [105.9961, 35.4199],\n [106.084, 35.376],\n [106.2598, 35.4199],\n [106.3477, 35.2441],\n [106.5234, 35.332],\n [106.4355, 35.6836],\n [106.6992, 35.6836],\n [106.9629, 35.8154],\n [106.875, 36.123],\n [106.5234, 36.2549],\n [106.5234, 36.4746],\n [106.4355, 36.5625],\n [106.6113, 36.7822],\n [106.6113, 37.0898],\n [107.3145, 37.0898],\n [107.3145, 36.9141],\n [108.7207, 36.3428],\n [108.6328, 35.9912],\n [108.5449, 35.8594],\n [108.6328, 35.5518],\n [108.5449, 35.2881],\n [107.7539, 35.2881],\n [107.7539, 35.1123],\n [107.8418, 35.0244],\n [107.666, 34.9365],\n [107.2266, 34.8926],\n [106.9629, 35.0684],\n [106.6113, 35.0684],\n [106.5234, 34.7607],\n [106.3477, 34.585],\n [106.6992, 34.3213],\n [106.5234, 34.2773],\n [106.6113, 34.1455],\n [106.4355, 33.9258],\n [106.5234, 33.5303],\n [105.9961, 33.6182],\n [105.7324, 33.3984],\n [105.9961, 33.1787],\n [105.9082, 33.0029],\n [105.4688, 32.915],\n [105.3809, 32.8711],\n [105.3809, 32.7393],\n [105.2051, 32.6074],\n [104.4141, 32.7393],\n [104.3262, 32.8711],\n [104.4141, 33.0469],\n [104.3262, 33.2227],\n [104.4141, 33.3105],\n [104.2383, 33.3984],\n [104.1504, 33.6182],\n [103.1836, 33.7939],\n [103.0957, 34.1895],\n [102.9199, 34.3213],\n [102.2168, 33.9258],\n [102.4805, 33.4424],\n [101.8652, 33.0908],\n [101.9531, 33.4424],\n [101.8652, 33.5742],\n [101.7773, 33.5303],\n [101.6016, 33.5303],\n [101.5137, 33.7061],\n [101.25, 33.6621],\n [100.8105, 34.2773],\n [100.9863, 34.3652],\n [101.6895, 34.1016],\n [102.1289, 34.2773],\n [102.2168, 34.4092],\n [101.9531, 34.6289],\n [101.9531, 34.8486],\n [102.3926, 35.2002],\n [102.3047, 35.4199],\n [102.4805, 35.5957],\n [102.832, 35.5957],\n [102.6563, 35.7715],\n [102.9199, 35.9033],\n [102.9199, 36.0791],\n [103.0078, 36.2549],\n [102.832, 36.3428],\n [102.5684, 36.7383],\n [102.6563, 36.8262],\n [102.4805, 36.958],\n [102.5684, 37.1777],\n [102.1289, 37.4414],\n [101.9531, 37.7051],\n [101.7773, 37.6172],\n [101.5137, 37.8809],\n [101.1621, 37.8369],\n [100.7227, 38.2324],\n [100.459, 38.2764],\n [100.1074, 38.4961],\n [100.0195, 38.4521],\n [100.1953, 38.2764],\n [99.8438, 38.3643],\n [99.1406, 38.9355],\n [98.7891, 39.0674],\n [98.6133, 38.9355],\n [98.3496, 39.0234],\n [98.1738, 38.8037],\n [97.0313, 39.1992],\n [97.1191, 38.584],\n [96.6797, 38.4521],\n [96.6797, 38.1885],\n [96.416, 38.2324],\n [96.2402, 38.1006],\n [95.7129, 38.3643],\n [95.4492, 38.2764],\n [95.0098, 38.4082],\n [94.5703, 38.3643],\n [94.3066, 38.7598],\n [93.8672, 38.7158],\n [93.6914, 38.9355],\n [93.1641, 38.9795],\n [93.1641, 39.1992],\n [92.373, 39.1113],\n [92.373, 39.3311],\n [92.6367, 39.6387],\n [93.0762, 40.6494],\n [93.8672, 40.6934],\n [94.043, 41.0889],\n [94.5703, 41.4844],\n [95.1855, 41.792],\n [95.2734, 41.6162],\n [95.9766, 41.9238],\n [96.2402, 42.2314],\n [96.0645, 42.3193],\n [95.9766, 42.4951],\n [96.416, 42.7148],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '53',\n size: '1200',\n name: '云南省',\n cp: [101.0652, 25.1807],\n childNum: 16,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [98.1738, 28.125],\n [98.2617, 28.3887],\n [98.3496, 28.125],\n [98.7012, 28.2129],\n [98.7891, 28.3447],\n [98.6133, 28.5205],\n [98.7012, 28.916],\n [98.7891, 29.0039],\n [98.7891, 28.8721],\n [98.9648, 28.8281],\n [98.9648, 29.1357],\n [99.1406, 29.2676],\n [99.2285, 28.3008],\n [99.4043, 28.1689],\n [99.4043, 28.5205],\n [99.668, 28.8281],\n [100.1953, 28.3447],\n [100.0195, 28.125],\n [100.2832, 27.7295],\n [100.3711, 27.8174],\n [100.7227, 27.8613],\n [101.1621, 27.1582],\n [101.1621, 27.0264],\n [101.4258, 26.7188],\n [101.4258, 26.8066],\n [101.4258, 26.5869],\n [101.6895, 26.3672],\n [101.6016, 26.2354],\n [101.8652, 26.0596],\n [102.1289, 26.1035],\n [102.5684, 26.3672],\n [102.6563, 26.1914],\n [103.0078, 26.3672],\n [102.9199, 27.29],\n [103.4473, 27.7734],\n [103.4473, 28.125],\n [103.7988, 28.3008],\n [103.8867, 28.6523],\n [104.4141, 28.6084],\n [104.2383, 28.4326],\n [104.4141, 28.2568],\n [104.4141, 28.125],\n [104.3262, 28.0371],\n [104.4141, 27.9492],\n [104.8535, 27.9053],\n [105.0293, 28.0811],\n [105.2051, 27.9932],\n [105.293, 27.7295],\n [105.2051, 27.3779],\n [104.5898, 27.334],\n [104.4141, 27.4658],\n [104.1504, 27.2461],\n [103.8867, 27.4219],\n [103.623, 27.0264],\n [103.7109, 26.9824],\n [103.7109, 26.7627],\n [103.8867, 26.543],\n [104.4141, 26.6748],\n [104.6777, 26.4111],\n [104.3262, 25.708],\n [104.8535, 25.2246],\n [104.5898, 25.0488],\n [104.6777, 24.9609],\n [104.502, 24.7412],\n [104.6777, 24.3457],\n [104.7656, 24.4775],\n [105.0293, 24.4336],\n [105.2051, 24.082],\n [105.4688, 24.0381],\n [105.5566, 24.126],\n [105.9961, 24.126],\n [106.1719, 23.8184],\n [106.1719, 23.5547],\n [105.6445, 23.4229],\n [105.5566, 23.2031],\n [105.293, 23.3789],\n [104.8535, 23.1592],\n [104.7656, 22.8516],\n [104.3262, 22.6758],\n [104.1504, 22.8076],\n [103.9746, 22.5439],\n [103.623, 22.7637],\n [103.5352, 22.5879],\n [103.3594, 22.8076],\n [103.0957, 22.4561],\n [102.4805, 22.7637],\n [102.3047, 22.4121],\n [101.8652, 22.3682],\n [101.7773, 22.5],\n [101.6016, 22.1924],\n [101.8652, 21.6211],\n [101.7773, 21.1377],\n [101.6016, 21.2256],\n [101.25, 21.1816],\n [101.1621, 21.7529],\n [100.6348, 21.4453],\n [100.1074, 21.4893],\n [99.9316, 22.0605],\n [99.2285, 22.1484],\n [99.4043, 22.5879],\n [99.3164, 22.7197],\n [99.4922, 23.0713],\n [98.877, 23.2031],\n [98.7012, 23.9502],\n [98.877, 24.126],\n [98.1738, 24.082],\n [97.7344, 23.8623],\n [97.5586, 23.9063],\n [97.7344, 24.126],\n [97.6465, 24.4336],\n [97.5586, 24.4336],\n [97.5586, 24.7412],\n [97.7344, 24.8291],\n [97.8223, 25.2686],\n [98.1738, 25.4004],\n [98.1738, 25.6201],\n [98.3496, 25.5762],\n [98.5254, 25.8398],\n [98.7012, 25.8838],\n [98.6133, 26.0596],\n [98.7012, 26.1475],\n [98.7891, 26.5869],\n [98.7012, 27.5098],\n [98.5254, 27.6416],\n [98.3496, 27.5098],\n [98.1738, 28.125],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '45',\n size: '1450',\n name: '广西壮族自治区',\n cp: [107.7813, 23.6426],\n childNum: 14,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [104.502, 24.7412],\n [104.6777, 24.6094],\n [105.2051, 24.9609],\n [105.9961, 24.6533],\n [106.1719, 24.7852],\n [106.1719, 24.9609],\n [106.875, 25.1807],\n [107.0508, 25.2686],\n [106.9629, 25.4883],\n [107.2266, 25.6201],\n [107.4902, 25.2246],\n [107.7539, 25.2246],\n [107.8418, 25.1367],\n [108.1055, 25.2246],\n [108.1934, 25.4443],\n [108.3691, 25.5322],\n [108.6328, 25.3125],\n [108.6328, 25.5762],\n [109.0723, 25.5322],\n [108.9844, 25.752],\n [109.3359, 25.708],\n [109.5117, 26.0156],\n [109.7754, 25.8838],\n [109.9512, 26.1914],\n [110.2148, 25.9717],\n [110.5664, 26.3232],\n [111.1816, 26.3232],\n [111.2695, 26.2354],\n [111.2695, 25.8838],\n [111.4453, 25.8398],\n [111.0059, 25.0049],\n [111.0938, 24.9609],\n [111.3574, 25.1367],\n [111.5332, 24.6533],\n [111.709, 24.7852],\n [112.0605, 24.7412],\n [111.8848, 24.6533],\n [112.0605, 24.3457],\n [111.8848, 24.2139],\n [111.8848, 23.9941],\n [111.7969, 23.8184],\n [111.6211, 23.8184],\n [111.6211, 23.6865],\n [111.3574, 23.4668],\n [111.4453, 23.0273],\n [111.2695, 22.8076],\n [110.7422, 22.5439],\n [110.7422, 22.2803],\n [110.6543, 22.1484],\n [110.3027, 22.1484],\n [110.3027, 21.8848],\n [109.9512, 21.8408],\n [109.8633, 21.665],\n [109.7754, 21.6211],\n [109.7754, 21.4014],\n [109.5996, 21.4453],\n [109.1602, 21.3574],\n [109.248, 20.874],\n [109.0723, 20.9619],\n [109.0723, 21.5332],\n [108.7207, 21.5332],\n [108.6328, 21.665],\n [108.2813, 21.4893],\n [107.8418, 21.6211],\n [107.4023, 21.6211],\n [107.0508, 21.7969],\n [107.0508, 21.9287],\n [106.6992, 22.0166],\n [106.6113, 22.4121],\n [106.7871, 22.7637],\n [106.6992, 22.8955],\n [105.9082, 22.9395],\n [105.5566, 23.0713],\n [105.5566, 23.2031],\n [105.6445, 23.4229],\n [106.1719, 23.5547],\n [106.1719, 23.8184],\n [105.9961, 24.126],\n [105.5566, 24.126],\n [105.4688, 24.0381],\n [105.2051, 24.082],\n [105.0293, 24.4336],\n [104.7656, 24.4775],\n [104.6777, 24.3457],\n [104.502, 24.7412],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '43',\n size: '1700',\n name: '湖南省',\n cp: [111.5332, 27.3779],\n childNum: 14,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [109.248, 28.4766],\n [109.248, 29.1357],\n [109.5117, 29.6191],\n [109.6875, 29.6191],\n [109.7754, 29.751],\n [110.4785, 29.6631],\n [110.6543, 29.751],\n [110.4785, 30.0146],\n [110.8301, 30.1465],\n [111.7969, 29.9268],\n [112.2363, 29.5313],\n [112.5, 29.6191],\n [112.6758, 29.5752],\n [112.9395, 29.7949],\n [113.0273, 29.751],\n [112.9395, 29.4873],\n [113.0273, 29.4434],\n [113.5547, 29.8389],\n [113.5547, 29.707],\n [113.7305, 29.5752],\n [113.6426, 29.3115],\n [113.7305, 29.0918],\n [113.9063, 29.0479],\n [114.1699, 28.8281],\n [114.082, 28.5645],\n [114.2578, 28.3447],\n [113.7305, 27.9492],\n [113.6426, 27.5977],\n [113.6426, 27.3779],\n [113.8184, 27.29],\n [113.7305, 27.1143],\n [113.9063, 26.9385],\n [113.9063, 26.6309],\n [114.082, 26.5869],\n [113.9941, 26.1914],\n [114.2578, 26.1475],\n [113.9941, 26.0596],\n [113.9063, 25.4443],\n [113.6426, 25.3125],\n [113.2031, 25.5322],\n [112.8516, 25.3564],\n [113.0273, 25.2246],\n [113.0273, 24.9609],\n [112.8516, 24.917],\n [112.5879, 25.1367],\n [112.2363, 25.1807],\n [112.1484, 24.873],\n [112.0605, 24.7412],\n [111.709, 24.7852],\n [111.5332, 24.6533],\n [111.3574, 25.1367],\n [111.0938, 24.9609],\n [111.0059, 25.0049],\n [111.4453, 25.8398],\n [111.2695, 25.8838],\n [111.2695, 26.2354],\n [111.1816, 26.3232],\n [110.5664, 26.3232],\n [110.2148, 25.9717],\n [109.9512, 26.1914],\n [109.7754, 25.8838],\n [109.5117, 26.0156],\n [109.4238, 26.2793],\n [109.248, 26.3232],\n [109.4238, 26.5869],\n [109.3359, 26.7188],\n [109.5117, 26.8066],\n [109.5117, 27.0264],\n [109.3359, 27.1582],\n [108.8965, 27.0264],\n [108.8086, 27.1143],\n [109.4238, 27.5977],\n [109.3359, 27.9053],\n [109.3359, 28.2568],\n [109.248, 28.4766],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '61',\n size: '1150',\n name: '陕西省',\n cp: [109.5996, 35.7396],\n childNum: 10,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [105.4688, 32.915],\n [105.9082, 33.0029],\n [105.9961, 33.1787],\n [105.7324, 33.3984],\n [105.9961, 33.6182],\n [106.5234, 33.5303],\n [106.4355, 33.9258],\n [106.6113, 34.1455],\n [106.5234, 34.2773],\n [106.6992, 34.3213],\n [106.3477, 34.585],\n [106.5234, 34.7607],\n [106.6113, 35.0684],\n [106.9629, 35.0684],\n [107.2266, 34.8926],\n [107.666, 34.9365],\n [107.8418, 35.0244],\n [107.7539, 35.1123],\n [107.7539, 35.2881],\n [108.5449, 35.2881],\n [108.6328, 35.5518],\n [108.5449, 35.8594],\n [108.6328, 35.9912],\n [108.7207, 36.3428],\n [107.3145, 36.9141],\n [107.3145, 37.0898],\n [107.3145, 37.6172],\n [107.666, 37.8809],\n [108.1934, 37.6172],\n [108.7207, 37.7051],\n [108.8086, 38.0127],\n [108.8965, 37.9688],\n [109.0723, 38.0127],\n [108.9844, 38.3203],\n [109.9512, 39.1553],\n [109.8633, 39.2432],\n [110.2148, 39.2871],\n [110.127, 39.4629],\n [110.6543, 39.2871],\n [111.0938, 39.5947],\n [111.0938, 39.375],\n [111.1816, 39.2432],\n [110.918, 38.7158],\n [110.8301, 38.4961],\n [110.4785, 38.1885],\n [110.4785, 37.9688],\n [110.8301, 37.6611],\n [110.3906, 37.002],\n [110.4785, 36.123],\n [110.5664, 35.6396],\n [110.2148, 34.8926],\n [110.2148, 34.6729],\n [110.3906, 34.585],\n [110.4785, 34.2334],\n [110.6543, 34.1455],\n [110.6543, 33.8379],\n [111.0059, 33.5303],\n [111.0059, 33.2666],\n [110.7422, 33.1348],\n [110.5664, 33.2666],\n [110.3027, 33.1787],\n [109.5996, 33.2666],\n [109.4238, 33.1348],\n [109.7754, 33.0469],\n [109.7754, 32.915],\n [110.127, 32.7393],\n [110.127, 32.6074],\n [109.6875, 32.6074],\n [109.5117, 32.4316],\n [109.5996, 31.7285],\n [109.248, 31.7285],\n [109.0723, 31.9482],\n [108.5449, 32.2119],\n [108.2813, 32.2559],\n [108.0176, 32.168],\n [107.4023, 32.5195],\n [107.2266, 32.4316],\n [107.1387, 32.4756],\n [107.0508, 32.6953],\n [106.3477, 32.6514],\n [106.084, 32.7393],\n [106.084, 32.8711],\n [105.5566, 32.7393],\n [105.4688, 32.915],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '44',\n size: '1600',\n name: '广东省',\n cp: [113.4668, 22.8076],\n childNum: 21,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [109.7754, 21.4014],\n [109.7754, 21.6211],\n [109.8633, 21.665],\n [109.9512, 21.8408],\n [110.3027, 21.8848],\n [110.3027, 22.1484],\n [110.6543, 22.1484],\n [110.7422, 22.2803],\n [110.7422, 22.5439],\n [111.2695, 22.8076],\n [111.4453, 23.0273],\n [111.3574, 23.4668],\n [111.6211, 23.6865],\n [111.6211, 23.8184],\n [111.7969, 23.8184],\n [111.8848, 23.9941],\n [111.8848, 24.2139],\n [112.0605, 24.3457],\n [111.8848, 24.6533],\n [112.0605, 24.7412],\n [112.1484, 24.873],\n [112.2363, 25.1807],\n [112.5879, 25.1367],\n [112.8516, 24.917],\n [113.0273, 24.9609],\n [113.0273, 25.2246],\n [112.8516, 25.3564],\n [113.2031, 25.5322],\n [113.6426, 25.3125],\n [113.9063, 25.4443],\n [113.9941, 25.2686],\n [114.6094, 25.4004],\n [114.7852, 25.2686],\n [114.6973, 25.1367],\n [114.4336, 24.9609],\n [114.1699, 24.6973],\n [114.4336, 24.5215],\n [115.4004, 24.7852],\n [115.8398, 24.5654],\n [115.752, 24.7852],\n [115.9277, 24.917],\n [116.2793, 24.7852],\n [116.3672, 24.873],\n [116.543, 24.6094],\n [116.7188, 24.6533],\n [116.9824, 24.1699],\n [116.9824, 23.9063],\n [117.1582, 23.5547],\n [117.334, 23.2471],\n [116.8945, 23.3789],\n [116.6309, 23.1152],\n [116.543, 22.8516],\n [115.9277, 22.7197],\n [115.6641, 22.7637],\n [115.5762, 22.6318],\n [115.0488, 22.6758],\n [114.6094, 22.3682],\n [114.3457, 22.5439],\n [113.9941, 22.5],\n [113.8184, 22.1924],\n [114.3457, 22.1484],\n [114.4336, 22.0166],\n [114.082, 21.9287],\n [113.9941, 21.7969],\n [113.5547, 22.0166],\n [113.1152, 21.8408],\n [112.9395, 21.5771],\n [112.4121, 21.4453],\n [112.2363, 21.5332],\n [111.5332, 21.4893],\n [111.2695, 21.3574],\n [110.7422, 21.3574],\n [110.6543, 21.2256],\n [110.7422, 20.918],\n [110.4785, 20.874],\n [110.6543, 20.2588],\n [110.5664, 20.2588],\n [110.3906, 20.127],\n [110.0391, 20.127],\n [109.8633, 20.127],\n [109.8633, 20.3027],\n [109.5996, 20.918],\n [109.7754, 21.4014],\n [109.7754, 21.4014],\n ],\n [\n [113.5986, 22.1649],\n [113.6096, 22.1265],\n [113.5547, 22.11],\n [113.5437, 22.2034],\n [113.5767, 22.2034],\n [113.5986, 22.1649],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '22',\n size: '1120',\n name: '吉林省',\n cp: [125.7746, 43.5938],\n childNum: 9,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [123.2227, 46.2305],\n [123.9258, 46.2305],\n [124.0137, 45.7471],\n [124.3652, 45.4395],\n [124.8926, 45.5273],\n [125.0684, 45.3955],\n [125.6836, 45.5273],\n [125.7715, 45.3076],\n [126.0352, 45.1758],\n [126.5625, 45.2637],\n [126.9141, 45.1318],\n [127.0898, 45],\n [127.002, 44.7803],\n [127.0898, 44.6045],\n [127.5293, 44.6045],\n [127.7051, 44.1211],\n [128.0566, 44.1211],\n [128.0566, 44.3408],\n [128.4082, 44.4727],\n [128.4961, 44.165],\n [128.8477, 43.5498],\n [129.1992, 43.5938],\n [129.2871, 43.8135],\n [129.8145, 43.9014],\n [129.9023, 44.0332],\n [129.9902, 43.8574],\n [130.3418, 43.9893],\n [130.5176, 43.6377],\n [130.8691, 43.418],\n [131.3086, 43.4619],\n [131.3086, 43.3301],\n [131.1328, 42.9346],\n [130.4297, 42.7148],\n [130.6055, 42.6709],\n [130.6055, 42.4512],\n [130.2539, 42.7588],\n [130.2539, 42.8906],\n [130.166, 42.9785],\n [129.9023, 43.0225],\n [129.7266, 42.4951],\n [129.375, 42.4512],\n [128.9355, 42.0117],\n [128.0566, 42.0117],\n [128.3203, 41.5723],\n [128.1445, 41.3525],\n [127.0898, 41.5283],\n [127.1777, 41.5723],\n [126.9141, 41.792],\n [126.6504, 41.6602],\n [126.4746, 41.3965],\n [126.123, 40.957],\n [125.6836, 40.8691],\n [125.5957, 40.9131],\n [125.7715, 41.2207],\n [125.332, 41.6602],\n [125.332, 41.9678],\n [125.4199, 42.0996],\n [125.332, 42.1436],\n [124.8926, 42.8027],\n [124.8926, 43.0664],\n [124.7168, 43.0664],\n [124.4531, 42.8467],\n [124.2773, 43.2422],\n [123.8379, 43.4619],\n [123.6621, 43.374],\n [123.3105, 43.5059],\n [123.4863, 43.7256],\n [123.1348, 44.4727],\n [122.3438, 44.2529],\n [122.0801, 44.8682],\n [122.2559, 45.2637],\n [121.9043, 45.7031],\n [121.7285, 45.7471],\n [121.8164, 46.0107],\n [122.2559, 45.791],\n [122.4316, 45.8789],\n [122.6953, 45.7031],\n [122.7832, 46.0107],\n [123.2227, 46.2305],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '13',\n size: '1300',\n name: '河北省',\n cp: [115.4004, 39.4688],\n childNum: 11,\n },\n geometry: {\n type: 'MultiPolygon',\n coordinates: [\n [\n [\n [114.5215, 39.5068],\n [114.3457, 39.8584],\n [113.9941, 39.9902],\n [114.5215, 40.3418],\n [114.3457, 40.3857],\n [114.2578, 40.6055],\n [114.082, 40.7373],\n [113.9063, 41.1328],\n [113.9941, 41.2207],\n [113.9063, 41.4404],\n [114.2578, 41.5723],\n [114.1699, 41.792],\n [114.5215, 42.1436],\n [114.873, 42.0996],\n [114.9609, 41.6162],\n [115.2246, 41.5723],\n [115.9277, 41.9238],\n [116.0156, 41.792],\n [116.2793, 42.0117],\n [116.8066, 42.0117],\n [116.8945, 42.4072],\n [117.334, 42.4512],\n [117.5098, 42.583],\n [117.7734, 42.627],\n [118.0371, 42.4072],\n [117.9492, 42.2314],\n [118.125, 42.0557],\n [118.3008, 42.0996],\n [118.3008, 41.792],\n [118.125, 41.748],\n [118.3887, 41.3086],\n [119.2676, 41.3086],\n [118.8281, 40.8252],\n [119.2676, 40.5176],\n [119.5313, 40.5615],\n [119.707, 40.1221],\n [119.8828, 39.9463],\n [119.5313, 39.6826],\n [119.4434, 39.4189],\n [118.916, 39.0674],\n [118.4766, 38.9355],\n [118.125, 39.0234],\n [118.0371, 39.1992],\n [118.0371, 39.2432],\n [117.8613, 39.4189],\n [117.9492, 39.5947],\n [117.6855, 39.5947],\n [117.5098, 39.7705],\n [117.5098, 39.9902],\n [117.6855, 39.9902],\n [117.6855, 40.0781],\n [117.4219, 40.21],\n [117.2461, 40.5176],\n [117.4219, 40.6494],\n [116.9824, 40.6934],\n [116.6309, 41.0449],\n [116.3672, 40.9131],\n [116.4551, 40.7813],\n [116.1914, 40.7813],\n [116.1035, 40.6055],\n [115.752, 40.5615],\n [115.9277, 40.2539],\n [115.4004, 39.9463],\n [115.4883, 39.6387],\n [115.752, 39.5068],\n [116.1914, 39.5947],\n [116.3672, 39.4629],\n [116.543, 39.5947],\n [116.8066, 39.5947],\n [116.8945, 39.1113],\n [116.7188, 38.9355],\n [116.7188, 38.8037],\n [117.2461, 38.54],\n [117.5977, 38.6279],\n [117.9492, 38.3203],\n [117.4219, 37.8369],\n [116.8066, 37.8369],\n [116.4551, 37.4854],\n [116.2793, 37.5732],\n [116.2793, 37.3535],\n [116.0156, 37.3535],\n [115.752, 36.9141],\n [115.3125, 36.5186],\n [115.4883, 36.167],\n [115.3125, 36.0791],\n [115.1367, 36.2109],\n [114.9609, 36.0791],\n [114.873, 36.123],\n [113.7305, 36.3428],\n [113.4668, 36.6504],\n [113.7305, 36.8701],\n [113.7305, 37.1338],\n [114.1699, 37.6611],\n [113.9941, 37.7051],\n [113.8184, 38.1445],\n [113.5547, 38.2764],\n [113.5547, 38.54],\n [113.8184, 38.8037],\n [113.8184, 38.9355],\n [113.9063, 39.0234],\n [114.3457, 39.0674],\n [114.5215, 39.5068],\n ],\n ],\n [\n [\n [117.2461, 40.0781],\n [117.1582, 39.8145],\n [117.1582, 39.6387],\n [116.8945, 39.6826],\n [116.8945, 39.8145],\n [116.8066, 39.9902],\n [117.2461, 40.0781],\n ],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '42',\n size: '1500',\n name: '湖北省',\n cp: [112.2363, 31.1572],\n childNum: 17,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [110.2148, 31.1572],\n [110.127, 31.377],\n [109.6875, 31.5527],\n [109.7754, 31.6846],\n [109.5996, 31.7285],\n [109.5117, 32.4316],\n [109.6875, 32.6074],\n [110.127, 32.6074],\n [110.127, 32.7393],\n [109.7754, 32.915],\n [109.7754, 33.0469],\n [109.4238, 33.1348],\n [109.5996, 33.2666],\n [110.3027, 33.1787],\n [110.5664, 33.2666],\n [110.7422, 33.1348],\n [111.0059, 33.2666],\n [111.5332, 32.6074],\n [112.3242, 32.3438],\n [113.2031, 32.4316],\n [113.4668, 32.2998],\n [113.7305, 32.4316],\n [113.8184, 31.8604],\n [113.9941, 31.7725],\n [114.1699, 31.8604],\n [114.5215, 31.7725],\n [114.6094, 31.5527],\n [114.7852, 31.4648],\n [115.1367, 31.5967],\n [115.2246, 31.4209],\n [115.4004, 31.4209],\n [115.5762, 31.2012],\n [116.0156, 31.0254],\n [115.752, 30.6738],\n [116.1035, 30.1904],\n [116.1035, 29.8389],\n [115.9277, 29.707],\n [115.4883, 29.7949],\n [114.873, 29.3994],\n [114.2578, 29.3555],\n [113.9063, 29.0479],\n [113.7305, 29.0918],\n [113.6426, 29.3115],\n [113.7305, 29.5752],\n [113.5547, 29.707],\n [113.5547, 29.8389],\n [113.0273, 29.4434],\n [112.9395, 29.4873],\n [113.0273, 29.751],\n [112.9395, 29.7949],\n [112.6758, 29.5752],\n [112.5, 29.6191],\n [112.2363, 29.5313],\n [111.7969, 29.9268],\n [110.8301, 30.1465],\n [110.4785, 30.0146],\n [110.6543, 29.751],\n [110.4785, 29.6631],\n [109.7754, 29.751],\n [109.6875, 29.6191],\n [109.5117, 29.6191],\n [109.248, 29.1357],\n [109.0723, 29.3555],\n [108.9844, 29.3115],\n [108.6328, 29.8389],\n [108.457, 29.7949],\n [108.5449, 30.2344],\n [108.457, 30.4102],\n [108.6328, 30.5859],\n [108.8086, 30.498],\n [109.0723, 30.6299],\n [109.1602, 30.542],\n [109.248, 30.6299],\n [109.4238, 30.542],\n [109.8633, 30.8936],\n [110.0391, 30.8057],\n [110.2148, 31.1572],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '52',\n size: '2000',\n name: '贵州省',\n cp: [106.6113, 26.9385],\n childNum: 9,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [104.1504, 27.2461],\n [104.4141, 27.4658],\n [104.5898, 27.334],\n [105.2051, 27.3779],\n [105.293, 27.7295],\n [105.5566, 27.7734],\n [105.6445, 27.6416],\n [106.3477, 27.8174],\n [106.1719, 28.125],\n [105.9082, 28.125],\n [105.6445, 28.4326],\n [105.9961, 28.7402],\n [106.3477, 28.5205],\n [106.5234, 28.5645],\n [106.4355, 28.7842],\n [106.5234, 28.7842],\n [106.6113, 28.6523],\n [106.6113, 28.5205],\n [106.6992, 28.4766],\n [106.875, 28.7842],\n [107.4023, 28.8721],\n [107.4023, 29.1797],\n [107.5781, 29.2236],\n [107.8418, 29.1357],\n [107.8418, 29.0039],\n [108.2813, 29.0918],\n [108.3691, 28.6523],\n [108.5449, 28.6523],\n [108.5449, 28.3887],\n [108.7207, 28.4766],\n [108.7207, 28.2129],\n [109.0723, 28.2129],\n [109.248, 28.4766],\n [109.3359, 28.2568],\n [109.3359, 27.9053],\n [109.4238, 27.5977],\n [108.8086, 27.1143],\n [108.8965, 27.0264],\n [109.3359, 27.1582],\n [109.5117, 27.0264],\n [109.5117, 26.8066],\n [109.3359, 26.7188],\n [109.4238, 26.5869],\n [109.248, 26.3232],\n [109.4238, 26.2793],\n [109.5117, 26.0156],\n [109.3359, 25.708],\n [108.9844, 25.752],\n [109.0723, 25.5322],\n [108.6328, 25.5762],\n [108.6328, 25.3125],\n [108.3691, 25.5322],\n [108.1934, 25.4443],\n [108.1055, 25.2246],\n [107.8418, 25.1367],\n [107.7539, 25.2246],\n [107.4902, 25.2246],\n [107.2266, 25.6201],\n [106.9629, 25.4883],\n [107.0508, 25.2686],\n [106.875, 25.1807],\n [106.1719, 24.9609],\n [106.1719, 24.7852],\n [105.9961, 24.6533],\n [105.2051, 24.9609],\n [104.6777, 24.6094],\n [104.502, 24.7412],\n [104.6777, 24.9609],\n [104.5898, 25.0488],\n [104.8535, 25.2246],\n [104.3262, 25.708],\n [104.6777, 26.4111],\n [104.4141, 26.6748],\n [103.8867, 26.543],\n [103.7109, 26.7627],\n [103.7109, 26.9824],\n [103.623, 27.0264],\n [103.8867, 27.4219],\n [104.1504, 27.2461],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '37',\n size: '1500',\n name: '山东省',\n cp: [118.7402, 36.4307],\n childNum: 17,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [115.4883, 36.167],\n [115.3125, 36.5186],\n [115.752, 36.9141],\n [116.0156, 37.3535],\n [116.2793, 37.3535],\n [116.2793, 37.5732],\n [116.4551, 37.4854],\n [116.8066, 37.8369],\n [117.4219, 37.8369],\n [117.9492, 38.3203],\n [118.125, 38.1445],\n [118.916, 38.1445],\n [119.3555, 37.6611],\n [119.0039, 37.5293],\n [119.0039, 37.3535],\n [119.3555, 37.1338],\n [119.707, 37.1338],\n [119.8828, 37.3975],\n [120.498, 37.8369],\n [120.5859, 38.1445],\n [120.9375, 38.4521],\n [121.0254, 37.8369],\n [121.2012, 37.6611],\n [121.9043, 37.4854],\n [122.168, 37.6172],\n [122.2559, 37.4854],\n [122.6074, 37.4854],\n [122.6953, 37.3535],\n [122.6074, 36.9141],\n [122.4316, 36.7822],\n [121.8164, 36.8701],\n [121.7285, 36.6943],\n [121.1133, 36.6064],\n [121.1133, 36.4307],\n [121.377, 36.2549],\n [120.7617, 36.167],\n [120.9375, 35.8594],\n [120.6738, 36.0352],\n [119.707, 35.4639],\n [119.9707, 34.9805],\n [119.3555, 35.0244],\n [119.2676, 35.1123],\n [118.916, 35.0244],\n [118.7402, 34.7168],\n [118.4766, 34.6729],\n [118.3887, 34.4092],\n [118.2129, 34.4092],\n [118.125, 34.6289],\n [117.9492, 34.6729],\n [117.5977, 34.4531],\n [117.334, 34.585],\n [117.2461, 34.4531],\n [116.8066, 34.9365],\n [116.4551, 34.8926],\n [116.3672, 34.6289],\n [116.1914, 34.585],\n [115.5762, 34.585],\n [115.4004, 34.8486],\n [114.7852, 35.0684],\n [115.0488, 35.376],\n [115.2246, 35.4199],\n [115.4883, 35.7275],\n [116.1035, 36.0791],\n [115.3125, 35.8154],\n [115.4883, 36.167],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '36',\n size: '1700',\n name: '江西省',\n cp: [116.0156, 27.29],\n childNum: 11,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [114.2578, 28.3447],\n [114.082, 28.5645],\n [114.1699, 28.8281],\n [113.9063, 29.0479],\n [114.2578, 29.3555],\n [114.873, 29.3994],\n [115.4883, 29.7949],\n [115.9277, 29.707],\n [116.1035, 29.8389],\n [116.2793, 29.7949],\n [116.7188, 30.0586],\n [116.8945, 29.9268],\n [116.7188, 29.751],\n [116.7188, 29.6191],\n [117.1582, 29.707],\n [117.0703, 29.8389],\n [117.1582, 29.9268],\n [117.5098, 29.6191],\n [118.0371, 29.5752],\n [118.2129, 29.3994],\n [118.0371, 29.1797],\n [118.0371, 29.0479],\n [118.3887, 28.7842],\n [118.4766, 28.3447],\n [118.4766, 28.3008],\n [118.3008, 28.0811],\n [117.7734, 27.8174],\n [117.5098, 27.9932],\n [116.9824, 27.6416],\n [117.1582, 27.29],\n [117.0703, 27.1143],\n [116.543, 26.8066],\n [116.6309, 26.4551],\n [116.3672, 26.2354],\n [116.4551, 26.1035],\n [116.1914, 25.8838],\n [116.0156, 25.2686],\n [115.8398, 25.2246],\n [115.9277, 24.917],\n [115.752, 24.7852],\n [115.8398, 24.5654],\n [115.4004, 24.7852],\n [114.4336, 24.5215],\n [114.1699, 24.6973],\n [114.4336, 24.9609],\n [114.6973, 25.1367],\n [114.7852, 25.2686],\n [114.6094, 25.4004],\n [113.9941, 25.2686],\n [113.9063, 25.4443],\n [113.9941, 26.0596],\n [114.2578, 26.1475],\n [113.9941, 26.1914],\n [114.082, 26.5869],\n [113.9063, 26.6309],\n [113.9063, 26.9385],\n [113.7305, 27.1143],\n [113.8184, 27.29],\n [113.6426, 27.3779],\n [113.6426, 27.5977],\n [113.7305, 27.9492],\n [114.2578, 28.3447],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '41',\n size: '1700',\n name: '河南省',\n cp: [113.0668, 33.8818],\n childNum: 17,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [110.3906, 34.585],\n [110.8301, 34.6289],\n [111.1816, 34.8047],\n [111.5332, 34.8486],\n [111.7969, 35.0684],\n [112.0605, 35.0684],\n [112.0605, 35.2881],\n [112.7637, 35.2002],\n [113.1152, 35.332],\n [113.6426, 35.6836],\n [113.7305, 36.3428],\n [114.873, 36.123],\n [114.9609, 36.0791],\n [115.1367, 36.2109],\n [115.3125, 36.0791],\n [115.4883, 36.167],\n [115.3125, 35.8154],\n [116.1035, 36.0791],\n [115.4883, 35.7275],\n [115.2246, 35.4199],\n [115.0488, 35.376],\n [114.7852, 35.0684],\n [115.4004, 34.8486],\n [115.5762, 34.585],\n [116.1914, 34.585],\n [116.1914, 34.4092],\n [116.543, 34.2773],\n [116.6309, 33.9258],\n [116.1914, 33.7061],\n [116.0156, 33.9697],\n [115.6641, 34.0576],\n [115.5762, 33.9258],\n [115.5762, 33.6621],\n [115.4004, 33.5303],\n [115.3125, 33.1787],\n [114.873, 33.1348],\n [114.873, 33.0029],\n [115.1367, 32.8711],\n [115.2246, 32.6074],\n [115.5762, 32.4316],\n [115.8398, 32.5195],\n [115.9277, 31.7725],\n [115.4883, 31.6846],\n [115.4004, 31.4209],\n [115.2246, 31.4209],\n [115.1367, 31.5967],\n [114.7852, 31.4648],\n [114.6094, 31.5527],\n [114.5215, 31.7725],\n [114.1699, 31.8604],\n [113.9941, 31.7725],\n [113.8184, 31.8604],\n [113.7305, 32.4316],\n [113.4668, 32.2998],\n [113.2031, 32.4316],\n [112.3242, 32.3438],\n [111.5332, 32.6074],\n [111.0059, 33.2666],\n [111.0059, 33.5303],\n [110.6543, 33.8379],\n [110.6543, 34.1455],\n [110.4785, 34.2334],\n [110.3906, 34.585],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '21',\n size: '1500',\n name: '辽宁省',\n cp: [122.0438, 41.0889],\n childNum: 14,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [119.2676, 41.3086],\n [119.4434, 41.6162],\n [119.2676, 41.7041],\n [119.3555, 42.2754],\n [119.5313, 42.3633],\n [119.8828, 42.1875],\n [120.1465, 41.7041],\n [120.498, 42.0996],\n [121.4648, 42.4951],\n [121.7285, 42.4512],\n [121.9922, 42.7148],\n [122.3438, 42.6709],\n [122.3438, 42.8467],\n [122.7832, 42.7148],\n [123.1348, 42.8027],\n [123.3105, 42.9785],\n [123.5742, 43.0225],\n [123.6621, 43.374],\n [123.8379, 43.4619],\n [124.2773, 43.2422],\n [124.4531, 42.8467],\n [124.7168, 43.0664],\n [124.8926, 43.0664],\n [124.8926, 42.8027],\n [125.332, 42.1436],\n [125.4199, 42.0996],\n [125.332, 41.9678],\n [125.332, 41.6602],\n [125.7715, 41.2207],\n [125.5957, 40.9131],\n [125.6836, 40.8691],\n [124.541, 40.21],\n [124.1016, 39.6826],\n [123.3984, 39.6826],\n [123.1348, 39.4189],\n [123.1348, 39.0234],\n [122.0801, 39.0234],\n [121.5527, 38.7158],\n [121.1133, 38.6719],\n [120.9375, 38.9795],\n [121.377, 39.1992],\n [121.2012, 39.5508],\n [122.0801, 40.3857],\n [121.9922, 40.6934],\n [121.7285, 40.8252],\n [121.2012, 40.8252],\n [120.5859, 40.21],\n [119.8828, 39.9463],\n [119.707, 40.1221],\n [119.5313, 40.5615],\n [119.2676, 40.5176],\n [118.8281, 40.8252],\n [119.2676, 41.3086],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '14',\n size: '1450',\n name: '山西省',\n cp: [112.4121, 37.6611],\n childNum: 11,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [110.918, 38.7158],\n [111.1816, 39.2432],\n [111.0938, 39.375],\n [111.3574, 39.4189],\n [111.4453, 39.6387],\n [111.9727, 39.5947],\n [112.3242, 40.2539],\n [112.7637, 40.166],\n [113.2031, 40.3857],\n [113.5547, 40.3418],\n [113.8184, 40.5176],\n [114.082, 40.5176],\n [114.082, 40.7373],\n [114.2578, 40.6055],\n [114.3457, 40.3857],\n [114.5215, 40.3418],\n [113.9941, 39.9902],\n [114.3457, 39.8584],\n [114.5215, 39.5068],\n [114.3457, 39.0674],\n [113.9063, 39.0234],\n [113.8184, 38.9355],\n [113.8184, 38.8037],\n [113.5547, 38.54],\n [113.5547, 38.2764],\n [113.8184, 38.1445],\n [113.9941, 37.7051],\n [114.1699, 37.6611],\n [113.7305, 37.1338],\n [113.7305, 36.8701],\n [113.4668, 36.6504],\n [113.7305, 36.3428],\n [113.6426, 35.6836],\n [113.1152, 35.332],\n [112.7637, 35.2002],\n [112.0605, 35.2881],\n [112.0605, 35.0684],\n [111.7969, 35.0684],\n [111.5332, 34.8486],\n [111.1816, 34.8047],\n [110.8301, 34.6289],\n [110.3906, 34.585],\n [110.2148, 34.6729],\n [110.2148, 34.8926],\n [110.5664, 35.6396],\n [110.4785, 36.123],\n [110.3906, 37.002],\n [110.8301, 37.6611],\n [110.4785, 37.9688],\n [110.4785, 38.1885],\n [110.8301, 38.4961],\n [110.918, 38.7158],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '34',\n size: '1700',\n name: '安徽省',\n cp: [117.2461, 32.0361],\n childNum: 17,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [116.6309, 33.9258],\n [116.543, 34.2773],\n [116.1914, 34.4092],\n [116.1914, 34.585],\n [116.3672, 34.6289],\n [116.8945, 34.4092],\n [117.1582, 34.0576],\n [117.5977, 34.0137],\n [117.7734, 33.7061],\n [118.125, 33.75],\n [117.9492, 33.2227],\n [118.0371, 33.1348],\n [118.2129, 33.2227],\n [118.3008, 32.7832],\n [118.7402, 32.7393],\n [118.916, 32.959],\n [119.1797, 32.8271],\n [119.1797, 32.4756],\n [118.5645, 32.5635],\n [118.6523, 32.2119],\n [118.4766, 32.168],\n [118.3887, 31.9482],\n [118.916, 31.5527],\n [118.7402, 31.377],\n [118.8281, 31.2451],\n [119.3555, 31.2891],\n [119.4434, 31.1572],\n [119.6191, 31.1133],\n [119.6191, 31.0693],\n [119.4434, 30.6738],\n [119.2676, 30.6299],\n [119.3555, 30.4102],\n [118.916, 30.3223],\n [118.916, 29.9707],\n [118.7402, 29.707],\n [118.2129, 29.3994],\n [118.0371, 29.5752],\n [117.5098, 29.6191],\n [117.1582, 29.9268],\n [117.0703, 29.8389],\n [117.1582, 29.707],\n [116.7188, 29.6191],\n [116.7188, 29.751],\n [116.8945, 29.9268],\n [116.7188, 30.0586],\n [116.2793, 29.7949],\n [116.1035, 29.8389],\n [116.1035, 30.1904],\n [115.752, 30.6738],\n [116.0156, 31.0254],\n [115.5762, 31.2012],\n [115.4004, 31.4209],\n [115.4883, 31.6846],\n [115.9277, 31.7725],\n [115.8398, 32.5195],\n [115.5762, 32.4316],\n [115.2246, 32.6074],\n [115.1367, 32.8711],\n [114.873, 33.0029],\n [114.873, 33.1348],\n [115.3125, 33.1787],\n [115.4004, 33.5303],\n [115.5762, 33.6621],\n [115.5762, 33.9258],\n [115.6641, 34.0576],\n [116.0156, 33.9697],\n [116.1914, 33.7061],\n [116.6309, 33.9258],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '35',\n size: '2000',\n name: '福建省',\n cp: [118.3008, 25.9277],\n childNum: 9,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [118.4766, 28.3008],\n [118.8281, 28.2568],\n [118.7402, 28.0371],\n [118.916, 27.4658],\n [119.2676, 27.4219],\n [119.6191, 27.6855],\n [119.7949, 27.29],\n [120.2344, 27.4219],\n [120.4102, 27.1582],\n [120.7617, 27.0264],\n [120.6738, 26.8945],\n [120.2344, 26.8506],\n [120.2344, 26.7188],\n [120.4102, 26.6748],\n [120.498, 26.3672],\n [120.2344, 26.2793],\n [120.4102, 26.1475],\n [120.0586, 26.1914],\n [119.9707, 25.9277],\n [119.7949, 25.9277],\n [119.9707, 25.4004],\n [119.7949, 25.2686],\n [119.5313, 25.1367],\n [119.4434, 25.0049],\n [119.2676, 25.0928],\n [118.916, 24.8291],\n [118.6523, 24.5215],\n [118.4766, 24.5215],\n [118.4766, 24.4336],\n [118.2129, 24.3457],\n [118.2129, 24.1699],\n [117.8613, 23.9941],\n [117.7734, 23.7744],\n [117.5098, 23.5986],\n [117.1582, 23.5547],\n [116.9824, 23.9063],\n [116.9824, 24.1699],\n [116.7188, 24.6533],\n [116.543, 24.6094],\n [116.3672, 24.873],\n [116.2793, 24.7852],\n [115.9277, 24.917],\n [115.8398, 25.2246],\n [116.0156, 25.2686],\n [116.1914, 25.8838],\n [116.4551, 26.1035],\n [116.3672, 26.2354],\n [116.6309, 26.4551],\n [116.543, 26.8066],\n [117.0703, 27.1143],\n [117.1582, 27.29],\n [116.9824, 27.6416],\n [117.5098, 27.9932],\n [117.7734, 27.8174],\n [118.3008, 28.0811],\n [118.4766, 28.3008],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '33',\n size: '2100',\n name: '浙江省',\n cp: [120.498, 29.0918],\n childNum: 11,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [118.2129, 29.3994],\n [118.7402, 29.707],\n [118.916, 29.9707],\n [118.916, 30.3223],\n [119.3555, 30.4102],\n [119.2676, 30.6299],\n [119.4434, 30.6738],\n [119.6191, 31.0693],\n [119.6191, 31.1133],\n [119.9707, 31.1572],\n [120.498, 30.8057],\n [120.9375, 31.0254],\n [121.2891, 30.6738],\n [121.9922, 30.8057],\n [122.6953, 30.8936],\n [122.8711, 30.7178],\n [122.959, 30.1465],\n [122.6074, 30.1025],\n [122.6074, 29.9268],\n [122.168, 29.5313],\n [122.3438, 28.8721],\n [121.9922, 28.8721],\n [121.9922, 28.4326],\n [121.7285, 28.3447],\n [121.7285, 28.2129],\n [121.4648, 28.2129],\n [121.5527, 28.0371],\n [121.2891, 27.9492],\n [121.1133, 27.4219],\n [120.6738, 27.334],\n [120.6738, 27.1582],\n [120.9375, 27.0264],\n [120.7617, 27.0264],\n [120.4102, 27.1582],\n [120.2344, 27.4219],\n [119.7949, 27.29],\n [119.6191, 27.6855],\n [119.2676, 27.4219],\n [118.916, 27.4658],\n [118.7402, 28.0371],\n [118.8281, 28.2568],\n [118.4766, 28.3008],\n [118.4766, 28.3447],\n [118.3887, 28.7842],\n [118.0371, 29.0479],\n [118.0371, 29.1797],\n [118.2129, 29.3994],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '32',\n size: '1950',\n name: '江苏省',\n cp: [118.8586, 32.915],\n childNum: 13,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [116.3672, 34.6289],\n [116.4551, 34.8926],\n [116.8066, 34.9365],\n [117.2461, 34.4531],\n [117.334, 34.585],\n [117.5977, 34.4531],\n [117.9492, 34.6729],\n [118.125, 34.6289],\n [118.2129, 34.4092],\n [118.3887, 34.4092],\n [118.4766, 34.6729],\n [118.7402, 34.7168],\n [118.916, 35.0244],\n [119.2676, 35.1123],\n [119.3555, 35.0244],\n [119.3555, 34.8486],\n [119.707, 34.585],\n [120.3223, 34.3652],\n [120.9375, 33.0469],\n [121.0254, 32.6514],\n [121.377, 32.4756],\n [121.4648, 32.168],\n [121.9043, 31.9922],\n [121.9922, 31.6846],\n [121.9922, 31.5967],\n [121.2012, 31.8604],\n [121.1133, 31.7285],\n [121.377, 31.5088],\n [121.2012, 31.4648],\n [120.9375, 31.0254],\n [120.498, 30.8057],\n [119.9707, 31.1572],\n [119.6191, 31.1133],\n [119.4434, 31.1572],\n [119.3555, 31.2891],\n [118.8281, 31.2451],\n [118.7402, 31.377],\n [118.916, 31.5527],\n [118.3887, 31.9482],\n [118.4766, 32.168],\n [118.6523, 32.2119],\n [118.5645, 32.5635],\n [119.1797, 32.4756],\n [119.1797, 32.8271],\n [118.916, 32.959],\n [118.7402, 32.7393],\n [118.3008, 32.7832],\n [118.2129, 33.2227],\n [118.0371, 33.1348],\n [117.9492, 33.2227],\n [118.125, 33.75],\n [117.7734, 33.7061],\n [117.5977, 34.0137],\n [117.1582, 34.0576],\n [116.8945, 34.4092],\n [116.3672, 34.6289],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '50',\n size: '2380',\n name: '重庆市',\n cp: [107.7539, 30.1904],\n childNum: 40,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [108.5449, 31.6846],\n [108.2813, 31.9043],\n [108.3691, 32.168],\n [108.5449, 32.2119],\n [109.0723, 31.9482],\n [109.248, 31.7285],\n [109.5996, 31.7285],\n [109.7754, 31.6846],\n [109.6875, 31.5527],\n [110.127, 31.377],\n [110.2148, 31.1572],\n [110.0391, 30.8057],\n [109.8633, 30.8936],\n [109.4238, 30.542],\n [109.248, 30.6299],\n [109.1602, 30.542],\n [109.0723, 30.6299],\n [108.8086, 30.498],\n [108.6328, 30.5859],\n [108.457, 30.4102],\n [108.5449, 30.2344],\n [108.457, 29.7949],\n [108.6328, 29.8389],\n [108.9844, 29.3115],\n [109.0723, 29.3555],\n [109.248, 29.1357],\n [109.248, 28.4766],\n [109.0723, 28.2129],\n [108.7207, 28.2129],\n [108.7207, 28.4766],\n [108.5449, 28.3887],\n [108.5449, 28.6523],\n [108.3691, 28.6523],\n [108.2813, 29.0918],\n [107.8418, 29.0039],\n [107.8418, 29.1357],\n [107.5781, 29.2236],\n [107.4023, 29.1797],\n [107.4023, 28.8721],\n [106.875, 28.7842],\n [106.6992, 28.4766],\n [106.6113, 28.5205],\n [106.6113, 28.6523],\n [106.5234, 28.7842],\n [106.4355, 28.7842],\n [106.5234, 28.5645],\n [106.3477, 28.5205],\n [106.2598, 28.8721],\n [105.8203, 28.96],\n [105.7324, 29.2676],\n [105.4688, 29.3115],\n [105.293, 29.5313],\n [105.7324, 29.8828],\n [105.5566, 30.1025],\n [105.6445, 30.2783],\n [105.8203, 30.4541],\n [106.2598, 30.1904],\n [106.6113, 30.3223],\n [106.7871, 30.0146],\n [107.0508, 30.0146],\n [107.4902, 30.6299],\n [107.4023, 30.7617],\n [107.4902, 30.8496],\n [107.9297, 30.8496],\n [108.1934, 31.5088],\n [108.5449, 31.6846],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '64',\n size: '2100',\n name: '宁夏回族自治区',\n cp: [105.9961, 37.3096],\n childNum: 5,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [104.3262, 37.4414],\n [105.8203, 37.793],\n [105.9082, 38.7158],\n [106.3477, 39.2871],\n [106.7871, 39.375],\n [106.9629, 38.9795],\n [106.5234, 38.3203],\n [106.7871, 38.1885],\n [107.3145, 38.1006],\n [107.666, 37.8809],\n [107.3145, 37.6172],\n [107.3145, 37.0898],\n [106.6113, 37.0898],\n [106.6113, 36.7822],\n [106.4355, 36.5625],\n [106.5234, 36.4746],\n [106.5234, 36.2549],\n [106.875, 36.123],\n [106.9629, 35.8154],\n [106.6992, 35.6836],\n [106.4355, 35.6836],\n [106.5234, 35.332],\n [106.3477, 35.2441],\n [106.2598, 35.4199],\n [106.084, 35.376],\n [105.9961, 35.4199],\n [106.084, 35.4639],\n [105.9961, 35.4639],\n [105.8203, 35.5518],\n [105.7324, 35.7275],\n [105.3809, 35.7715],\n [105.293, 35.9912],\n [105.4688, 36.123],\n [105.2051, 36.6943],\n [105.293, 36.8262],\n [104.8535, 37.2217],\n [104.5898, 37.2217],\n [104.5898, 37.4414],\n [104.3262, 37.4414],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '46',\n size: '4500',\n name: '海南省',\n cp: [109.9512, 19.2041],\n childNum: 18,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [108.6328, 19.3799],\n [109.0723, 19.6436],\n [109.248, 19.9512],\n [109.5996, 20.0391],\n [110.0391, 20.127],\n [110.3906, 20.127],\n [110.5664, 20.2588],\n [110.6543, 20.2588],\n [111.0938, 19.9512],\n [111.2695, 19.9951],\n [110.6543, 19.1602],\n [110.5664, 18.6768],\n [110.2148, 18.5889],\n [110.0391, 18.3691],\n [109.8633, 18.3691],\n [109.6875, 18.1055],\n [108.9844, 18.2813],\n [108.6328, 18.457],\n [108.6328, 19.3799],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '71',\n size: '3000',\n name: '台湾省',\n cp: [120.0254, 23.5986],\n childNum: 1,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [121.9043, 25.0488],\n [121.9922, 25.0049],\n [121.8164, 24.7412],\n [121.9043, 24.5654],\n [121.6406, 24.0381],\n [121.377, 23.1152],\n [121.0254, 22.6758],\n [120.8496, 22.0605],\n [120.7617, 21.9287],\n [120.6738, 22.3242],\n [120.2344, 22.5879],\n [120.0586, 23.0713],\n [120.1465, 23.6865],\n [121.0254, 25.0488],\n [121.5527, 25.3125],\n [121.9043, 25.0488],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '11',\n size: '5000',\n name: '北京市',\n cp: [116.4551, 40.2539],\n childNum: 19,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [117.4219, 40.21],\n [117.334, 40.1221],\n [117.2461, 40.0781],\n [116.8066, 39.9902],\n [116.8945, 39.8145],\n [116.8945, 39.6826],\n [116.8066, 39.5947],\n [116.543, 39.5947],\n [116.3672, 39.4629],\n [116.1914, 39.5947],\n [115.752, 39.5068],\n [115.4883, 39.6387],\n [115.4004, 39.9463],\n [115.9277, 40.2539],\n [115.752, 40.5615],\n [116.1035, 40.6055],\n [116.1914, 40.7813],\n [116.4551, 40.7813],\n [116.3672, 40.9131],\n [116.6309, 41.0449],\n [116.9824, 40.6934],\n [117.4219, 40.6494],\n [117.2461, 40.5176],\n [117.4219, 40.21],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '12',\n size: '5000',\n name: '天津市',\n cp: [117.4219, 39.4189],\n childNum: 18,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [116.8066, 39.5947],\n [116.8945, 39.6826],\n [117.1582, 39.6387],\n [117.1582, 39.8145],\n [117.2461, 40.0781],\n [117.334, 40.1221],\n [117.4219, 40.21],\n [117.6855, 40.0781],\n [117.6855, 39.9902],\n [117.5098, 39.9902],\n [117.5098, 39.7705],\n [117.6855, 39.5947],\n [117.9492, 39.5947],\n [117.8613, 39.4189],\n [118.0371, 39.2432],\n [118.0371, 39.1992],\n [117.8613, 39.1113],\n [117.5977, 38.6279],\n [117.2461, 38.54],\n [116.7188, 38.8037],\n [116.7188, 38.9355],\n [116.8945, 39.1113],\n [116.8066, 39.5947],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '31',\n size: '7500',\n name: '上海市',\n cp: [121.4648, 31.2891],\n childNum: 19,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [120.9375, 31.0254],\n [121.2012, 31.4648],\n [121.377, 31.5088],\n [121.1133, 31.7285],\n [121.2012, 31.8604],\n [121.9922, 31.5967],\n [121.9043, 31.1572],\n [121.9922, 30.8057],\n [121.2891, 30.6738],\n [120.9375, 31.0254],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '81',\n size: '18000',\n name: '香港特别行政区',\n cp: [114.1178, 22.3242],\n childNum: 1,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [114.6094, 22.4121],\n [114.5215, 22.1484],\n [114.3457, 22.1484],\n [113.9063, 22.1484],\n [113.8184, 22.1924],\n [113.9063, 22.4121],\n [114.1699, 22.5439],\n [114.3457, 22.5439],\n [114.4336, 22.5439],\n [114.4336, 22.4121],\n [114.6094, 22.4121],\n ],\n ],\n },\n },\n {\n type: 'Feature',\n properties: {\n id: '82',\n size: '27',\n name: '澳门特别行政区',\n cp: [111.5547, 22.1484],\n childNum: 1,\n },\n geometry: {\n type: 'Polygon',\n coordinates: [\n [\n [113.5986, 22.1649],\n [113.6096, 22.1265],\n [113.5547, 22.11],\n [113.5437, 22.2034],\n [113.5767, 22.2034],\n [113.5986, 22.1649],\n ],\n ],\n },\n },\n ],\n};\n\nexport { chinaGeojson };\n","// const\nconst MAPBOX_TOKEN =\n 'pk.eyJ1IjoieWlob25nMDYxOCIsImEiOiJja2J3M28xbG4wYzl0MzJxZm0ya2Fua2p2In0.PNKfkeQwYuyGOTT_x9BJ4Q';\nconst MUNICIPALITY_CITIES_ARR = [\n '北京市',\n '上海市',\n '天津市',\n '重庆市',\n '香港特别行政区',\n '澳门特别行政区',\n];\nconst MAP_LAYER_LIST = [\n 'road-label',\n 'waterway-label',\n 'natural-line-label',\n 'natural-point-label',\n 'water-line-label',\n 'water-point-label',\n 'poi-label',\n 'airport-label',\n 'settlement-subdivision-label',\n 'settlement-label',\n 'state-label',\n 'country-label',\n];\n\n// styling: set to `true` if you want dash-line route\nconst USE_DASH_LINE = true;\n// styling: route line opacity: [0, 1]\nconst LINE_OPACITY = 0.4;\n// styling: map height\nconst MAP_HEIGHT = 600;\n//set to `false` if you want to hide the road label characters\nconst ROAD_LABEL_DISPLAY = true;\n\n// IF you outside China please make sure IS_CHINESE = false\nconst IS_CHINESE = true;\nconst USE_ANIMATION_FOR_GRID = false;\nconst CHINESE_INFO_MESSAGE = (yearLength, year) => {\n const yearStr = year === 'Total' ? '所有' : ` ${year} `;\n return `我用 App 记录自己跑步 ${yearLength} 年了,下面列表展示的是${yearStr}的数据`;\n};\nconst ENGLISH_INFO_MESSAGE = (yearLength, year) =>\n `Running Journey with ${yearLength} Years, the table shows year ${year} data`;\n\n// not support English for now\nconst CHINESE_LOCATION_INFO_MESSAGE_FIRST =\n '我跑过了一些地方,希望随着时间推移,地图点亮的地方越来越多';\nconst CHINESE_LOCATION_INFO_MESSAGE_SECOND = '不要停下来,不要停下奔跑的脚步';\n\nconst INFO_MESSAGE = IS_CHINESE ? CHINESE_INFO_MESSAGE : ENGLISH_INFO_MESSAGE;\nconst FULL_MARATHON_RUN_TITLE = IS_CHINESE ? '全程马拉松' : 'Full Marathon';\nconst HALF_MARATHON_RUN_TITLE = IS_CHINESE ? '半程马拉松' : 'Half Marathon';\nconst MORNING_RUN_TITLE = IS_CHINESE ? '清晨跑步' : 'Morning Run';\nconst MIDDAY_RUN_TITLE = IS_CHINESE ? '午间跑步' : 'Midday Run';\nconst AFTERNOON_RUN_TITLE = IS_CHINESE ? '午后跑步' : 'Afternoon Run';\nconst EVENING_RUN_TITLE = IS_CHINESE ? '傍晚跑步' : 'Evening Run';\nconst NIGHT_RUN_TITLE = IS_CHINESE ? '夜晚跑步' : 'Night Run';\n\nconst RUN_TITLES = {\n FULL_MARATHON_RUN_TITLE,\n HALF_MARATHON_RUN_TITLE,\n MORNING_RUN_TITLE,\n MIDDAY_RUN_TITLE,\n AFTERNOON_RUN_TITLE,\n EVENING_RUN_TITLE,\n NIGHT_RUN_TITLE,\n};\n\nexport {\n CHINESE_LOCATION_INFO_MESSAGE_FIRST,\n CHINESE_LOCATION_INFO_MESSAGE_SECOND,\n MAPBOX_TOKEN,\n MUNICIPALITY_CITIES_ARR,\n MAP_LAYER_LIST,\n IS_CHINESE,\n ROAD_LABEL_DISPLAY,\n INFO_MESSAGE,\n RUN_TITLES,\n USE_ANIMATION_FOR_GRID,\n USE_DASH_LINE,\n LINE_OPACITY,\n MAP_HEIGHT,\n};\n\nconst nike = 'rgb(224,237,94)'; // if you want change the main color change here src/styles/variables.scss\n\n// If your map has an offset please change this line\n// issues #92 and #198\nexport const NEED_FIX_MAP = false;\nexport const MAIN_COLOR = nike;\nexport const PROVINCE_FILL_COLOR = '#47b8e0';\n","import * as mapboxPolyline from '@mapbox/polyline';\nimport gcoord from 'gcoord';\nimport { WebMercatorViewport } from 'react-map-gl';\nimport { chinaGeojson } from 'src/static/run_countries';\nimport { chinaCities } from 'src/static/city';\nimport { MUNICIPALITY_CITIES_ARR, NEED_FIX_MAP, RUN_TITLES } from './const';\n\nconst titleForShow = (run) => {\n const date = run.start_date_local.slice(0, 11);\n const distance = (run.distance / 1000.0).toFixed(2);\n let name = 'Run';\n if (run.name.slice(0, 7) === 'Running') {\n name = 'run';\n }\n if (run.name) {\n name = run.name;\n }\n return `${name} ${date} ${distance} KM ${\n !run.summary_polyline ? '(No map data for this run)' : ''\n }`;\n};\n\nconst formatPace = (d) => {\n if (Number.isNaN(d)) return '0';\n const pace = (1000.0 / 60.0) * (1.0 / d);\n const minutes = Math.floor(pace);\n const seconds = Math.floor((pace - minutes) * 60.0);\n return `${minutes}'${seconds.toFixed(0).toString().padStart(2, '0')}\"`;\n};\n\nconst convertMovingTime2Sec = (moving_time) => {\n if (!moving_time) {\n return 0;\n }\n // moving_time : '2 days, 12:34:56' or '12:34:56';\n const splits = moving_time.split(', ');\n const days = splits.length == 2 ? parseInt(splits[0]) : 0;\n const time = splits.splice(-1)[0];\n const [hours, minutes, seconds] = time.split(':').map(Number);\n const totalSeconds = ((days * 24 + hours) * 60 + minutes) * 60 + seconds;\n return totalSeconds;\n};\n\nconst formatRunTime = (moving_time) => {\n const totalSeconds = convertMovingTime2Sec(moving_time);\n const seconds = totalSeconds % 60;\n const minutes = (totalSeconds - seconds) / 60;\n if (minutes === 0) {\n return seconds + 's';\n }\n return minutes + 'min';\n};\n\n// for scroll to the map\nconst scrollToMap = () => {\n const el = document.querySelector('.fl.w-100.w-70-l');\n const rect = el.getBoundingClientRect();\n window.scroll(rect.left + window.scrollX, rect.top + window.scrollY);\n};\n\nconst pattern = /([\\u4e00-\\u9fa5]{2,}(市|自治州))/g;\nconst extractLocations = (str) => {\n const locations = [];\n let match;\n \n while ((match = pattern.exec(str)) !== null) {\n locations.push(match[0]);\n }\n \n return locations;\n};\n\nconst cities = chinaCities.map((c) => c.name);\n// what about oversea?\nconst locationForRun = (run) => {\n let location = run.location_country;\n let [city, province, country] = ['', '', ''];\n if (location) {\n // Only for Chinese now\n // should fiter 臺灣\n const cityMatch = extractLocations(location);\n const provinceMatch = location.match(/[\\u4e00-\\u9fa5]{2,}(省|自治区)/);\n\n if (cityMatch) {\n [city] = cityMatch;\n\t city = cities.find(value => cityMatch.includes(value));\n\t \n if (!city) {\n city = '';\n }\n }\n if (provinceMatch) {\n [province] = provinceMatch;\n }\n const l = location.split(',');\n // or to handle keep location format\n let countryMatch = l[l.length - 1].match(\n /[\\u4e00-\\u9fa5].*[\\u4e00-\\u9fa5]/\n );\n if (!countryMatch && l.length >= 3) {\n countryMatch = l[2].match(/[\\u4e00-\\u9fa5].*[\\u4e00-\\u9fa5]/);\n }\n if (countryMatch) {\n [country] = countryMatch;\n }\n }\n if (MUNICIPALITY_CITIES_ARR.includes(city)) {\n province = city;\n }\n\n return { country, province, city };\n};\n\nconst intComma = (x = '') => {\n if (x.toString().length <= 5) {\n return x;\n }\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n};\n\nconst pathForRun = (run) => {\n try {\n const c = mapboxPolyline.decode(run.summary_polyline);\n // reverse lat long for mapbox\n c.forEach((arr) => {\n [arr[0], arr[1]] = !NEED_FIX_MAP\n ? [arr[1], arr[0]]\n : gcoord.transform([arr[1], arr[0]], gcoord.GCJ02, gcoord.WGS84);\n });\n return c;\n } catch (err) {\n return [];\n }\n};\n\nconst geoJsonForRuns = (runs) => ({\n type: 'FeatureCollection',\n features: runs.map((run) => {\n const points = pathForRun(run);\n if (!points) {\n return null;\n }\n\n return {\n type: 'Feature',\n geometry: {\n type: 'LineString',\n coordinates: points,\n },\n };\n }),\n});\n\nconst geoJsonForMap = () => chinaGeojson;\n\nconst titleForRun = (run) => {\n const runDistance = run.distance / 1000;\n const runHour = +run.start_date_local.slice(11, 13);\n if (runDistance > 20 && runDistance < 40) {\n return RUN_TITLES.HALF_MARATHON_RUN_TITLE;\n }\n if (runDistance >= 40) {\n return RUN_TITLES.FULL_MARATHON_RUN_TITLE;\n }\n if (runHour >= 0 && runHour <= 10) {\n return RUN_TITLES.MORNING_RUN_TITLE;\n }\n if (runHour > 10 && runHour <= 14) {\n return RUN_TITLES.MIDDAY_RUN_TITLE;\n }\n if (runHour > 14 && runHour <= 18) {\n return RUN_TITLES.AFTERNOON_RUN_TITLE;\n }\n if (runHour > 18 && runHour <= 21) {\n return RUN_TITLES.EVENING_RUN_TITLE;\n }\n return RUN_TITLES.NIGHT_RUN_TITLE;\n};\n\nconst applyToArray = (func, array) => func.apply(Math, array);\nconst getBoundsForGeoData = (geoData) => {\n const { features } = geoData;\n let points;\n // find first have data\n for (const f of features) {\n if (f.geometry.coordinates.length) {\n points = f.geometry.coordinates;\n break;\n }\n }\n if (!points) {\n return {};\n }\n // Calculate corner values of bounds\n const pointsLong = points.map((point) => point[0]);\n const pointsLat = points.map((point) => point[1]);\n const cornersLongLat = [\n [applyToArray(Math.min, pointsLong), applyToArray(Math.min, pointsLat)],\n [applyToArray(Math.max, pointsLong), applyToArray(Math.max, pointsLat)],\n ];\n const viewport = new WebMercatorViewport({\n width: 800,\n height: 600,\n }).fitBounds(cornersLongLat, { padding: 200 });\n let { longitude, latitude, zoom } = viewport;\n if (features.length > 1) {\n zoom = 11.5;\n }\n return { longitude, latitude, zoom };\n};\n\nconst filterYearRuns = (run, year) => {\n if (run && run.start_date_local) {\n return run.start_date_local.slice(0, 4) === year;\n }\n return false;\n};\n\nconst filterCityRuns = (run, city) => {\n if (run && run.location_country) {\n return run.location_country.includes(city);\n }\n return false;\n};\nconst filterTitleRuns = (run, title) => titleForRun(run) === title;\n\nconst filterAndSortRuns = (activities, item, filterFunc, sortFunc) => {\n let s = activities;\n if (item !== 'Total') {\n s = activities.filter((run) => filterFunc(run, item));\n }\n return s.sort(sortFunc);\n};\n\nconst sortDateFunc = (a, b) =>\n new Date(b.start_date_local.replace(' ', 'T')) -\n new Date(a.start_date_local.replace(' ', 'T'));\nconst sortDateFuncReverse = (a, b) => sortDateFunc(b, a);\n\nexport {\n titleForShow,\n formatPace,\n scrollToMap,\n locationForRun,\n intComma,\n pathForRun,\n geoJsonForRuns,\n geoJsonForMap,\n titleForRun,\n filterYearRuns,\n filterCityRuns,\n filterTitleRuns,\n filterAndSortRuns,\n sortDateFunc,\n sortDateFuncReverse,\n getBoundsForGeoData,\n formatRunTime,\n convertMovingTime2Sec,\n};\n","const chinaCities = [\n {\n code: '130100',\n name: '石家庄市',\n province: '13',\n city: '01',\n },\n {\n code: '130200',\n name: '唐山市',\n province: '13',\n city: '02',\n },\n {\n code: '130300',\n name: '秦皇岛市',\n province: '13',\n city: '03',\n },\n {\n code: '130400',\n name: '邯郸市',\n province: '13',\n city: '04',\n },\n {\n code: '130500',\n name: '邢台市',\n province: '13',\n city: '05',\n },\n {\n code: '130600',\n name: '保定市',\n province: '13',\n city: '06',\n },\n {\n code: '130700',\n name: '张家口市',\n province: '13',\n city: '07',\n },\n {\n code: '130800',\n name: '承德市',\n province: '13',\n city: '08',\n },\n {\n code: '130900',\n name: '沧州市',\n province: '13',\n city: '09',\n },\n {\n code: '131000',\n name: '廊坊市',\n province: '13',\n city: '10',\n },\n {\n code: '131100',\n name: '衡水市',\n province: '13',\n city: '11',\n },\n {\n code: '140100',\n name: '太原市',\n province: '14',\n city: '01',\n },\n {\n code: '140200',\n name: '大同市',\n province: '14',\n city: '02',\n },\n {\n code: '140300',\n name: '阳泉市',\n province: '14',\n city: '03',\n },\n {\n code: '140400',\n name: '长治市',\n province: '14',\n city: '04',\n },\n {\n code: '140500',\n name: '晋城市',\n province: '14',\n city: '05',\n },\n {\n code: '140600',\n name: '朔州市',\n province: '14',\n city: '06',\n },\n {\n code: '140700',\n name: '晋中市',\n province: '14',\n city: '07',\n },\n {\n code: '140800',\n name: '运城市',\n province: '14',\n city: '08',\n },\n {\n code: '140900',\n name: '忻州市',\n province: '14',\n city: '09',\n },\n {\n code: '141000',\n name: '临汾市',\n province: '14',\n city: '10',\n },\n {\n code: '141100',\n name: '吕梁市',\n province: '14',\n city: '11',\n },\n {\n code: '150100',\n name: '呼和浩特市',\n province: '15',\n city: '01',\n },\n {\n code: '150200',\n name: '包头市',\n province: '15',\n city: '02',\n },\n {\n code: '150300',\n name: '乌海市',\n province: '15',\n city: '03',\n },\n {\n code: '150400',\n name: '赤峰市',\n province: '15',\n city: '04',\n },\n {\n code: '150500',\n name: '通辽市',\n province: '15',\n city: '05',\n },\n {\n code: '150600',\n name: '鄂尔多斯市',\n province: '15',\n city: '06',\n },\n {\n code: '150700',\n name: '呼伦贝尔市',\n province: '15',\n city: '07',\n },\n {\n code: '150800',\n name: '巴彦淖尔市',\n province: '15',\n city: '08',\n },\n {\n code: '150900',\n name: '乌兰察布市',\n province: '15',\n city: '09',\n },\n {\n code: '152200',\n name: '兴安盟',\n province: '15',\n city: '22',\n },\n {\n code: '152500',\n name: '锡林郭勒盟',\n province: '15',\n city: '25',\n },\n {\n code: '152900',\n name: '阿拉善盟',\n province: '15',\n city: '29',\n },\n {\n code: '210100',\n name: '沈阳市',\n province: '21',\n city: '01',\n },\n {\n code: '210200',\n name: '大连市',\n province: '21',\n city: '02',\n },\n {\n code: '210300',\n name: '鞍山市',\n province: '21',\n city: '03',\n },\n {\n code: '210400',\n name: '抚顺市',\n province: '21',\n city: '04',\n },\n {\n code: '210500',\n name: '本溪市',\n province: '21',\n city: '05',\n },\n {\n code: '210600',\n name: '丹东市',\n province: '21',\n city: '06',\n },\n {\n code: '210700',\n name: '锦州市',\n province: '21',\n city: '07',\n },\n {\n code: '210800',\n name: '营口市',\n province: '21',\n city: '08',\n },\n {\n code: '210900',\n name: '阜新市',\n province: '21',\n city: '09',\n },\n {\n code: '211000',\n name: '辽阳市',\n province: '21',\n city: '10',\n },\n {\n code: '211100',\n name: '盘锦市',\n province: '21',\n city: '11',\n },\n {\n code: '211200',\n name: '铁岭市',\n province: '21',\n city: '12',\n },\n {\n code: '211300',\n name: '朝阳市',\n province: '21',\n city: '13',\n },\n {\n code: '211400',\n name: '葫芦岛市',\n province: '21',\n city: '14',\n },\n {\n code: '220100',\n name: '长春市',\n province: '22',\n city: '01',\n },\n {\n code: '220200',\n name: '吉林市',\n province: '22',\n city: '02',\n },\n {\n code: '220300',\n name: '四平市',\n province: '22',\n city: '03',\n },\n {\n code: '220400',\n name: '辽源市',\n province: '22',\n city: '04',\n },\n {\n code: '220500',\n name: '通化市',\n province: '22',\n city: '05',\n },\n {\n code: '220600',\n name: '白山市',\n province: '22',\n city: '06',\n },\n {\n code: '220700',\n name: '松原市',\n province: '22',\n city: '07',\n },\n {\n code: '220800',\n name: '白城市',\n province: '22',\n city: '08',\n },\n {\n code: '222400',\n name: '延边朝鲜族自治州',\n province: '22',\n city: '24',\n },\n {\n code: '230100',\n name: '哈尔滨市',\n province: '23',\n city: '01',\n },\n {\n code: '230200',\n name: '齐齐哈尔市',\n province: '23',\n city: '02',\n },\n {\n code: '230300',\n name: '鸡西市',\n province: '23',\n city: '03',\n },\n {\n code: '230400',\n name: '鹤岗市',\n province: '23',\n city: '04',\n },\n {\n code: '230500',\n name: '双鸭山市',\n province: '23',\n city: '05',\n },\n {\n code: '230600',\n name: '大庆市',\n province: '23',\n city: '06',\n },\n {\n code: '230700',\n name: '伊春市',\n province: '23',\n city: '07',\n },\n {\n code: '230800',\n name: '佳木斯市',\n province: '23',\n city: '08',\n },\n {\n code: '230900',\n name: '七台河市',\n province: '23',\n city: '09',\n },\n {\n code: '231000',\n name: '牡丹江市',\n province: '23',\n city: '10',\n },\n {\n code: '231100',\n name: '黑河市',\n province: '23',\n city: '11',\n },\n {\n code: '231200',\n name: '绥化市',\n province: '23',\n city: '12',\n },\n {\n code: '232700',\n name: '大兴安岭地区',\n province: '23',\n city: '27',\n },\n {\n code: '320100',\n name: '南京市',\n province: '32',\n city: '01',\n },\n {\n code: '320200',\n name: '无锡市',\n province: '32',\n city: '02',\n },\n {\n code: '320300',\n name: '徐州市',\n province: '32',\n city: '03',\n },\n {\n code: '320400',\n name: '常州市',\n province: '32',\n city: '04',\n },\n {\n code: '320500',\n name: '苏州市',\n province: '32',\n city: '05',\n },\n {\n code: '320600',\n name: '南通市',\n province: '32',\n city: '06',\n },\n {\n code: '320700',\n name: '连云港市',\n province: '32',\n city: '07',\n },\n {\n code: '320800',\n name: '淮安市',\n province: '32',\n city: '08',\n },\n {\n code: '320900',\n name: '盐城市',\n province: '32',\n city: '09',\n },\n {\n code: '321000',\n name: '扬州市',\n province: '32',\n city: '10',\n },\n {\n code: '321100',\n name: '镇江市',\n province: '32',\n city: '11',\n },\n {\n code: '321200',\n name: '泰州市',\n province: '32',\n city: '12',\n },\n {\n code: '321300',\n name: '宿迁市',\n province: '32',\n city: '13',\n },\n {\n code: '330100',\n name: '杭州市',\n province: '33',\n city: '01',\n },\n {\n code: '330200',\n name: '宁波市',\n province: '33',\n city: '02',\n },\n {\n code: '330300',\n name: '温州市',\n province: '33',\n city: '03',\n },\n {\n code: '330400',\n name: '嘉兴市',\n province: '33',\n city: '04',\n },\n {\n code: '330500',\n name: '湖州市',\n province: '33',\n city: '05',\n },\n {\n code: '330600',\n name: '绍兴市',\n province: '33',\n city: '06',\n },\n {\n code: '330700',\n name: '金华市',\n province: '33',\n city: '07',\n },\n {\n code: '330800',\n name: '衢州市',\n province: '33',\n city: '08',\n },\n {\n code: '330900',\n name: '舟山市',\n province: '33',\n city: '09',\n },\n {\n code: '331000',\n name: '台州市',\n province: '33',\n city: '10',\n },\n {\n code: '331100',\n name: '丽水市',\n province: '33',\n city: '11',\n },\n {\n code: '340100',\n name: '合肥市',\n province: '34',\n city: '01',\n },\n {\n code: '340200',\n name: '芜湖市',\n province: '34',\n city: '02',\n },\n {\n code: '340300',\n name: '蚌埠市',\n province: '34',\n city: '03',\n },\n {\n code: '340400',\n name: '淮南市',\n province: '34',\n city: '04',\n },\n {\n code: '340500',\n name: '马鞍山市',\n province: '34',\n city: '05',\n },\n {\n code: '340600',\n name: '淮北市',\n province: '34',\n city: '06',\n },\n {\n code: '340700',\n name: '铜陵市',\n province: '34',\n city: '07',\n },\n {\n code: '340800',\n name: '安庆市',\n province: '34',\n city: '08',\n },\n {\n code: '341000',\n name: '黄山市',\n province: '34',\n city: '10',\n },\n {\n code: '341100',\n name: '滁州市',\n province: '34',\n city: '11',\n },\n {\n code: '341200',\n name: '阜阳市',\n province: '34',\n city: '12',\n },\n {\n code: '341300',\n name: '宿州市',\n province: '34',\n city: '13',\n },\n {\n code: '341500',\n name: '六安市',\n province: '34',\n city: '15',\n },\n {\n code: '341600',\n name: '亳州市',\n province: '34',\n city: '16',\n },\n {\n code: '341700',\n name: '池州市',\n province: '34',\n city: '17',\n },\n {\n code: '341800',\n name: '宣城市',\n province: '34',\n city: '18',\n },\n {\n code: '350100',\n name: '福州市',\n province: '35',\n city: '01',\n },\n {\n code: '350200',\n name: '厦门市',\n province: '35',\n city: '02',\n },\n {\n code: '350300',\n name: '莆田市',\n province: '35',\n city: '03',\n },\n {\n code: '350400',\n name: '三明市',\n province: '35',\n city: '04',\n },\n {\n code: '350500',\n name: '泉州市',\n province: '35',\n city: '05',\n },\n {\n code: '350600',\n name: '漳州市',\n province: '35',\n city: '06',\n },\n {\n code: '350700',\n name: '南平市',\n province: '35',\n city: '07',\n },\n {\n code: '350800',\n name: '龙岩市',\n province: '35',\n city: '08',\n },\n {\n code: '350900',\n name: '宁德市',\n province: '35',\n city: '09',\n },\n {\n code: '360100',\n name: '南昌市',\n province: '36',\n city: '01',\n },\n {\n code: '360200',\n name: '景德镇市',\n province: '36',\n city: '02',\n },\n {\n code: '360300',\n name: '萍乡市',\n province: '36',\n city: '03',\n },\n {\n code: '360400',\n name: '九江市',\n province: '36',\n city: '04',\n },\n {\n code: '360500',\n name: '新余市',\n province: '36',\n city: '05',\n },\n {\n code: '360600',\n name: '鹰潭市',\n province: '36',\n city: '06',\n },\n {\n code: '360700',\n name: '赣州市',\n province: '36',\n city: '07',\n },\n {\n code: '360800',\n name: '吉安市',\n province: '36',\n city: '08',\n },\n {\n code: '360900',\n name: '宜春市',\n province: '36',\n city: '09',\n },\n {\n code: '361000',\n name: '抚州市',\n province: '36',\n city: '10',\n },\n {\n code: '361100',\n name: '上饶市',\n province: '36',\n city: '11',\n },\n {\n code: '370100',\n name: '济南市',\n province: '37',\n city: '01',\n },\n {\n code: '370200',\n name: '青岛市',\n province: '37',\n city: '02',\n },\n {\n code: '370300',\n name: '淄博市',\n province: '37',\n city: '03',\n },\n {\n code: '370400',\n name: '枣庄市',\n province: '37',\n city: '04',\n },\n {\n code: '370500',\n name: '东营市',\n province: '37',\n city: '05',\n },\n {\n code: '370600',\n name: '烟台市',\n province: '37',\n city: '06',\n },\n {\n code: '370700',\n name: '潍坊市',\n province: '37',\n city: '07',\n },\n {\n code: '370800',\n name: '济宁市',\n province: '37',\n city: '08',\n },\n {\n code: '370900',\n name: '泰安市',\n province: '37',\n city: '09',\n },\n {\n code: '371000',\n name: '威海市',\n province: '37',\n city: '10',\n },\n {\n code: '371100',\n name: '日照市',\n province: '37',\n city: '11',\n },\n {\n code: '371300',\n name: '临沂市',\n province: '37',\n city: '13',\n },\n {\n code: '371400',\n name: '德州市',\n province: '37',\n city: '14',\n },\n {\n code: '371500',\n name: '聊城市',\n province: '37',\n city: '15',\n },\n {\n code: '371600',\n name: '滨州市',\n province: '37',\n city: '16',\n },\n {\n code: '371700',\n name: '菏泽市',\n province: '37',\n city: '17',\n },\n {\n code: '410100',\n name: '郑州市',\n province: '41',\n city: '01',\n },\n {\n code: '410200',\n name: '开封市',\n province: '41',\n city: '02',\n },\n {\n code: '410300',\n name: '洛阳市',\n province: '41',\n city: '03',\n },\n {\n code: '410400',\n name: '平顶山市',\n province: '41',\n city: '04',\n },\n {\n code: '410500',\n name: '安阳市',\n province: '41',\n city: '05',\n },\n {\n code: '410600',\n name: '鹤壁市',\n province: '41',\n city: '06',\n },\n {\n code: '410700',\n name: '新乡市',\n province: '41',\n city: '07',\n },\n {\n code: '410800',\n name: '焦作市',\n province: '41',\n city: '08',\n },\n {\n code: '410900',\n name: '濮阳市',\n province: '41',\n city: '09',\n },\n {\n code: '411000',\n name: '许昌市',\n province: '41',\n city: '10',\n },\n {\n code: '411100',\n name: '漯河市',\n province: '41',\n city: '11',\n },\n {\n code: '411200',\n name: '三门峡市',\n province: '41',\n city: '12',\n },\n {\n code: '411300',\n name: '南阳市',\n province: '41',\n city: '13',\n },\n {\n code: '411400',\n name: '商丘市',\n province: '41',\n city: '14',\n },\n {\n code: '411500',\n name: '信阳市',\n province: '41',\n city: '15',\n },\n {\n code: '411600',\n name: '周口市',\n province: '41',\n city: '16',\n },\n {\n code: '411700',\n name: '驻马店市',\n province: '41',\n city: '17',\n },\n {\n code: '420100',\n name: '武汉市',\n province: '42',\n city: '01',\n },\n {\n code: '420200',\n name: '黄石市',\n province: '42',\n city: '02',\n },\n {\n code: '420300',\n name: '十堰市',\n province: '42',\n city: '03',\n },\n {\n code: '420500',\n name: '宜昌市',\n province: '42',\n city: '05',\n },\n {\n code: '420600',\n name: '襄阳市',\n province: '42',\n city: '06',\n },\n {\n code: '420700',\n name: '鄂州市',\n province: '42',\n city: '07',\n },\n {\n code: '420800',\n name: '荆门市',\n province: '42',\n city: '08',\n },\n {\n code: '420900',\n name: '孝感市',\n province: '42',\n city: '09',\n },\n {\n code: '421000',\n name: '荆州市',\n province: '42',\n city: '10',\n },\n {\n code: '421100',\n name: '黄冈市',\n province: '42',\n city: '11',\n },\n {\n code: '421200',\n name: '咸宁市',\n province: '42',\n city: '12',\n },\n {\n code: '421300',\n name: '随州市',\n province: '42',\n city: '13',\n },\n {\n code: '422800',\n name: '恩施土家族苗族自治州',\n province: '42',\n city: '28',\n },\n {\n code: '430100',\n name: '长沙市',\n province: '43',\n city: '01',\n },\n {\n code: '430200',\n name: '株洲市',\n province: '43',\n city: '02',\n },\n {\n code: '430300',\n name: '湘潭市',\n province: '43',\n city: '03',\n },\n {\n code: '430400',\n name: '衡阳市',\n province: '43',\n city: '04',\n },\n {\n code: '430500',\n name: '邵阳市',\n province: '43',\n city: '05',\n },\n {\n code: '430600',\n name: '岳阳市',\n province: '43',\n city: '06',\n },\n {\n code: '430700',\n name: '常德市',\n province: '43',\n city: '07',\n },\n {\n code: '430800',\n name: '张家界市',\n province: '43',\n city: '08',\n },\n {\n code: '430900',\n name: '益阳市',\n province: '43',\n city: '09',\n },\n {\n code: '431000',\n name: '郴州市',\n province: '43',\n city: '10',\n },\n {\n code: '431100',\n name: '永州市',\n province: '43',\n city: '11',\n },\n {\n code: '431200',\n name: '怀化市',\n province: '43',\n city: '12',\n },\n {\n code: '431300',\n name: '娄底市',\n province: '43',\n city: '13',\n },\n {\n code: '433100',\n name: '湘西土家族苗族自治州',\n province: '43',\n city: '31',\n },\n {\n code: '440100',\n name: '广州市',\n province: '44',\n city: '01',\n },\n {\n code: '440200',\n name: '韶关市',\n province: '44',\n city: '02',\n },\n {\n code: '440300',\n name: '深圳市',\n province: '44',\n city: '03',\n },\n {\n code: '440400',\n name: '珠海市',\n province: '44',\n city: '04',\n },\n {\n code: '440500',\n name: '汕头市',\n province: '44',\n city: '05',\n },\n {\n code: '440600',\n name: '佛山市',\n province: '44',\n city: '06',\n },\n {\n code: '440700',\n name: '江门市',\n province: '44',\n city: '07',\n },\n {\n code: '440800',\n name: '湛江市',\n province: '44',\n city: '08',\n },\n {\n code: '440900',\n name: '茂名市',\n province: '44',\n city: '09',\n },\n {\n code: '441200',\n name: '肇庆市',\n province: '44',\n city: '12',\n },\n {\n code: '441300',\n name: '惠州市',\n province: '44',\n city: '13',\n },\n {\n code: '441400',\n name: '梅州市',\n province: '44',\n city: '14',\n },\n {\n code: '441500',\n name: '汕尾市',\n province: '44',\n city: '15',\n },\n {\n code: '441600',\n name: '河源市',\n province: '44',\n city: '16',\n },\n {\n code: '441700',\n name: '阳江市',\n province: '44',\n city: '17',\n },\n {\n code: '441800',\n name: '清远市',\n province: '44',\n city: '18',\n },\n {\n code: '441900',\n name: '东莞市',\n province: '44',\n city: '19',\n },\n {\n code: '442000',\n name: '中山市',\n province: '44',\n city: '20',\n },\n {\n code: '445100',\n name: '潮州市',\n province: '44',\n city: '51',\n },\n {\n code: '445200',\n name: '揭阳市',\n province: '44',\n city: '52',\n },\n {\n code: '445300',\n name: '云浮市',\n province: '44',\n city: '53',\n },\n {\n code: '450100',\n name: '南宁市',\n province: '45',\n city: '01',\n },\n {\n code: '450200',\n name: '柳州市',\n province: '45',\n city: '02',\n },\n {\n code: '450300',\n name: '桂林市',\n province: '45',\n city: '03',\n },\n {\n code: '450400',\n name: '梧州市',\n province: '45',\n city: '04',\n },\n {\n code: '450500',\n name: '北海市',\n province: '45',\n city: '05',\n },\n {\n code: '450600',\n name: '防城港市',\n province: '45',\n city: '06',\n },\n {\n code: '450700',\n name: '钦州市',\n province: '45',\n city: '07',\n },\n {\n code: '450800',\n name: '贵港市',\n province: '45',\n city: '08',\n },\n {\n code: '450900',\n name: '玉林市',\n province: '45',\n city: '09',\n },\n {\n code: '451000',\n name: '百色市',\n province: '45',\n city: '10',\n },\n {\n code: '451100',\n name: '贺州市',\n province: '45',\n city: '11',\n },\n {\n code: '451200',\n name: '河池市',\n province: '45',\n city: '12',\n },\n {\n code: '451300',\n name: '来宾市',\n province: '45',\n city: '13',\n },\n {\n code: '451400',\n name: '崇左市',\n province: '45',\n city: '14',\n },\n {\n code: '460100',\n name: '海口市',\n province: '46',\n city: '01',\n },\n {\n code: '460200',\n name: '三亚市',\n province: '46',\n city: '02',\n },\n {\n code: '460300',\n name: '三沙市',\n province: '46',\n city: '03',\n },\n {\n code: '460400',\n name: '儋州市',\n province: '46',\n city: '04',\n },\n {\n code: '510100',\n name: '成都市',\n province: '51',\n city: '01',\n },\n {\n code: '510300',\n name: '自贡市',\n province: '51',\n city: '03',\n },\n {\n code: '510400',\n name: '攀枝花市',\n province: '51',\n city: '04',\n },\n {\n code: '510500',\n name: '泸州市',\n province: '51',\n city: '05',\n },\n {\n code: '510600',\n name: '德阳市',\n province: '51',\n city: '06',\n },\n {\n code: '510700',\n name: '绵阳市',\n province: '51',\n city: '07',\n },\n {\n code: '510800',\n name: '广元市',\n province: '51',\n city: '08',\n },\n {\n code: '510900',\n name: '遂宁市',\n province: '51',\n city: '09',\n },\n {\n code: '511000',\n name: '内江市',\n province: '51',\n city: '10',\n },\n {\n code: '511100',\n name: '乐山市',\n province: '51',\n city: '11',\n },\n {\n code: '511300',\n name: '南充市',\n province: '51',\n city: '13',\n },\n {\n code: '511400',\n name: '眉山市',\n province: '51',\n city: '14',\n },\n {\n code: '511500',\n name: '宜宾市',\n province: '51',\n city: '15',\n },\n {\n code: '511600',\n name: '广安市',\n province: '51',\n city: '16',\n },\n {\n code: '511700',\n name: '达州市',\n province: '51',\n city: '17',\n },\n {\n code: '511800',\n name: '雅安市',\n province: '51',\n city: '18',\n },\n {\n code: '511900',\n name: '巴中市',\n province: '51',\n city: '19',\n },\n {\n code: '512000',\n name: '资阳市',\n province: '51',\n city: '20',\n },\n {\n code: '513200',\n name: '阿坝藏族羌族自治州',\n province: '51',\n city: '32',\n },\n {\n code: '513300',\n name: '甘孜藏族自治州',\n province: '51',\n city: '33',\n },\n {\n code: '513400',\n name: '凉山彝族自治州',\n province: '51',\n city: '34',\n },\n {\n code: '520100',\n name: '贵阳市',\n province: '52',\n city: '01',\n },\n {\n code: '520200',\n name: '六盘水市',\n province: '52',\n city: '02',\n },\n {\n code: '520300',\n name: '遵义市',\n province: '52',\n city: '03',\n },\n {\n code: '520400',\n name: '安顺市',\n province: '52',\n city: '04',\n },\n {\n code: '520500',\n name: '毕节市',\n province: '52',\n city: '05',\n },\n {\n code: '520600',\n name: '铜仁市',\n province: '52',\n city: '06',\n },\n {\n code: '522300',\n name: '黔西南布依族苗族自治州',\n province: '52',\n city: '23',\n },\n {\n code: '522600',\n name: '黔东南苗族侗族自治州',\n province: '52',\n city: '26',\n },\n {\n code: '522700',\n name: '黔南布依族苗族自治州',\n province: '52',\n city: '27',\n },\n {\n code: '530100',\n name: '昆明市',\n province: '53',\n city: '01',\n },\n {\n code: '530300',\n name: '曲靖市',\n province: '53',\n city: '03',\n },\n {\n code: '530400',\n name: '玉溪市',\n province: '53',\n city: '04',\n },\n {\n code: '530500',\n name: '保山市',\n province: '53',\n city: '05',\n },\n {\n code: '530600',\n name: '昭通市',\n province: '53',\n city: '06',\n },\n {\n code: '530700',\n name: '丽江市',\n province: '53',\n city: '07',\n },\n {\n code: '530800',\n name: '普洱市',\n province: '53',\n city: '08',\n },\n {\n code: '530900',\n name: '临沧市',\n province: '53',\n city: '09',\n },\n {\n code: '532300',\n name: '楚雄彝族自治州',\n province: '53',\n city: '23',\n },\n {\n code: '532500',\n name: '红河哈尼族彝族自治州',\n province: '53',\n city: '25',\n },\n {\n code: '532600',\n name: '文山壮族苗族自治州',\n province: '53',\n city: '26',\n },\n {\n code: '532800',\n name: '西双版纳傣族自治州',\n province: '53',\n city: '28',\n },\n {\n code: '532900',\n name: '大理白族自治州',\n province: '53',\n city: '29',\n },\n {\n code: '533100',\n name: '德宏傣族景颇族自治州',\n province: '53',\n city: '31',\n },\n {\n code: '533300',\n name: '怒江傈僳族自治州',\n province: '53',\n city: '33',\n },\n {\n code: '533400',\n name: '迪庆藏族自治州',\n province: '53',\n city: '34',\n },\n {\n code: '540100',\n name: '拉萨市',\n province: '54',\n city: '01',\n },\n {\n code: '540200',\n name: '日喀则市',\n province: '54',\n city: '02',\n },\n {\n code: '540300',\n name: '昌都市',\n province: '54',\n city: '03',\n },\n {\n code: '540400',\n name: '林芝市',\n province: '54',\n city: '04',\n },\n {\n code: '540500',\n name: '山南市',\n province: '54',\n city: '05',\n },\n {\n code: '540600',\n name: '那曲市',\n province: '54',\n city: '06',\n },\n {\n code: '542500',\n name: '阿里地区',\n province: '54',\n city: '25',\n },\n {\n code: '610100',\n name: '西安市',\n province: '61',\n city: '01',\n },\n {\n code: '610200',\n name: '铜川市',\n province: '61',\n city: '02',\n },\n {\n code: '610300',\n name: '宝鸡市',\n province: '61',\n city: '03',\n },\n {\n code: '610400',\n name: '咸阳市',\n province: '61',\n city: '04',\n },\n {\n code: '610500',\n name: '渭南市',\n province: '61',\n city: '05',\n },\n {\n code: '610600',\n name: '延安市',\n province: '61',\n city: '06',\n },\n {\n code: '610700',\n name: '汉中市',\n province: '61',\n city: '07',\n },\n {\n code: '610800',\n name: '榆林市',\n province: '61',\n city: '08',\n },\n {\n code: '610900',\n name: '安康市',\n province: '61',\n city: '09',\n },\n {\n code: '611000',\n name: '商洛市',\n province: '61',\n city: '10',\n },\n {\n code: '620100',\n name: '兰州市',\n province: '62',\n city: '01',\n },\n {\n code: '620200',\n name: '嘉峪关市',\n province: '62',\n city: '02',\n },\n {\n code: '620300',\n name: '金昌市',\n province: '62',\n city: '03',\n },\n {\n code: '620400',\n name: '白银市',\n province: '62',\n city: '04',\n },\n {\n code: '620500',\n name: '天水市',\n province: '62',\n city: '05',\n },\n {\n code: '620600',\n name: '武威市',\n province: '62',\n city: '06',\n },\n {\n code: '620700',\n name: '张掖市',\n province: '62',\n city: '07',\n },\n {\n code: '620800',\n name: '平凉市',\n province: '62',\n city: '08',\n },\n {\n code: '620900',\n name: '酒泉市',\n province: '62',\n city: '09',\n },\n {\n code: '621000',\n name: '庆阳市',\n province: '62',\n city: '10',\n },\n {\n code: '621100',\n name: '定西市',\n province: '62',\n city: '11',\n },\n {\n code: '621200',\n name: '陇南市',\n province: '62',\n city: '12',\n },\n {\n code: '622900',\n name: '临夏回族自治州',\n province: '62',\n city: '29',\n },\n {\n code: '623000',\n name: '甘南藏族自治州',\n province: '62',\n city: '30',\n },\n {\n code: '630100',\n name: '西宁市',\n province: '63',\n city: '01',\n },\n {\n code: '630200',\n name: '海东市',\n province: '63',\n city: '02',\n },\n {\n code: '632200',\n name: '海北藏族自治州',\n province: '63',\n city: '22',\n },\n {\n code: '632300',\n name: '黄南藏族自治州',\n province: '63',\n city: '23',\n },\n {\n code: '632500',\n name: '海南藏族自治州',\n province: '63',\n city: '25',\n },\n {\n code: '632600',\n name: '果洛藏族自治州',\n province: '63',\n city: '26',\n },\n {\n code: '632700',\n name: '玉树藏族自治州',\n province: '63',\n city: '27',\n },\n {\n code: '632800',\n name: '海西蒙古族藏族自治州',\n province: '63',\n city: '28',\n },\n {\n code: '640100',\n name: '银川市',\n province: '64',\n city: '01',\n },\n {\n code: '640200',\n name: '石嘴山市',\n province: '64',\n city: '02',\n },\n {\n code: '640300',\n name: '吴忠市',\n province: '64',\n city: '03',\n },\n {\n code: '640400',\n name: '固原市',\n province: '64',\n city: '04',\n },\n {\n code: '640500',\n name: '中卫市',\n province: '64',\n city: '05',\n },\n {\n code: '650100',\n name: '乌鲁木齐市',\n province: '65',\n city: '01',\n },\n {\n code: '650200',\n name: '克拉玛依市',\n province: '65',\n city: '02',\n },\n {\n code: '650400',\n name: '吐鲁番市',\n province: '65',\n city: '04',\n },\n {\n code: '650500',\n name: '哈密市',\n province: '65',\n city: '05',\n },\n {\n code: '652300',\n name: '昌吉回族自治州',\n province: '65',\n city: '23',\n },\n {\n code: '652700',\n name: '博尔塔拉蒙古自治州',\n province: '65',\n city: '27',\n },\n {\n code: '652800',\n name: '巴音郭楞蒙古自治州',\n province: '65',\n city: '28',\n },\n {\n code: '652900',\n name: '阿克苏地区',\n province: '65',\n city: '29',\n },\n {\n code: '653000',\n name: '克孜勒苏柯尔克孜自治州',\n province: '65',\n city: '30',\n },\n {\n code: '653100',\n name: '喀什地区',\n province: '65',\n city: '31',\n },\n {\n code: '653200',\n name: '和田地区',\n province: '65',\n city: '32',\n },\n {\n code: '654000',\n name: '伊犁哈萨克自治州',\n province: '65',\n city: '40',\n },\n {\n code: '654200',\n name: '塔城地区',\n province: '65',\n city: '42',\n },\n {\n code: '654300',\n name: '阿勒泰地区',\n province: '65',\n city: '43',\n },\n {\n code: '429000',\n name: '湖北省 - 自治区直辖县级行政区划',\n province: '42',\n city: '90',\n },\n {\n code: '469000',\n name: '海南省 - 自治区直辖县级行政区划',\n province: '46',\n city: '90',\n },\n {\n code: '659000',\n name: '新疆维吾尔自治区 - 自治区直辖县级行政区划',\n province: '65',\n city: '90',\n },\n {\n code: '419000',\n name: '河南省 - 省直辖县级行政区划',\n province: '41',\n city: '90',\n },\n {\n code: '110000',\n name: '北京市',\n province: '11',\n },\n {\n code: '120000',\n name: '天津市',\n province: '12',\n },\n {\n code: '130000',\n name: '河北省',\n province: '13',\n },\n {\n code: '140000',\n name: '山西省',\n province: '14',\n },\n {\n code: '150000',\n name: '内蒙古自治区',\n province: '15',\n },\n {\n code: '210000',\n name: '辽宁省',\n province: '21',\n },\n {\n code: '220000',\n name: '吉林省',\n province: '22',\n },\n {\n code: '230000',\n name: '黑龙江省',\n province: '23',\n },\n {\n code: '310000',\n name: '上海市',\n province: '31',\n },\n {\n code: '320000',\n name: '江苏省',\n province: '32',\n },\n {\n code: '330000',\n name: '浙江省',\n province: '33',\n },\n {\n code: '340000',\n name: '安徽省',\n province: '34',\n },\n {\n code: '350000',\n name: '福建省',\n province: '35',\n },\n {\n code: '360000',\n name: '江西省',\n province: '36',\n },\n {\n code: '370000',\n name: '山东省',\n province: '37',\n },\n {\n code: '410000',\n name: '河南省',\n province: '41',\n },\n {\n code: '420000',\n name: '湖北省',\n province: '42',\n },\n {\n code: '430000',\n name: '湖南省',\n province: '43',\n },\n {\n code: '440000',\n name: '广东省',\n province: '44',\n },\n {\n code: '450000',\n name: '广西壮族自治区',\n province: '45',\n },\n {\n code: '460000',\n name: '海南省',\n province: '46',\n },\n {\n code: '500000',\n name: '重庆市',\n province: '50',\n },\n {\n code: '510000',\n name: '四川省',\n province: '51',\n },\n {\n code: '520000',\n name: '贵州省',\n province: '52',\n },\n {\n code: '530000',\n name: '云南省',\n province: '53',\n },\n {\n code: '540000',\n name: '西藏自治区',\n province: '54',\n },\n {\n code: '610000',\n name: '陕西省',\n province: '61',\n },\n {\n code: '620000',\n name: '甘肃省',\n province: '62',\n },\n {\n code: '630000',\n name: '青海省',\n province: '63',\n },\n {\n code: '640000',\n name: '宁夏回族自治区',\n province: '64',\n },\n {\n code: '650000',\n name: '新疆维吾尔自治区',\n province: '65',\n },\n {\n code: '710000',\n name: '台湾省',\n province: '71',\n },\n {\n code: '810000',\n name: '香港特别行政区',\n province: '81',\n },\n {\n code: '820000',\n name: '澳门特别行政区',\n province: '82',\n },\n];\n\nexport { chinaCities };\n","import React from 'react';\nimport { intComma } from 'src/utils/utils';\n\nconst divStyle = {\n fontWeight: '700',\n};\n\nconst Stat = ({ value, description, className, citySize, onClick }) => (\n
\n \n {intComma(value)}\n \n {description}\n
\n);\n\nexport default Stat;\n","import { useStaticQuery, graphql } from 'gatsby';\nimport { locationForRun, titleForRun } from 'src/utils/utils';\n\nconst useActivities = () => {\n const { allActivitiesJson } = useStaticQuery(\n graphql`\n query AllActivities {\n allActivitiesJson {\n nodes {\n id\n distance\n name\n run_id\n moving_time\n type\n average_speed\n average_heartrate\n location_country\n start_date\n start_date_local\n streak\n summary_polyline\n }\n }\n }\n `\n );\n\n const activities = allActivitiesJson.nodes;\n const cities = {};\n const runPeriod = {};\n const provinces = new Set();\n const countries = new Set();\n let years = new Set();\n let thisYear = '';\n\n activities.forEach((run) => {\n const location = locationForRun(run);\n\n const periodName = titleForRun(run);\n if (periodName) {\n runPeriod[periodName] = runPeriod[periodName]\n ? runPeriod[periodName] + 1\n : 1;\n }\n\n const { city, province, country } = location;\n // drop only one char city\n if (city.length > 1) {\n cities[city] = cities[city] ? cities[city] + run.distance : run.distance;\n }\n if (province) provinces.add(province);\n if (country) countries.add(country);\n const year = run.start_date_local.slice(0, 4);\n years.add(year);\n });\n\n years = [...years].sort().reverse();\n if (years) [thisYear] = years; // set current year as first one of years array\n\n return {\n activities,\n years,\n countries: [...countries],\n provinces: [...provinces],\n cities,\n runPeriod,\n thisYear,\n };\n};\n\nexport default useActivities;\n","import { useState } from 'react';\n\nconst useHover = () => {\n const [hovered, setHovered] = useState();\n const [timer, setTimer] = useState();\n\n const eventHandlers = {\n onMouseOver() {\n setTimer(setTimeout(() => setHovered(true), 700));\n },\n onMouseOut() {\n clearTimeout(timer);\n setHovered(false);\n },\n };\n\n return [hovered, eventHandlers];\n};\n\nexport default useHover;\n","// extracted by mini-css-extract-plugin\nexport default {\"yearSVG\":\"style-module--yearSVG--347ec\"};","import React from 'react';\nimport Stat from 'src/components/Stat';\nimport useActivities from 'src/hooks/useActivities';\nimport useHover from 'src/hooks/useHover';\nimport { formatPace } from 'src/utils/utils';\nimport styles from './style.module.scss';\n\nconst YearStat = ({ year, onClick }) => {\n let { activities: runs, years } = useActivities();\n // for hover\n const [hovered, eventHandlers] = useHover();\n // lazy Component\n const YearSVG = React.lazy(() =>\n import(`assets/year_${year}.svg`).catch(() => ({\n default: () =>
,\n }))\n );\n\n if (years.includes(year)) {\n runs = runs.filter((run) => run.start_date_local.slice(0, 4) === year);\n }\n let sumDistance = 0;\n let streak = 0;\n let pace = 0; // eslint-disable-line no-unused-vars\n let paceNullCount = 0; // eslint-disable-line no-unused-vars\n let heartRate = 0;\n let heartRateNullCount = 0;\n let totalMetersAvail = 0;\n let totalSecondsAvail = 0;\n runs.forEach((run) => {\n sumDistance += run.distance || 0;\n if (run.average_speed) {\n pace += run.average_speed;\n totalMetersAvail += run.distance || 0;\n totalSecondsAvail += (run.distance || 0) / run.average_speed;\n } else {\n paceNullCount++;\n }\n if (run.average_heartrate) {\n heartRate += run.average_heartrate;\n } else {\n heartRateNullCount++;\n }\n if (run.streak) {\n streak = Math.max(streak, run.streak);\n }\n });\n sumDistance = parseFloat((sumDistance / 1000.0).toFixed(1));\n const avgPace = formatPace(totalMetersAvail / totalSecondsAvail);\n const hasHeartRate = !(heartRate === 0);\n const avgHeartRate = (heartRate / (runs.length - heartRateNullCount)).toFixed(\n 0\n );\n return (\n onClick(year)}\n {...eventHandlers}\n >\n
\n \n \n \n \n \n {hasHeartRate && (\n \n )}\n
\n {year !== \"Total\" && hovered && (\n \n \n \n )}\n
\n
\n );\n};\n\nexport default YearStat;\n","import React from 'react';\nimport Stat from 'src/components/Stat';\nimport useActivities from 'src/hooks/useActivities';\n\n// only support China for now\nconst CitiesStat = ({ onClick }) => {\n const { cities } = useActivities();\n\n const citiesArr = Object.entries(cities);\n citiesArr.sort((a, b) => b[1] - a[1]);\n return (\n
\n
\n {citiesArr.map(([city, distance]) => (\n onClick(city)}\n />\n ))}\n
\n
\n
\n );\n};\n\nexport default CitiesStat;\n","import React from 'react';\nimport Stat from 'src/components/Stat';\nimport useActivities from 'src/hooks/useActivities';\n\n// only support China for now\nconst LocationSummary = () => {\n const { years, countries, provinces, cities } = useActivities();\n return (\n
\n
\n {years && }\n {countries && }\n {provinces && }\n {cities && (\n \n )}\n
\n
\n
\n );\n};\n\nexport default LocationSummary;\n","import React from 'react';\nimport Stat from 'src/components/Stat';\nimport useActivities from 'src/hooks/useActivities';\n\nconst PeriodStat = ({ onClick }) => {\n const { runPeriod } = useActivities();\n\n const periodArr = Object.entries(runPeriod);\n periodArr.sort((a, b) => b[1] - a[1]);\n return (\n
\n
\n {periodArr.map(([period, times]) => (\n onClick(period)}\n />\n ))}\n
\n
\n
\n );\n};\n\nexport default PeriodStat;\n","import React from 'react';\nimport YearStat from 'src/components/YearStat';\nimport {\n CHINESE_LOCATION_INFO_MESSAGE_FIRST,\n CHINESE_LOCATION_INFO_MESSAGE_SECOND,\n} from 'src/utils/const';\nimport CitiesStat from './CitiesStat';\nimport LocationSummary from './LocationSummary';\nimport PeriodStat from './PeriodStat';\n\nconst LocationStat = ({ changeYear, changeCity, changeTitle }) => (\n
\n
\n

\n {CHINESE_LOCATION_INFO_MESSAGE_FIRST}\n .\n
\n {CHINESE_LOCATION_INFO_MESSAGE_SECOND}\n .\n
\n
\n Yesterday you said tomorrow.\n

\n
\n
\n \n \n \n \n
\n);\n\nexport default LocationStat;\n","// extracted by mini-css-extract-plugin\nexport default {\"locationSVG\":\"style-module--locationSVG--2adbd\",\"buttons\":\"style-module--buttons--4da44\",\"button\":\"style-module--button--1573e\",\"fullscreenButton\":\"style-module--fullscreenButton--4aa1d\",\"runTitle\":\"style-module--runTitle--09504\"};","import EndSvg from 'assets/end.svg';\nimport StartSvg from 'assets/start.svg';\nimport React from 'react';\nimport { Marker } from 'react-map-gl';\nimport styles from './style.module.scss';\n\nconst RunMarker = ({ startLon, startLat, endLon, endLat }) => {\n const size = 20;\n return (\n
\n \n \n \n
\n \n \n \n \n \n \n \n );\n};\n\nexport default RunMarker;\n","import React, { useEffect, useState } from 'react';\nimport useActivities from 'src/hooks/useActivities';\nimport { MAIN_COLOR } from 'src/utils/const';\nimport styles from './style.module.scss';\n\nconst RunMapButtons = ({ changeYear, thisYear, mapButtonYear }) => {\n const elements = document.getElementsByClassName(styles.button);\n const { years } = useActivities();\n const yearsButtons = years.slice();\n yearsButtons.push('Total');\n const [index, setIndex] = useState(0);\n const handleClick = (e, year) => {\n const elementIndex = yearsButtons.indexOf(year);\n e.target.style.color = MAIN_COLOR;\n\n if (index !== elementIndex) {\n elements[index].style.color = 'white';\n }\n setIndex(elementIndex);\n };\n return (\n
\n
    \n {yearsButtons.map((year) => (\n {\n changeYear(year);\n handleClick(e, year);\n }}\n className={styles.button}\n >\n {year}\n \n ))}\n
\n
\n );\n};\n\nexport default RunMapButtons;\n","import MapboxLanguage from '@mapbox/mapbox-gl-language';\nimport React, { useRef, useCallback } from 'react';\nimport ReactMapGL, { Layer, Source, FullscreenControl } from 'react-map-gl';\nimport useActivities from 'src/hooks/useActivities';\nimport {\n MAP_LAYER_LIST,\n IS_CHINESE,\n ROAD_LABEL_DISPLAY,\n MAIN_COLOR,\n MAPBOX_TOKEN,\n PROVINCE_FILL_COLOR,\n USE_DASH_LINE,\n LINE_OPACITY,\n MAP_HEIGHT,\n} from 'src/utils/const';\nimport { geoJsonForMap } from 'src/utils/utils';\nimport RunMarker from './RunMaker';\nimport RunMapButtons from './RunMapButtons';\nimport styles from './style.module.scss';\n\nconst RunMap = ({\n title,\n viewport,\n setViewport,\n changeYear,\n geoData,\n thisYear,\n mapButtonYear,\n}) => {\n const { provinces } = useActivities();\n const mapRef = useRef();\n const mapRefCallback = useCallback(\n (ref) => {\n if (ref !== null) {\n mapRef.current = ref;\n const map = ref.getMap();\n if (map && IS_CHINESE) {\n map.addControl(new MapboxLanguage({ defaultLanguage: 'zh-Hans' }));\n if (!ROAD_LABEL_DISPLAY) {\n // todo delete layers\n map.on('load', () => {\n MAP_LAYER_LIST.forEach((layerId) => {\n map.removeLayer(layerId);\n });\n });\n }\n }\n }\n },\n [mapRef]\n );\n const filterProvinces = provinces.slice();\n // for geojson format\n filterProvinces.unshift('in', 'name');\n\n const isBigMap = viewport.zoom <= 3;\n if (isBigMap && IS_CHINESE) {\n geoData = geoJsonForMap();\n }\n\n const isSingleRun =\n geoData.features.length === 1 &&\n geoData.features[0].geometry.coordinates.length;\n let startLon;\n let startLat;\n let endLon;\n let endLat;\n if (isSingleRun) {\n const points = geoData.features[0].geometry.coordinates;\n [startLon, startLat] = points[0];\n [endLon, endLat] = points[points.length - 1];\n }\n let dash = USE_DASH_LINE && !isSingleRun ? [2, 2] : [2, 0];\n\n return (\n \n \n \n \n \n \n \n {isSingleRun && (\n \n )}\n {title}\n \n );\n};\n\nexport default RunMap;\n","// extracted by mini-css-extract-plugin\nexport default {\"runTable\":\"style-module--runTable--84570\",\"runRow\":\"style-module--runRow--42c85\",\"tableContainer\":\"style-module--tableContainer--b302a\",\"runDate\":\"style-module--runDate--b8f52\"};","import React from 'react';\nimport { MAIN_COLOR } from 'src/utils/const';\nimport { formatPace, titleForRun, formatRunTime } from 'src/utils/utils';\nimport styles from './style.module.scss';\n\nconst RunRow = ({ runs, run, locateActivity, runIndex, setRunIndex }) => {\n const distance = (run.distance / 1000.0).toFixed(2);\n const pace = run.average_speed;\n\n const paceParts = pace ? formatPace(pace) : null;\n\n const heartRate = run.average_heartrate;\n\n const runTime = formatRunTime(run.moving_time);\n\n // change click color\n const handleClick = (e, runs, run) => {\n const elementIndex = runs.indexOf(run);\n e.target.parentElement.style.color = 'red';\n\n const elements = document.getElementsByClassName(styles.runRow);\n if (runIndex !== -1 && elementIndex !== runIndex) {\n elements[runIndex].style.color = MAIN_COLOR;\n }\n setRunIndex(elementIndex);\n };\n\n return (\n {\n handleClick(e, runs, run);\n locateActivity(run);\n }}\n >\n {titleForRun(run)}\n {distance}\n {pace && {paceParts}}\n {heartRate && heartRate.toFixed(0)}\n {runTime}\n {run.start_date_local}\n \n );\n};\n\nexport default RunRow;\n","import React, { useState } from 'react';\nimport { MAIN_COLOR } from 'src/utils/const';\nimport {\n sortDateFunc,\n sortDateFuncReverse,\n convertMovingTime2Sec,\n} from 'src/utils/utils';\nimport RunRow from './RunRow';\nimport styles from './style.module.scss';\n\nconst RunTable = ({\n runs,\n locateActivity,\n setActivity,\n runIndex,\n setRunIndex,\n}) => {\n const [sortFuncInfo, setSortFuncInfo] = useState('');\n // TODO refactor?\n const sortKMFunc = (a, b) =>\n sortFuncInfo === 'KM' ? a.distance - b.distance : b.distance - a.distance;\n const sortPaceFunc = (a, b) =>\n sortFuncInfo === 'Pace'\n ? a.average_speed - b.average_speed\n : b.average_speed - a.average_speed;\n const sortBPMFunc = (a, b) =>\n sortFuncInfo === 'BPM'\n ? a.average_heartrate - b.average_heartrate\n : b.average_heartrate - a.average_heartrate;\n const sortRunTimeFunc = (a, b) => {\n const aTotalSeconds = convertMovingTime2Sec(a.moving_time);\n const bTotalSeconds = convertMovingTime2Sec(b.moving_time);\n return sortFuncInfo === 'Time'\n ? aTotalSeconds - bTotalSeconds\n : bTotalSeconds - aTotalSeconds;\n };\n const sortDateFuncClick =\n sortFuncInfo === 'Date' ? sortDateFunc : sortDateFuncReverse;\n const sortFuncMap = new Map([\n ['KM', sortKMFunc],\n ['Pace', sortPaceFunc],\n ['BPM', sortBPMFunc],\n ['Time', sortRunTimeFunc],\n ['Date', sortDateFuncClick],\n ]);\n const handleClick = (e) => {\n const funcName = e.target.innerHTML;\n if (sortFuncInfo === funcName) {\n setSortFuncInfo('');\n } else {\n setSortFuncInfo(funcName);\n }\n const f = sortFuncMap.get(e.target.innerHTML);\n if (runIndex !== -1) {\n const el = document.getElementsByClassName(styles.runRow);\n el[runIndex].style.color = MAIN_COLOR;\n }\n setActivity(runs.sort(f));\n };\n\n return (\n
\n \n \n \n \n ))}\n \n \n \n {runs.map((run) => (\n \n ))}\n \n
\n {Array.from(sortFuncMap.keys()).map((k) => (\n handleClick(e)}>\n {k}\n
\n
\n );\n};\n\nexport default RunTable;\n","// extracted by mini-css-extract-plugin\nexport default {\"runSVG\":\"style-module--runSVG--e35c5\"};","import React from 'react';\nimport GitHubSvg from 'assets/github.svg';\nimport GridSvg from 'assets/grid.svg';\nimport styles from './style.module.scss';\n\nconst SVGStat = () => (\n
\n \n \n
\n);\n\nexport default SVGStat;\n","import React from 'react';\nimport YearStat from 'src/components/YearStat';\nimport useActivities from 'src/hooks/useActivities';\nimport { INFO_MESSAGE } from 'src/utils/const';\n\nconst YearsStat = ({ year, onClick }) => {\n const { years } = useActivities();\n // make sure the year click on front\n let yearsArrayUpdate = years.slice();\n yearsArrayUpdate.push('Total');\n yearsArrayUpdate = yearsArrayUpdate.filter((x) => x !== year);\n yearsArrayUpdate.unshift(year);\n\n // for short solution need to refactor\n return (\n
\n
\n

\n {INFO_MESSAGE(years.length, year)}\n
\n

\n
\n
\n {yearsArrayUpdate.map((year) => (\n \n ))}\n {yearsArrayUpdate.hasOwnProperty('Total') ? (\n \n ) : (\n
\n )}\n
\n );\n};\n\nexport default YearsStat;\n","import { Analytics } from '@vercel/analytics/react';\nimport React, { useEffect, useState } from 'react';\nimport Layout from 'src/components/Layout';\nimport LocationStat from 'src/components/LocationStat';\nimport RunMap from 'src/components/RunMap';\nimport RunTable from 'src/components/RunTable';\nimport SVGStat from 'src/components/SVGStat';\nimport YearsStat from 'src/components/YearsStat';\nimport useActivities from 'src/hooks/useActivities';\nimport useSiteMetadata from 'src/hooks/useSiteMetadata';\nimport { IS_CHINESE } from 'src/utils/const';\nimport {\n filterAndSortRuns,\n filterCityRuns,\n filterTitleRuns,\n filterYearRuns,\n geoJsonForRuns,\n getBoundsForGeoData,\n scrollToMap,\n sortDateFunc,\n titleForShow,\n} from 'src/utils/utils';\n\nconst Index = () => {\n const { siteTitle } = useSiteMetadata();\n const { activities, thisYear } = useActivities();\n const [year, setYear] = useState(thisYear);\n const [runIndex, setRunIndex] = useState(-1);\n const [runs, setActivity] = useState(\n filterAndSortRuns(activities, year, filterYearRuns, sortDateFunc)\n );\n const [title, setTitle] = useState('');\n const [geoData, setGeoData] = useState(geoJsonForRuns(runs));\n // for auto zoom\n const bounds = getBoundsForGeoData(geoData);\n const [intervalId, setIntervalId] = useState();\n\n const [viewport, setViewport] = useState({\n ...bounds,\n });\n\n const changeByItem = (item, name, func, isChanged) => {\n scrollToMap();\n setActivity(filterAndSortRuns(activities, item, func, sortDateFunc));\n // if the year not change, we do not need to setYear\n if (!isChanged) {\n setRunIndex(-1);\n setTitle(`${item} ${name} Running Heatmap`);\n }\n };\n\n const changeYear = (y) => {\n const isChanged = y === year;\n // default year\n setYear(y);\n\n if (viewport.zoom > 3) {\n setViewport({\n ...bounds,\n });\n }\n\n changeByItem(y, 'Year', filterYearRuns, isChanged);\n clearInterval(intervalId);\n };\n\n const changeCity = (city) => {\n changeByItem(city, 'City', filterCityRuns, false);\n };\n\n const changeTitle = (title) => {\n changeByItem(title, 'Title', filterTitleRuns, false);\n };\n\n const locateActivity = (run) => {\n setGeoData(geoJsonForRuns([run]));\n setTitle(titleForShow(run));\n clearInterval(intervalId);\n scrollToMap();\n };\n\n useEffect(() => {\n setViewport({\n ...bounds,\n });\n }, [geoData]);\n\n useEffect(() => {\n const runsNum = runs.length;\n // maybe change 20 ?\n const sliceNume = runsNum >= 20 ? runsNum / 20 : 1;\n let i = sliceNume;\n const id = setInterval(() => {\n if (i >= runsNum) {\n clearInterval(id);\n }\n\n const tempRuns = runs.slice(0, i);\n setGeoData(geoJsonForRuns(tempRuns));\n i += sliceNume;\n }, 100);\n setIntervalId(id);\n }, [runs]);\n\n // TODO refactor\n useEffect(() => {\n if (year !== 'Total') {\n return;\n }\n\n let rectArr = document.querySelectorAll('rect');\n\n if (rectArr.length !== 0) {\n rectArr = Array.from(rectArr).slice(1);\n }\n\n rectArr.forEach((rect) => {\n const rectColor = rect.getAttribute('fill');\n\n // not run has no click event\n if (rectColor !== '#444444') {\n const runDate = rect.innerHTML;\n // ingnore the error\n const [runName] = runDate.match(/\\d{4}-\\d{1,2}-\\d{1,2}/) || [];\n const runLocate = runs\n .filter((r) => r.start_date_local.slice(0, 10) === runName)\n .sort((a, b) => b.distance - a.distance)[0];\n\n // do not add the event next time\n // maybe a better way?\n if (runLocate) {\n rect.addEventListener(\n 'click',\n () => locateActivity(runLocate),\n false\n );\n }\n }\n });\n let polylineArr = document.querySelectorAll('polyline');\n\n if (polylineArr.length !== 0) {\n polylineArr = Array.from(polylineArr).slice(1);\n }\n\n // add picked runs svg event\n polylineArr.forEach((polyline) => {\n // not run has no click event\n const runDate = polyline.innerHTML;\n // `${+thisYear + 1}` ==> 2021\n const [runName] = runDate.match(/\\d{4}-\\d{1,2}-\\d{1,2}/) || [\n `${+thisYear + 1}`,\n ];\n const run = runs\n .filter((r) => r.start_date_local.slice(0, 10) === runName)\n .sort((a, b) => b.distance - a.distance)[0];\n\n // do not add the event next time\n // maybe a better way?\n if (run) {\n polyline.addEventListener('click', () => locateActivity(run), false);\n }\n });\n }, [year]);\n\n return (\n \n
\n
\n

\n {siteTitle}\n

\n {viewport.zoom <= 3 && IS_CHINESE ? (\n \n ) : (\n \n )}\n
\n
\n \n {year === 'Total' ? (\n \n ) : (\n \n )}\n
\n
\n {/* Enable Audiences in Vercel Analytics: https://vercel.com/docs/concepts/analytics/audiences/quickstart */}\n \n
\n );\n};\n\nexport default Index;\n","var React = require('react');\n\nfunction End (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"id\":\"Page-1\",\"fill\":\"none\",\"fillRule\":\"evenodd\"},React.createElement(\"g\",{\"id\":\"037---Waypoint-Flag\",\"fillRule\":\"nonzero\",\"transform\":\"translate(-1 -1)\"},[React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m58.44 30.6c-11.88 14.2-32.78-3.93-44.27 11.64l-.66-2.34v-.01c-2.29-8.19-4.58-16.3833333-6.87-24.58-.22-.78-.43-1.56-.65-2.34 11.49-15.57 32.4 2.56 44.27-11.64.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z\",\"fill\":\"#e64c3c\",\"key\":0}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m58.44 30.6c-11.88 14.2-32.78-3.93-44.27 11.64-.22-.78-1.95-.87-2.17-1.65v-.01c-2.29-8.19-4.58-16.3833333-6.87-24.58-.22-.78 1.08-2.25.86-3.03 11.49-15.57 32.4 2.56 44.27-11.64.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z\",\"fill\":\"#e64c3c\",\"key\":1}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m9.45150963 10.0111708h.1433c.64015307 0 1.25408707.2542998 1.70674367.7069563.4526565.4526566.7069563 1.0665906.7069563 1.7067437v45.3626c0 1.0664618-.8645381 1.931-1.931 1.931h-1.10879997c-1.06646186 0-1.931-.8645382-1.931-1.931v-45.3626c0-1.3330497 1.0806503-2.4137 2.4137-2.4137z\",\"fill\":\"#cf976a\",\"transform\":\"matrix(.963 -.269 .269 .963 -9.032 3.849)\",\"key\":2})])));\n}\n\nEnd.defaultProps = {\"height\":\"16\",\"viewBox\":\"0 0 58 58\",\"width\":\"16\"};\n\nmodule.exports = End;\n\nEnd.default = End;\n","var React = require('react');\n\nfunction Start (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"id\":\"Page-1\",\"fill\":\"none\",\"fillRule\":\"evenodd\"},React.createElement(\"g\",{\"id\":\"037---Waypoint-Flag\",\"fillRule\":\"nonzero\",\"transform\":\"translate(0 -1)\"},[React.createElement(\"g\",{\"id\":\"Icons_copy\",\"transform\":\"translate(0 1)\",\"key\":0},[React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m58.44 30.6c-11.88 14.2-32.78-3.93-44.27 11.64l-.66-2.34v-.01c-2.29-8.19-4.58-16.3833333-6.87-24.58-.22-.78-.43-1.56-.65-2.34 11.49-15.57 32.4 2.56 44.27-11.64.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z\",\"fill\":\"#e64c3c\",\"key\":0}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m58.44 30.6c-.6501399.7802412-1.3697588 1.4998601-2.15 2.15-10.83 8.99-27.3-2.22-38.4 5.76h-.01c-1.4199733 1.046483-2.6711663 2.304421-3.71 3.73-.22-.78-1.95-.87-2.17-1.65v-.01c-.02-.07-.04-.13-.06-.2-2.27-8.12-4.54-16.2466667-6.81-24.38-.22-.78 1.08-2.25.86-3.03 5.09-6.89 12.02-7.18 19.19-6.6 7.87.65 16.04 2.35 22.38-2.46.9983609-.75079008 1.9046285-1.61677914 2.7-2.58.58-.7 1.13-.4 1.01.62-.06.48-.13.96-.19 1.43-.69 5-1.53 9.44-2.49 13.46-.27 1.13-.54 2.22-.83 3.29-.0181734.0757458-.0315335.1525661-.04.23-.0106736.2802805.1027422.5510151.31.74 2.9783401 2.7019905 6.2761919 5.0292932 9.82 6.93.28.14.55.27.82.39.46.2.35 1.48-.23 2.18z\",\"fill\":\"#cad9fc\",\"key\":1}),React.createElement(\"g\",{\"fill\":\"#e8edfc\",\"key\":2},[React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m56.41 32.61c-.04.05-.08.09-.12.14-10.83 8.99-27.3-2.22-38.4 5.76h-.01c-2.07.32-2 3.52-3.88 4.49-2.27-8.12-6.6-18.87-8.87-27-.22-.78 1.08-2.25.86-3.03 5.09-6.89 12.02-7.18 19.19-6.6 7.87.65 17.48 1.44 23.82-3.37-.71 4.7-2.07 9.87-3 13.78-.31 1.3-.62 2.56-.96 3.79-.0182073.0858464-.0315618.1726507-.04.26-.0165937.3214646.1118607.6334254.35.85 3.99 3.47 6.87 6.23 10.38 7.98.32.16.63.31.94.44.53.23.4 1.71-.26 2.51z\",\"key\":0}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m9.45150963 10.0111708h.1433c.64015307 0 1.25408707.2542998 1.70674367.7069563.4526565.4526566.7069563 1.0665906.7069563 1.7067437v45.3626c0 1.0664618-.8645381 1.931-1.931 1.931h-1.10879997c-1.06646186 0-1.931-.8645382-1.931-1.931v-45.3626c0-1.3330497 1.0806503-2.4137 2.4137-2.4137z\",\"transform\":\"matrix(.963 -.269 .269 .963 -9.032 3.849)\",\"key\":1})])]),React.createElement(\"g\",{\"id\":\"Icons\",\"fill\":\"#fff\",\"transform\":\"translate(1 11)\",\"key\":1},React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m14.678 48.9507 1.0678-.2984c.0634142-.0210171.1256684-.0453847.1865-.073-.3059718-.2499171-.5272905-.5882341-.6337-.9687l-12.2086-43.6888c-.27028924-.97424098.09689756-2.01356496.9192-2.6018-.59836922-.46042192-1.37842214-.61265447-2.106-.411l-.1379.0385c-1.28392347.35874479-2.03396372 1.69035388-1.6753 2.9743l12.2086 43.6888c.2870014 1.0271063 1.3522895 1.6270863 2.3794 1.3401z\"})),React.createElement(\"g\",{\"id\":\"Layer_2\",\"key\":2},[React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m2.053 14.653 3.499 12.52 8.71 31.168-1.926.539-8.71-31.169-3.499-12.52z\",\"fill\":\"#fff\",\"key\":0}),React.createElement(\"g\",{\"fill\":\"#428dff\",\"key\":1},[React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m2.4358 19.7373c.53079922-.1500279.84084226-.7005107.694-1.2322l-1.0765-3.8525-1.9262.5383 1.0765 3.8524c.14998144.5308358.70050349.840901 1.2322.694z\",\"key\":0}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m12.3355 58.88 1.9262-.5383-8.9789-32.1317c-.09615803-.3440825-.36857754-.6107281-.71464074-.6994941-.34606319-.0887659-.71319484.0138335-.9631.26915-.24990517.2553166-.3446173.6245616-.24845926.9686441z\",\"key\":1}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m4.2063 22.3575c-.07490138-.2538315-.24272249-.4701065-.47-.6057l-.1767-.0754c-.06393913-.0215298-.13045347-.0344763-.1978-.0385-.06253228-.0124484-.12657787-.0154484-.19-.0089-.06662004.0069034-.13267939.0184312-.1977.0345-.25396014.0747004-.47033292.2425696-.6058.47-.25632418.4849939-.08842788 1.0857657.3822 1.3676.11633877.0611962.24326559.0996815.374.1134.12966928.0170871.26143258.0085248.3878-.0252.25694371-.0689915.47530619-.2384954.60586452-.4703023.13055832-.2318068.16232364-.506406.08813548-.7618977z\",\"key\":2}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m15.1543 61.0234c-1.3131578-.0035737-2.4641659-.8789182-2.8184-2.1434-.1047434-.3467682-.0137665-.7230684.2378229-.9836871.2515895-.2606187.6244494-.3648018.9746938-.2723454.3502445.0924565.6231043.3670948.7132833.7179325.1386638.4946286.6515843.7836357 1.1465.646l1.0693-.2988c.4945675-.1390172.783314-.6520959.6455-1.147l-12.208-43.6891c-.21192095-.751076-.99110897-1.1895509-1.7431-.9809l-.1367.0381c-.75150823.21118-1.19077567.9902817-.9825 1.7426.10566032.3470367.0150922.7240796-.23666629.985262-.25175848.2611825-.62522009.3655392-.9759038.2726977-.3506837-.0928415-.62358626-.3683195-.71312991-.7198597-.50468593-1.815475.55497633-3.6969782 2.3691-4.2065l.1377-.0386c1.81535016-.5036775 3.69623437.5553314 4.207 2.3687l12.208 43.6894c.2094014.7485105.1128149 1.5495525-.2685031 2.2268365-.381318.6772839-1.0161182 1.1753058-1.7646969 1.3844635l-1.0693.2989c-.2578315.0721343-.5242682.1089039-.792.1093z\",\"key\":3}),React.createElement(\"path\",{\"id\":\"Shape\",\"d\":\"m14.166 44.2441c-.0605828.0000403-.1210397-.0055166-.1806-.0166-.3759553-.0688112-.6796786-.3461339-.7823-.7143l-8.18-29.27c-.08284248-.2966212-.02449022-.614866.1582-.8628 6.2012-8.4072 14.9463-7.5347 23.4043-6.689 7.9366.7954 15.4327 1.5425 20.9053-5.0054.4028894-.63382158 1.1959029-.89698941 1.8978-.6298.249.1079 1.0508.5722.872 2.0126-.7623159 6.18130331-1.9437366 12.3036693-3.5361 18.3248 3.0998951 2.8439162 6.5841877 5.237941 10.3506 7.1118.4232899.1992905.726435.5881733.8164 1.0473.1707533.9506993-.0781613 1.9287813-.6826 2.6822l-.0029.0039c-6.1534 7.3589-14.53 6.5234-22.64 5.7129-8.2637-.8252-16.07-1.607-21.5957 5.8862-.1883675.2555125-.4869587.4062929-.8044.4062zm-7.083-30.062 7.527 26.9351c6.0947-6.7608 14.2519-5.9463 22.1552-5.1558 7.9336.7935 15.4307 1.542 20.9043-5.0039.1637292-.2242914.2617894-.4897328.2832-.7666-3.8403085-1.9552616-7.3981938-4.4214973-10.5767-7.3315-.5562771-.4965314-.7823066-1.2658845-.583-1.9844 1.472317-5.5570772 2.5852862-11.20319096 3.332-16.9033-6.0586 6.2759-14.0225 5.479-21.7373 4.71-8.125-.8117-15.7977-1.5792-21.3047 5.5004zm51.166 16.1446.02.0092z\",\"key\":4})])])])));\n}\n\nStart.defaultProps = {\"height\":\"16\",\"viewBox\":\"0 0 60 60\",\"width\":\"16\"};\n\nmodule.exports = Start;\n\nStart.default = Start;\n"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","MapboxLanguage","options","assign","this","setLanguage","bind","_initialStyleUpdate","_defaultLanguage","defaultLanguage","_isLanguageField","languageField","_getLanguageField","getLanguageField","language","_languageSource","languageSource","_languageTransform","languageTransform","_excludedLayerIds","excludedLayerIds","supportedLanguages","isTokenField","isFlatExpressionField","isLangField","property","isGetExpression","Array","isArray","test","console","warn","adaptNestedExpressionField","languageFieldName","i","length","adaptPropertyLanguage","defaultProp","slice","prototype","style","indexOf","streetsSource","sources","filter","sourceName","url","findStreetsSource","field","changedLayers","layers","layer","source","layout","changeLayerTextProperty","languageStyle","_map","getStyle","navigator","languages","userLanguage","parts","split","languageCode","browserLanguage","setStyle","onAdd","on","_container","document","createElement","onRemove","off","undefined","window","polyline","py2_round","value","Math","floor","abs","encode","current","previous","factor","coordinate","output","String","fromCharCode","flipped","coords","coord","push","decode","str","precision","latitude_change","index","lat","lng","coordinates","shift","result","byte","pow","Number","isInteger","charCodeAt","a","b","fromGeoJSON","geojson","type","geometry","toGeoJSON","exportName","VENDOR_PREFIXES","TEST_ELEMENT","round","now","Date","setTimeoutContext","fn","timeout","context","setTimeout","bindFn","invokeArrayArg","arg","each","obj","iterator","forEach","call","hasOwnProperty","deprecate","method","name","message","deprecationMessage","stack","replace","log","apply","arguments","target","TypeError","nextKey","extend","dest","src","merge","inherit","child","base","properties","childP","baseP","create","constructor","_super","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","addEventListener","removeEventListeners","removeEventListener","hasParent","node","parent","parentNode","inStr","find","trim","inArray","findByKey","toArray","uniqueArray","key","sort","results","values","prefixed","prefix","prop","camelProp","toUpperCase","_uniqueId","getWindowForElement","element","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","DIRECTION_VERTICAL","DIRECTION_UP","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","inputTarget","domHandler","ev","enable","init","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","offset","offsetDelta","prevDelta","prevInput","x","deltaX","y","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","scale","start","end","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","direction","last","lastInterval","v","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","clientX","clientY","p1","p2","props","sqrt","atan2","PI","evEl","evTarget","evWin","destroy","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","toLowerCase","isTouch","storeIndex","pointerId","splice","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","all","touches","changed","changedTouches","concat","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","set","compute","actions","update","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","join","preventDefaults","prevented","preventDefault","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","preventSrc","STATE_FAILED","Recognizer","defaults","state","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","get","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","isValid","threshold","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","time","validPointers","validMovement","validTime","clearTimeout","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","toggleCssProps","item","add","stop","force","stopped","curRecognizer","existing","remove","events","data","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","initQueue","va","_len","params","_key","vaq","isBrowser","getMode","mode","Analytics","_ref","beforeSend","debug","useEffect","_a","head","querySelector","script","defer","setAttribute","appendChild","inject","__assign","s","n","p","sin$1","sin","cos$1","cos","sqrt$1","abs$1","PI$1","ee","isInChinaBbox","lon","delta","ret","dLon","dLat","transformLat","radLat","magic","sqrtMagic","WGS84ToGCJ02","d","GCJ02ToWGS84","wgsLon","wgsLat","tempPoint","baiduFactor","BD09ToGCJ02","z","theta","GCJ02ToBD09","R2D","D2R","A","MAXEXTENT","ESPG3857ToWGS84","xy","atan","exp","WGS84ToEPSG3857","lonLat","adjusted","tan","_b","_c","_d","_e","CRSTypes","MCBAND","LLBAND","MC2LL","LL2MC","transform$1","factors","cc","xt","yt","BD09toBD09MC","BD09MCtoBD09","condition","msg","toString","isNumber","isNaN","compose","funcs","_i","coordEach","excludeWrapCoord","j","k","l","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","features","featureIndex","geometries","geomIndex","multiFeatureIndex","geometryIndex","geomType","crsMap","WGS84","to","GCJ02","BD09","BD09MC","EPSG3857","transform","crsFrom","crsTo","from","JSON","parse","isPosition","convert","_extends","_defineProperty","defineProperty","enumerable","configurable","writable","_slicedToArray","arr","Symbol","_s","_arr","_n","next","done","err","unsupportedIterableToArray","EPSILON","ARRAY_TYPE","Float32Array","random","hypot","out","vec","transformVector","matrix","vector","m","w","transformMat4","mod","divisor","modulus","step","clamp","min","max","log2","LOG2E","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","a30","a31","a32","a33","b0","b1","b2","b3","translate","perspective","fovy","aspect","near","far","nf","f","Infinity","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a14","a15","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","ax","ay","PI_4","DEGREES_TO_RADIANS","RADIANS_TO_DEGREES","TILE_SIZE","MAX_LATITUDE","DEFAULT_ALTITUDE","zoomToScale","zoom","scaleToZoom","lngLatToWorld","lngLat","isFinite","phi2","worldToLngLat","lambda2","getDistanceScales","latitude","longitude","highPrecision","latCosine","unitsPerDegreeX","unitsPerDegreeY","altUnitsPerMeter","worldSize","unitsPerMeter","metersPerUnit","unitsPerDegree","degreesPerUnit","latCosine2","unitsPerDegreeY2","altUnitsPerDegree2","altUnitsPerMeter2","unitsPerDegree2","unitsPerMeter2","getViewMatrix","height","pitch","bearing","altitude","vm","rad","c","relativeScale","getProjectionMatrix","fov","width","nearZMultiplier","farZMultiplier","altitudeToFovy","fovRadians","pitchRadians","focalDistance","fovyToAltitude","cameraToSeaLevelDistance","fovAboveCenter","topHalfSurfaceDistance","furthestDistance","horizonDistance","getProjectionParameters","worldToPixels","xyz","pixelProjectionMatrix","pixelsToWorld","pixelUnprojectionMatrix","targetZ","coord0","coord1","z0","z1","fitBounds","bounds","minExtent","maxZoom","west","south","east","north","padding","top","bottom","left","right","getPaddingObject","nw","se","size","targetSize","scaleX","scaleY","offsetX","offsetY","centerLngLat","unprojectOnFarPlane","viewport","distanceScales","WebMercatorViewport","_this","projectionMatrix","viewMatrix","lngLatZ","topLeft","worldPosition","projectPosition","y2","targetZWorld","X","Y","Z","unprojectPosition","position","meterOffset","_initMatrices","freeze","vpm","viewProjectionMatrix","mInverse","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","det","projectFlat","unprojectFlat","getMapCenterByLngLatPosition","pos","fromLocation","getBounds","corners","getBoundingRegion","unproject","unprojectOps","bottomLeft","bottomRight","topRight","halfFov","angleToGround","getLocationAtPoint","_ref2","VIEWPORT_TRANSITION_PROPS","DEFAULT_OPTS","curve","speed","getFlyToTransitionParams","startProps","endProps","opts","rho","startZoom","startCenter","startScale","endZoom","endCenter","startCenterXY","endCenterXY","uDelta","w0","w1","u1","_u1","rho2","r0","r1","S","MapShim","Map","getIndex","some","entry","class_1","__entries__","delete","entries","has","clear","ctx","global$1","g","Function","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","observe","attributes","childList","characterData","subtree","disconnect","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","reduce","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","document_","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","allowArrayLike","it","minLen","_arrayLikeToArray","_unsupportedIterableToArray","F","normalCompletion","didErr","_e2","len","arr2","refProps","normalizeStyle","toJS","_step","layerIndex","_iterator","layerRef","ref","normalizedLayer","interactive","_step2","_iterator2","propName","propTypes","container","gl","mapboxApiAccessToken","mapboxApiUrl","attributionControl","preserveDrawingBuffer","reuseMaps","transformRequest","mapOptions","mapStyle","preventStyleDiffing","visible","asyncRender","onLoad","onError","viewState","defaultProps","accessToken","location","match","search","MapboxAccessToken","REACT_APP_MAPBOX_ACCESS_TOKEN","getAccessToken","error","checkPropTypes","component","Mapbox","mapboxgl","initialized","_checkStyleSheet","version","_initialize","_destroy","_update","_frame","cancel","_render","savedMap","oldContainer","getContainer","newContainer","classList","childNodes","diff","isStyleLoaded","_fireLoadEvent","once","_reuse","getContext","HTMLCanvasElement","trackResize","_handleError","_this2","baseApiUrl","_create","canvas","getCanvas","outline","_updateMapViewport","_updateMapSize","oldProps","newProps","viewportChanged","sizeChanged","_updateMapStyle","redraw","resize","oldViewState","_getViewState","newViewState","jumpTo","_viewStateToMapboxProps","_ref$pitch","_ref$bearing","_ref$altitude","mapboxVersion","testElement","className","display","isCssLoaded","link","ArrayBuffer","isView","ai","MAPBOX_LIMITS","minZoom","minPitch","maxPitch","DEFAULT_STATE","MapState","_ref$maxZoom","_ref$minZoom","_ref$maxPitch","_ref$minPitch","transitionDuration","transitionEasing","transitionInterpolator","transitionInterruption","startPanLngLat","startZoomLngLat","startRotatePos","startBearing","startPitch","_viewportProps","_applyConstraints","_state","_getUpdatedMapState","_unproject","_ref3","startPos","_this$_calculateNewLn2","_calculateNewLngLat","_ref4","_ref5","newRotation","_ref5$deltaAngleX","deltaAngleX","_ref5$deltaAngleY","deltaAngleY","_this$_state","_calculateNewPitchAndBearing","_getRotationParams","_ref6","_ref7","_this$_state2","_calculateNewZoom","_zoomedViewport$getMa2","halfHeightPixels","minLatitude","maxLatitude","normalizeViewportProps","_ref8","_ref9","_this$_viewportProps","_ref10","deltaScaleX","deltaScaleY","_this$_viewportProps2","centerY","startY","_this$_viewportProps3","decapitalize","MapContext","createContext","onViewportChange","onViewStateChange","eventManager","MapContextProvider","Provider","children","_useState2","useState","setMap","useContext","useLayoutEffect","NO_TOKEN_WARNING","getViewport","CONTAINER_STYLE","overflow","disableTokenWarning","onResize","visibilityConstraints","NoTokenWarning","href","StaticMap","forwardRef","accessTokenValid","setTokenState","_useState4","setSize","mapboxRef","useRef","mapDivRef","containerRef","overlayRef","supported","mapbox","evt","status","getMap","resizeObserver","_entries$0$contentRec","_width","_height","finalize","setProps","useImperativeHandle","queryRenderedFeatures","getRefHandles","preventScroll","useCallback","scrollTo","overlays","onScroll","mapContainerStyle","constraints","constraintName","checkVisibilityConstraints","visibility","TransitionInterpolator","currentProps","nextProps","propNames","_assertThisInitialized","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","_typeof","_possibleConstructorReturn","_getPrototypeOf","getPrototypeOf","__proto__","WRAPPED_ANGULAR_PROPS","getEndValueByShortestPath","startValue","endValue","isWrappedAngularProp","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","Super","NewTarget","REQUIRED_PROPS","LINEARLY_INTERPOLATED_PROPS","_TransitionInterpolat","ViewportFlyToInterpolator","startViewportProps","endViewportProps","_startValue","_endValue","_step3","cosh","u","tanh","sinh","newZoom","newCenterWorld","newCenter","flyToViewport","_iterator3","screenSpeed","maxDuration","duration","getFlyToDuration","LinearInterpolator","transitionProps","around","aroundLngLat","project","_WebMercatorViewport$2","TRANSITION_EVENTS","DEFAULT_PROPS","onTransitionStart","onTransitionInterrupt","onTransitionEnd","TransitionManager","_animationFrame","_onTransitionFrame","_updateViewport","onStateChange","getTime","propsInTransition","_shouldIgnoreViewportChange","_isTransitionEnabled","_isTransitionInProgress","interruption","currentTime","x0","startTime","easing","y0","cropEasingFunction","_triggerTransition","_endTransition","Boolean","interpolator","arePropsEqual","_isUpdateDueToCurrentTransition","cancelAnimationFrame","getDuration","initialProps","initializeProps","interactionState","inTransition","isZooming","isPanning","isRotating","animation","_this$state","shouldEnd","interpolateProps","mapState","getViewportProps","oldHandler","array","predict","enhancePointerEventInput","hammer","RECOGNIZERS","RECOGNIZER_COMPATIBLE_MAP","tripan","rotate","pinch","pan","doubletap","anytap","RECOGNIZER_FALLBACK_MAP","BASIC_EVENT_ALIASES","INPUT_EVENT_TYPES","KEY_EVENTS","MOUSE_EVENTS","WHEEL_EVENTS","EVENT_RECOGNIZER_MAP","tap","press","pinchin","pinchout","pinchstart","pinchmove","pinchend","pinchcancel","rotatestart","rotatemove","rotateend","rotatecancel","tripanstart","tripanmove","tripanup","tripandown","tripanleft","tripanright","tripanend","tripancancel","panstart","panmove","panup","pandown","panleft","panright","panend","pancancel","swipe","swipeleft","swiperight","swipeup","swipedown","GESTURE_EVENT_ALIASES","click","anyclick","dblclick","mouseover","mouseout","mouseleave","passiveSupported","passive","firefox","EVENT_TYPE","WHEEL_DELTA_MAGIC_SCALER","WheelInput","super","handleEvent","deltaMode","shiftKey","enableEventType","enabled","MOVE_EVENT_TYPE","OVER_EVENT_TYPE","OUT_EVENT_TYPE","ENTER_EVENT_TYPE","LEAVE_EVENT_TYPE","MoveInput","handleOverEvent","handleOutEvent","handleEnterEvent","handleLeaveEvent","handleMoveEvent","enableMoveEvent","enableLeaveEvent","enableEnterEvent","enableOutEvent","enableOverEvent","_emit","DOWN_EVENT_TYPE","UP_EVENT_TYPE","KeyInput","targetElement","srcElement","tagName","enableDownEvent","enableUpEvent","tabIndex","ContextmenuInput","whichButtons","buttons","leftButton","middleButton","rightButton","getOffsetPosition","rootElement","getBoundingClientRect","offsetWidth","offsetHeight","clientLeft","clientTop","DEFAULT_OPTIONS","priority","EventRegistrar","isEmpty","mjolnirEvent","_normalizeEvent","handled","handlersByElement","_active","insertPosition","immediatePropagationStopped","stopPropagation","stopImmediatePropagation","entriesToRemove","getElement","recognizerOptions","EventManager","_onBasicInput","alias","_onOtherEvent","setElement","ManagerClass","otherName","recognizerName","recognizerOption","wheelInput","moveInput","keyInput","contextmenuInput","eventAlias","eventRegistrar","_toggleRecognizer","_addEventHandler","watch","_removeEventHandler","fallbackRecognizers","eventName","isRecognizerUsed","eh","NO_TRANSITION_PROPS","LINEAR_TRANSITION_PROPS","DEFAULT_INERTIA","INERTIA_EASING","EVENT_TYPES","MapController","isDragging","newState","_interactionState","newViewport","oldViewport","_transitionManager","_onTransition","_setInteractionState","getMapState","eventStartBlocked","_eventStartBlocked","_onPanStart","_onPan","_onPanEnd","_onPinchStart","_onPinch","_onPinchEnd","_onTriplePanStart","_onTriplePan","_onTriplePanEnd","_onDoubleTap","_onWheel","_onKeyDown","_event$offsetCenter","metaKey","altKey","ctrlKey","timer","newMapState","extraProps","viewStateChanged","getState","overrides","mapStateProps","_options$eventManager","_options$isInteractiv","isInteractive","_options$scrollZoom","scrollZoom","_options$dragPan","dragPan","_options$dragRotate","dragRotate","_options$doubleClickZ","doubleClickZoom","_options$touchZoom","touchZoom","_options$touchRotate","touchRotate","_options$keyboard","keyboard","prevOptions","dimensionChanged","updateViewport","processViewportChange","_events","toggleEvents","eventNames","_this3","_panRotate","isFunctionKeyPressed","rotateStart","panStart","_onPanRotate","_onPanMove","_onPanRotateEnd","_onPanMoveEnd","_this$dragPan$inertia","inertia","endPos","newControllerState","panEnd","_this$dragRotate$iner","rotateEnd","_this$scrollZoom","_this$scrollZoom$spee","_this$scrollZoom$smoo","smooth","zoomStart","_startPinchRotation","_lastPinchEvent","_this$touchZoom$inert","_newMapState","velocityZ","endScale","zoomEnd","blockEvents","startPinchRotation","_this$touchRotate$ine","_newMapState2","isZoomOut","funcKey","_this$keyboard","_this$keyboard$zoomSp","zoomSpeed","_this$keyboard$moveSp","moveSpeed","_this$keyboard$rotate","rotateSpeedX","_this$keyboard$rotate2","rotateSpeedY","keyCode","onInteractionStateChange","onHover","onClick","onDblClick","onContextMenu","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","onMouseEnter","onMouseLeave","onMouseOut","onWheel","eventRecognizerOptions","clickRadius","interactiveLayerIds","getCursor","onNativeClick","isHovering","normalizeEvent","point","getFeatures","queryParams","_unused","onEvent","callbackName","func","onPointerDown","onPointerUp","onPointerMove","_this$props","isEntering","isExiting","setState","onPointerClick","_this$props2","callbacks","isDoubleClickEnabled","cb","InteractiveMap","parentContext","useMemo","eventCanvasRef","staticMapRef","thisRef","cursor","viewportUpdateRequested","stateUpdateRequested","inRender","handleViewportChange","_thisRef$props","handleInteractionStateChange","_interactionState$isD","updateControllerOpts","setOptions","pointerleave","wheel","contextmenu","eventCanvasStyle","_child","deepEqual","aKeys","bKeys","_aKeys","sourceCounter","createSource","_loaded","addSource","getSource","propsRef","setStyleLoaded","forceUpdate","removeSource","prevProps","changedKey","changedKeyCount","setData","updateImage","setUrl","setTiles","tiles","setCoordinates","updateSource","cloneElement","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","isRequired","beforeId","updateLayer","_props$layout","_props$paint","paint","minzoom","maxzoom","otherProps","moveLayer","prevLayout","setLayoutProperty","prevPaint","_key2","setPaintProperty","_key3","_key4","setFilter","setLayerZoomRange","setLayerProperty","diffLayerStyles","layerCounter","Layer","removeLayer","getLayer","addLayer","createLayer","mapControlDefaultProps","captureScroll","captureDrag","captureClick","captureDoubleClick","capturePointerMove","mapControlPropTypes","onMount","onDragStart","onDoubleClick","useMapControl","_thisRef","Control","_useMapControl","_context","_containerRef","BaseControl","_PureComponent","createRef","_onScroll","_onDragStart","_onDblClick","_onClick","_onPointerMove","PureComponent","draggable","onDrag","onDragEnd","offsetLeft","offsetTop","draggableControlDefaultProps","getDragEventPosition","getDragLngLat","dragPos","dragOffset","_event$center","getDragEventOffset","setDragPos","setDragOffset","callbackEvent","registerEvents","pixelRatio","devicePixelRatio","crispPixel","crispPercentage","el","percentage","dimension","origSize","Marker","useDraggableControl","_getPosition","_context$viewport$pro2","getPosition","_getPosition2","control","containerStyle","ANCHOR_POSITION","ANCHOR_TYPES","tipSize","anchor","dynamicPosition","sortByDepth","closeButton","closeOnClick","onClose","selfWidth","selfHeight","_ref$padding","_ANCHOR_POSITION$anch","anchorX","anchorY","cutoffY","bestAnchorY","minCutoff","xStep","cutoffX","bestAnchorX","_minCutoff","positionType","anchorPosition","getDynamicPosition","Popup","contentRef","setLoaded","clickCallback","xPercentage","yPercentage","zIndex","getContainerStyle","onClickCloseButton","borderWidth","toggleLabel","AttributionControl","innerContainerRef","showCompact","setShowCompact","attributionContainer","_innerContainer","_updateAttributions","_updateEditLink","_updateData","setupAttributioncontrol","customAttribution","removeAttributionControl","compact","toggleAttribution","title","role","label","FullscreenControl","isFullscreen","setIsFullscreen","showButton","setShowButton","_useState6","mapboxFullscreenControl","createMapboxFullscreenControl","_checkFullscreenSupport","onFullscreenChange","nextState","_fullscreen","_fullscreenchange","_onClickFullscreen","disabledLabel","auto","positionOptions","enableHighAccuracy","fitBoundsOptions","trackUserLocation","showUserLocation","showUserHeading","showAccuracyCircle","onGeolocate","updateCamera","radius","accuracy","toBounds","_ne","_sw","_context$viewport$fit","GeolocateControl","geolocateButtonRef","mapboxGeolocateControl","createMapboxGeolocateControl","supportsGeolocation","setSupportsGeolocation","permissions","query","geolocation","geolocateButton","_getUIString","_setupUI","_geolocateButton","_watchState","setupMapboxGeolocateControl","_updateCamera","_clearWatch","triggerGeolocate","trigger","_onZoom","disabled","showCompass","showZoom","zoomInLabel","zoomOutLabel","compassLabel","getUIVersion","version1","version2","v1","v2","part1","part2","compareVersions","renderButton","NavigationControl","uiVersion","renderCompass","maxWidth","unit","ScaleControl","mapboxScaleControl","createMapboxScaleControl","_onMove","CanvasOverlay","setDrawingContext","save","restore","HTMLOverlay","SVGOverlay","chinaGeojson","cp","childNum","MUNICIPALITY_CITIES_ARR","INFO_MESSAGE","yearLength","year","RUN_TITLES","FULL_MARATHON_RUN_TITLE","HALF_MARATHON_RUN_TITLE","MORNING_RUN_TITLE","MIDDAY_RUN_TITLE","AFTERNOON_RUN_TITLE","EVENING_RUN_TITLE","NIGHT_RUN_TITLE","MAIN_COLOR","formatPace","pace","minutes","toFixed","padStart","convertMovingTime2Sec","moving_time","splits","days","parseInt","hours","seconds","scrollToMap","scroll","scrollX","scrollY","pattern","cities","province","city","locationForRun","run","location_country","country","cityMatch","locations","exec","extractLocations","provinceMatch","includes","countryMatch","geoJsonForRuns","runs","points","mapboxPolyline","summary_polyline","pathForRun","titleForRun","runDistance","runHour","start_date_local","applyToArray","filterYearRuns","filterCityRuns","filterTitleRuns","filterAndSortRuns","activities","filterFunc","sortFunc","sortDateFunc","sortDateFuncReverse","divStyle","fontWeight","description","citySize","allActivitiesJson","useStaticQuery","nodes","runPeriod","provinces","Set","countries","years","thisYear","periodName","reverse","hovered","setHovered","setTimer","onMouseOver","useActivities","eventHandlers","useHover","YearSVG","React","catch","default","sumDistance","streak","heartRate","heartRateNullCount","totalMetersAvail","totalSecondsAvail","average_speed","paceNullCount","average_heartrate","avgPace","hasHeartRate","avgHeartRate","fallback","color","citiesArr","periodArr","period","times","changeYear","changeCity","changeTitle","paddingBottom","lineHeight","startLon","startLat","endLon","endLat","mapButtonYear","elements","getElementsByClassName","yearsButtons","setIndex","elementIndex","handleClick","setViewport","geoData","mapRef","mapRefCallback","addControl","filterProvinces","unshift","isBigMap","isSingleRun","dash","locateActivity","runIndex","setRunIndex","paceParts","runTime","totalSeconds","formatRunTime","parentElement","setActivity","sortFuncInfo","setSortFuncInfo","sortFuncMap","aTotalSeconds","bTotalSeconds","cellSpacing","cellPadding","funcName","innerHTML","run_id","yearsArrayUpdate","siteTitle","useSiteMetadata","setYear","setTitle","setGeoData","pointsLong","pointsLat","cornersLongLat","getBoundsForGeoData","intervalId","setIntervalId","changeByItem","isChanged","clearInterval","date","titleForShow","runsNum","sliceNume","setInterval","tempRuns","rectArr","querySelectorAll","getAttribute","runDate","runName","runLocate","r","polylineArr","Layout","End","Start"],"sourceRoot":""} \ No newline at end of file diff --git a/index.html b/index.html index 31c3a73af7e..0067ed6af9b 100644 --- a/index.html +++ b/index.html @@ -2,4 +2,4 @@ /*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */button,input,optgroup,select,textarea{font-family:inherit}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=search]::-webkit-search-decoration{-webkit-appearance:none}details{display:block}.border-box,a,article,aside,blockquote,body,code,dd,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,nav,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.bb{border-bottom-style:solid;border-bottom-width:1px}.b--black-20{border-color:rgba(0,0,0,.2)}.b--initial{border-color:initial}.b--unset{border-color:unset}.br-inherit{border-radius:inherit}.br-initial{border-radius:initial}.br-unset{border-radius:unset}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,times,serif}.b{font-weight:700}.lh-solid{line-height:1}.lh-copy{line-height:1.5}.link{text-decoration:none}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:color .15s ease-in}.link:focus{outline:1px dotted currentColor}.w-third{width:33.33333%}.w-two-thirds{width:66.66667%}.rotate-45{-webkit-transform:rotate(45deg)}.rotate-90{-webkit-transform:rotate(90deg)}.rotate-135{-webkit-transform:rotate(135deg)}.rotate-180{-webkit-transform:rotate(180deg)}.rotate-225{-webkit-transform:rotate(225deg)}.rotate-270{-webkit-transform:rotate(270deg)}.rotate-315{-webkit-transform:rotate(315deg)}.black{color:#000}.near-black{color:#111}.dark-gray{color:#333}.gray{color:#777}.silver{color:#999}.bg-light-gray{background-color:#eee}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.pl4{padding-left:2rem}.mv4{margin-bottom:2rem;margin-top:2rem}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out,-webkit-transform .25s ease-out}.grow:focus,.grow:hover{-webkit-transform:scale(1.05)}.grow:active{-webkit-transform:scale(.9)}.grow-large{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out,-webkit-transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{-webkit-transform:scale(1.2)}.grow-large:active{-webkit-transform:scale(.95)}.nested-copy-indent p+p{text-indent:1em}.nested-copy-separator p+p{margin-top:1.5em}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAFElEQVR4AWPAC97/9x0eCsAEPgwAVLshdpENIxcAAAAASUVORK5CYII=) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVR4AWOgCLz/b0epAa6UGuBOqQHOQHLUgFEDnAbcBZ4UGwDOkiCnkIhdgNgNxAYAiYlD+8sEuo8AAAAASUVORK5CYII=) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/gif;base64,R0lGODdhCAAIAPEAAADw/wDx/////wAAACwAAAAACAAIAAACDZQvgaeb/lxbAIKA8y0AOw==) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/gif;base64,R0lGODdhEAAQAPEAAADw/wDx/xXy/////ywAAAAAEAAQAAACIZyPKckYDQFsb6ZqD85jZ2+BkwiRFKehhqQCQgDHcgwEBQA7) repeat 0 0}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-ns{border-radius:inherit}.br-initial-ns{border-radius:initial}.br-unset-ns{border-radius:unset}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.33333%}.w-two-thirds-ns{width:66.66667%}.w-auto-ns{width:auto}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-m{border-radius:inherit}.br-initial-m{border-radius:initial}.br-unset-m{border-radius:unset}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.33333%}.w-two-thirds-m{width:66.66667%}.w-auto-m{width:auto}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}.br-inherit-l{border-radius:inherit}.br-initial-l{border-radius:initial}.br-unset-l{border-radius:unset}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.33333%}.w-two-thirds-l{width:66.66667%}.w-auto-l{width:auto}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}} -/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em)and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}@media screen and (min-width:30em){.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}}@media screen and (min-width:30em)and (max-width:60em){.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}}@media screen and (min-width:60em){.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em)and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}@media screen and (min-width:30em){.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}}@media screen and (min-width:30em)and (max-width:60em){.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}}@media screen and (min-width:60em){.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb,hr{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em)and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.013)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20,hr{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.013)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em)and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em)and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em)and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em)and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em)and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em)and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em)and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em)and (max-width:60em){.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em)and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em)and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}.normal{font-weight:400}.b,b,strong{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em)and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em)and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em)and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}.lh-solid,h1,h2,h3,h4,h5{line-height:1}.lh-title{line-height:1.25}.lh-copy,ol,ol li,p,ul,ul li{line-height:1.5}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em)and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}}.link,ol li a,p a,ul li a{text-decoration:none}.link,.link:active,.link:hover,.link:link,.link:visited,ol li a,ol li a:active,ol li a:hover,ol li a:link,ol li a:visited,p a,p a:active,p a:hover,p a:link,p a:visited,ul li a,ul li a:active,ul li a:hover,ul li a:link,ul li a:visited{transition:color .15s ease-in}.link:focus,ol li a:focus,p a:focus,ul li a:focus{outline:1px dotted currentColor;transition:color .15s ease-in}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em)and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.3333333333%}.w-two-thirds{width:66.6666666667%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.3333333333%}.w-two-thirds-ns{width:66.6666666667%}.w-auto-ns{width:auto}}@media screen and (min-width:30em)and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.3333333333%}.w-two-thirds-m{width:66.6666666667%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.3333333333%}.w-two-thirds-l{width:66.6666666667%}.w-auto-l{width:auto}}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em)and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em)and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.rotate-45-ns{transform:rotate(45deg)}.rotate-90-ns{transform:rotate(90deg)}.rotate-135-ns{transform:rotate(135deg)}.rotate-180-ns{transform:rotate(180deg)}.rotate-225-ns{transform:rotate(225deg)}.rotate-270-ns{transform:rotate(270deg)}.rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em)and (max-width:60em){.rotate-45-m{transform:rotate(45deg)}.rotate-90-m{transform:rotate(90deg)}.rotate-135-m{transform:rotate(135deg)}.rotate-180-m{transform:rotate(180deg)}.rotate-225-m{transform:rotate(225deg)}.rotate-270-m{transform:rotate(270deg)}.rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.rotate-45-l{transform:rotate(45deg)}.rotate-90-l{transform:rotate(90deg)}.rotate-135-l{transform:rotate(135deg)}.rotate-180-l{transform:rotate(180deg)}.rotate-225-l{transform:rotate(225deg)}.rotate-270-l{transform:rotate(270deg)}.rotate-315-l{transform:rotate(315deg)}}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black,b,strong{color:#000}.near-black,h1,h2,h3,h4,h5{color:#111}.dark-gray,nav a,ol,p,ul{color:#333}.mid-gray{color:#555}.gray,time{color:#777}.silver,nav a.active{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray,.markdown-content .grvsc-container{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4,ol,ul{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-bottom:0;padding-top:0}.pv1{padding-bottom:.25rem;padding-top:.25rem}.pv2{padding-bottom:.5rem;padding-top:.5rem}.pv3{padding-bottom:1rem;padding-top:1rem}.pv4{padding-bottom:2rem;padding-top:2rem}.pv5{padding-bottom:4rem;padding-top:4rem}.pv6{padding-bottom:8rem;padding-top:8rem}.pv7{padding-bottom:16rem;padding-top:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-bottom:0;margin-top:0}.mv1{margin-bottom:.25rem;margin-top:.25rem}.mv2{margin-bottom:.5rem;margin-top:.5rem}.mv3{margin-bottom:1rem;margin-top:1rem}.mv4,hr{margin-bottom:2rem;margin-top:2rem}.mv5{margin-bottom:4rem;margin-top:4rem}.mv6{margin-bottom:8rem;margin-top:8rem}.mv7{margin-bottom:16rem;margin-top:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em)and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}@media screen and (min-width:30em){.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em)and (max-width:60em){.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em)and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}}@media screen and (min-width:30em)and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em)and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}@media screen and (min-width:30em){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}}@media screen and (min-width:30em)and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps{font-variant:small-caps}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em)and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}@media screen and (min-width:30em){.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em)and (max-width:60em){.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}}.clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}@media screen and (min-width:30em){.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:30em)and (max-width:60em){.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:60em){.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em)and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em)and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover,ol li a:focus,ol li a:hover,p a:focus,p a:hover,ul li a:focus,ul li a:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.grow:focus,.grow:hover{transform:scale(1.05)}.grow:active{transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{transform:scale(1.2)}.grow-large:active{transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{display:block;max-width:100%;width:100%}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.theme-blue-washed-red{background-color:#357edd;color:#ffdfdf;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red b,.theme-blue-washed-red h1,.theme-blue-washed-red h2,.theme-blue-washed-red h3,.theme-blue-washed-red h4,.theme-blue-washed-red h5,.theme-blue-washed-red strong{color:#ffdfdf}.theme-blue-washed-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red nav a{color:#ffdfdf}.theme-blue-washed-red nav a.active{color:#fff9f9}.theme-blue-washed-red p{color:#ffdfdf}.theme-blue-washed-red p a{color:#ffdfdf;font-weight:700;text-decoration:underline}.theme-blue-washed-red a.post-colophon-link,.theme-blue-washed-red a.post-colophon-link:visited{color:hsla(0,100%,94%,.3)!important}.theme-blue-washed-red hr{border-color:hsla(0,100%,94%,.1)!important;width:90%}.theme-blue-washed-red ol,.theme-blue-washed-red ul{color:#ffdfdf}.theme-blue-washed-red time{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content blockquote{border-color:#ffdfdf!important}.theme-blue-washed-red .markdown-content table:not(.highlight){background-color:#488adf}.theme-blue-washed-red .markdown-content table:not(.highlight) tr{border-color:#e7caca}.theme-blue-washed-red .markdown-content p>code{background-color:hsla(0,100%,94%,.2)!important;color:#ffdfdf!important}.theme-blue-washed-red .markdown-content a.footnote-backref{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-blue-washed-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-green-red{background-color:#e8fdf5;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red b,.theme-washed-green-red h1,.theme-washed-green-red h2,.theme-washed-green-red h3,.theme-washed-green-red h4,.theme-washed-green-red h5,.theme-washed-green-red strong{color:#ff4136}.theme-washed-green-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red nav a{color:#ff4136}.theme-washed-green-red nav a.active{color:#ff5950}.theme-washed-green-red p{color:#ff4136}.theme-washed-green-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-green-red a.post-colophon-link,.theme-washed-green-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-green-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-green-red ol,.theme-washed-green-red ul{color:#ff4136}.theme-washed-green-red time{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-green-red .markdown-content table:not(.highlight){background-color:#e9fcf5}.theme-washed-green-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-green-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-green-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-green-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-blue-red{background-color:#f6fffe;color:#ff4136;font-family:helvetica neue,helvetica,sans-serif}.theme-washed-blue-red b,.theme-washed-blue-red h1,.theme-washed-blue-red h2,.theme-washed-blue-red h3,.theme-washed-blue-red h4,.theme-washed-blue-red h5,.theme-washed-blue-red strong{color:#ff4136}.theme-washed-blue-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-blue-red nav a{color:#ff4136}.theme-washed-blue-red nav a.active{color:#ff5950}.theme-washed-blue-red p{color:#ff4136}.theme-washed-blue-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-blue-red a.post-colophon-link,.theme-washed-blue-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-blue-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-blue-red ol,.theme-washed-blue-red ul{color:#ff4136}.theme-washed-blue-red time{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-blue-red .markdown-content table:not(.highlight){background-color:#f6fefd}.theme-washed-blue-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-blue-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-blue-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-blue-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-yellow-red{background-color:#fffceb;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red b,.theme-washed-yellow-red h1,.theme-washed-yellow-red h2,.theme-washed-yellow-red h3,.theme-washed-yellow-red h4,.theme-washed-yellow-red h5,.theme-washed-yellow-red strong{color:#ff4136}.theme-washed-yellow-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red nav a{color:#ff4136}.theme-washed-yellow-red nav a.active{color:#ff5950}.theme-washed-yellow-red p{color:#ff4136}.theme-washed-yellow-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-yellow-red a.post-colophon-link,.theme-washed-yellow-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-yellow-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-yellow-red ol,.theme-washed-yellow-red ul{color:#ff4136}.theme-washed-yellow-red time{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-yellow-red .markdown-content table:not(.highlight){background-color:#fefbec}.theme-washed-yellow-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-yellow-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-yellow-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-yellow-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-navy-light-red{background-color:#001b44;color:#ff725c;font-family:avenir next,avenir,sans-serif}.theme-navy-light-red b,.theme-navy-light-red h1,.theme-navy-light-red h2,.theme-navy-light-red h3,.theme-navy-light-red h4,.theme-navy-light-red h5,.theme-navy-light-red strong{color:#ff725c}.theme-navy-light-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-navy-light-red nav a{color:#ff725c}.theme-navy-light-red nav a.active{color:#ff8876}.theme-navy-light-red p{color:#ff725c}.theme-navy-light-red p a{color:#ff725c;font-weight:700;text-decoration:underline}.theme-navy-light-red a.post-colophon-link,.theme-navy-light-red a.post-colophon-link:visited{color:rgba(255,114,92,.3)!important}.theme-navy-light-red hr{border-color:rgba(255,114,92,.1)!important;width:90%}.theme-navy-light-red ol,.theme-navy-light-red ul{color:#ff725c}.theme-navy-light-red time{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content blockquote{border-color:#ff725c!important}.theme-navy-light-red .markdown-content table:not(.highlight){background-color:#183156}.theme-navy-light-red .markdown-content table:not(.highlight) tr{border-color:#e76855}.theme-navy-light-red .markdown-content p>code{background-color:rgba(255,114,92,.2)!important;color:#ff725c!important}.theme-navy-light-red .markdown-content a.footnote-backref{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-navy-light-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-gold{background-color:#111;color:#ffb700;font-family:avenir next,avenir,sans-serif}.theme-near-black-gold b,.theme-near-black-gold h1,.theme-near-black-gold h2,.theme-near-black-gold h3,.theme-near-black-gold h4,.theme-near-black-gold h5,.theme-near-black-gold strong{color:#ffb700}.theme-near-black-gold nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-gold nav a{color:#ffb700}.theme-near-black-gold nav a.active{color:#ffbe1a}.theme-near-black-gold p{color:#ffb700}.theme-near-black-gold p a{color:#ffb700;font-weight:700;text-decoration:underline}.theme-near-black-gold a.post-colophon-link,.theme-near-black-gold a.post-colophon-link:visited{color:rgba(255,183,0,.3)!important}.theme-near-black-gold hr{border-color:rgba(255,183,0,.1)!important;width:90%}.theme-near-black-gold ol,.theme-near-black-gold ul{color:#ffb700}.theme-near-black-gold time{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content blockquote{border-color:#ffb700!important}.theme-near-black-gold .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-gold .markdown-content table:not(.highlight) tr{border-color:#e7a602}.theme-near-black-gold .markdown-content p>code{background-color:rgba(255,183,0,.2)!important;color:#ffb700!important}.theme-near-black-gold .markdown-content a.footnote-backref{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-gold .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-light-yellow{background-color:#111;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow b,.theme-near-black-light-yellow h1,.theme-near-black-light-yellow h2,.theme-near-black-light-yellow h3,.theme-near-black-light-yellow h4,.theme-near-black-light-yellow h5,.theme-near-black-light-yellow strong{color:#fbf1a9}.theme-near-black-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow nav a{color:#fbf1a9}.theme-near-black-light-yellow nav a.active{color:#fcf5c1}.theme-near-black-light-yellow p{color:#fbf1a9}.theme-near-black-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-near-black-light-yellow a.post-colophon-link,.theme-near-black-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-near-black-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-near-black-light-yellow ol,.theme-near-black-light-yellow ul{color:#fbf1a9}.theme-near-black-light-yellow time{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-near-black-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-red-light-yellow{background-color:#ff4136;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow b,.theme-red-light-yellow h1,.theme-red-light-yellow h2,.theme-red-light-yellow h3,.theme-red-light-yellow h4,.theme-red-light-yellow h5,.theme-red-light-yellow strong{color:#fbf1a9}.theme-red-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow nav a{color:#fbf1a9}.theme-red-light-yellow nav a.active{color:#fcf5c1}.theme-red-light-yellow p{color:#fbf1a9}.theme-red-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-red-light-yellow a.post-colophon-link,.theme-red-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-red-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-red-light-yellow ol,.theme-red-light-yellow ul{color:#fbf1a9}.theme-red-light-yellow time{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-red-light-yellow .markdown-content table:not(.highlight){background-color:#fe5349}.theme-red-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-red-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-red-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-red-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-purple-light-gray{background-color:#5e2ca5;color:#eee;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray b,.theme-purple-light-gray h1,.theme-purple-light-gray h2,.theme-purple-light-gray h3,.theme-purple-light-gray h4,.theme-purple-light-gray h5,.theme-purple-light-gray strong{color:#eee}.theme-purple-light-gray nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray nav a{color:#eee}.theme-purple-light-gray nav a.active{color:#fbfbfb}.theme-purple-light-gray p{color:#eee}.theme-purple-light-gray p a{color:#eee;font-weight:700;text-decoration:underline}.theme-purple-light-gray a.post-colophon-link,.theme-purple-light-gray a.post-colophon-link:visited{color:hsla(0,0%,93%,.3)!important}.theme-purple-light-gray hr{border-color:hsla(0,0%,93%,.1)!important;width:90%}.theme-purple-light-gray ol,.theme-purple-light-gray ul{color:#eee}.theme-purple-light-gray time{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content blockquote{border-color:#eee!important}.theme-purple-light-gray .markdown-content table:not(.highlight){background-color:#6d40ad}.theme-purple-light-gray .markdown-content table:not(.highlight) tr{border-color:#d8d8d8}.theme-purple-light-gray .markdown-content p>code{background-color:hsla(0,0%,93%,.2)!important;color:#eee!important}.theme-purple-light-gray .markdown-content a.footnote-backref{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content .grvsc-container{font-size:.875rem!important}.theme-purple-light-gray .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-light-gray-purple{background-color:#eee;color:#5e2ca5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple b,.theme-light-gray-purple h1,.theme-light-gray-purple h2,.theme-light-gray-purple h3,.theme-light-gray-purple h4,.theme-light-gray-purple h5,.theme-light-gray-purple strong{color:#5e2ca5}.theme-light-gray-purple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple nav a{color:#5e2ca5}.theme-light-gray-purple nav a.active{color:#6931b9}.theme-light-gray-purple p{color:#5e2ca5}.theme-light-gray-purple p a{color:#5e2ca5;font-weight:700;text-decoration:underline}.theme-light-gray-purple a.post-colophon-link,.theme-light-gray-purple a.post-colophon-link:visited{color:rgba(94,44,165,.3)!important}.theme-light-gray-purple hr{border-color:rgba(94,44,165,.1)!important;width:90%}.theme-light-gray-purple ol,.theme-light-gray-purple ul{color:#5e2ca5}.theme-light-gray-purple time{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content blockquote{border-color:#5e2ca5!important}.theme-light-gray-purple .markdown-content table:not(.highlight){background-color:#efefef}.theme-light-gray-purple .markdown-content table:not(.highlight) tr{border-color:#562996}.theme-light-gray-purple .markdown-content p>code{background-color:rgba(94,44,165,.2)!important;color:#5e2ca5!important}.theme-light-gray-purple .markdown-content a.footnote-backref{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-light-gray-purple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-run{background-color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run,.theme-run b,.theme-run h1,.theme-run h2,.theme-run h3,.theme-run h4,.theme-run h5,.theme-run strong{color:#e0ed5e}.theme-run nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run nav a{color:#e0ed5e}.theme-run nav a.active{color:#e4f075}.theme-run p{color:#e0ed5e}.theme-run p a{color:#e0ed5e;font-weight:700;text-decoration:underline}.theme-run a.post-colophon-link,.theme-run a.post-colophon-link:visited{color:rgba(224,237,94,.3)!important}.theme-run hr{border-color:rgba(224,237,94,.1)!important;width:90%}.theme-run ol,.theme-run ul{color:#e0ed5e}.theme-run time{color:#e0ed5e;font-weight:700}.theme-run .markdown-content blockquote{border-color:#e0ed5e!important}.theme-run .markdown-content table:not(.highlight){background-color:#303030}.theme-run .markdown-content table:not(.highlight) tr{border-color:#cbd756}.theme-run .markdown-content p>code{background-color:rgba(224,237,94,.2)!important;color:#e0ed5e!important}.theme-run .markdown-content a.footnote-backref{color:#e0ed5e;font-weight:700}.theme-run .markdown-content .grvsc-container{font-size:.875rem!important}.theme-run .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-sign-in-with-apple{background-color:#f4f4f4;color:#000;font-family:San Francisco,helvetica neue,helvetica,sans-serif}.theme-sign-in-with-apple b,.theme-sign-in-with-apple h1,.theme-sign-in-with-apple h2,.theme-sign-in-with-apple h3,.theme-sign-in-with-apple h4,.theme-sign-in-with-apple h5,.theme-sign-in-with-apple strong{color:#000}.theme-sign-in-with-apple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-sign-in-with-apple nav a{color:#000}.theme-sign-in-with-apple nav a.active{color:#0d0d0d}.theme-sign-in-with-apple p{color:#000}.theme-sign-in-with-apple p a{color:#000;font-weight:700;text-decoration:underline}.theme-sign-in-with-apple a.post-colophon-link,.theme-sign-in-with-apple a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.theme-sign-in-with-apple hr{border-color:rgba(0,0,0,.1)!important;width:90%}.theme-sign-in-with-apple ol,.theme-sign-in-with-apple ul{color:#000}.theme-sign-in-with-apple time{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content blockquote{border-color:#000!important}.theme-sign-in-with-apple .markdown-content table:not(.highlight){background-color:#f4f4f4}.theme-sign-in-with-apple .markdown-content table:not(.highlight) tr{border-color:#020202}.theme-sign-in-with-apple .markdown-content p>code{background-color:rgba(0,0,0,.2)!important;color:#000!important}.theme-sign-in-with-apple .markdown-content a.footnote-backref{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-sign-in-with-apple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-checklist-manifesto{background-color:#fbf8de;color:#db572b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto b,.theme-checklist-manifesto h1,.theme-checklist-manifesto h2,.theme-checklist-manifesto h3,.theme-checklist-manifesto h4,.theme-checklist-manifesto h5,.theme-checklist-manifesto strong{color:#db572b}.theme-checklist-manifesto nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto nav a{color:#db572b}.theme-checklist-manifesto nav a.active{color:#df6841}.theme-checklist-manifesto p{color:#db572b}.theme-checklist-manifesto p a{color:#db572b;font-weight:700;text-decoration:underline}.theme-checklist-manifesto a.post-colophon-link,.theme-checklist-manifesto a.post-colophon-link:visited{color:rgba(219,87,43,.3)!important}.theme-checklist-manifesto hr{border-color:rgba(219,87,43,.1)!important;width:90%}.theme-checklist-manifesto ol,.theme-checklist-manifesto ul{color:#db572b}.theme-checklist-manifesto time{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content blockquote{border-color:#db572b!important}.theme-checklist-manifesto .markdown-content table:not(.highlight){background-color:#faf8e0}.theme-checklist-manifesto .markdown-content table:not(.highlight) tr{border-color:#c75028}.theme-checklist-manifesto .markdown-content p>code{background-color:rgba(219,87,43,.2)!important;color:#db572b!important}.theme-checklist-manifesto .markdown-content a.footnote-backref{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content .grvsc-container{font-size:.875rem!important}.theme-checklist-manifesto .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-enron{background-color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron,.theme-enron b,.theme-enron h1,.theme-enron h2,.theme-enron h3,.theme-enron h4,.theme-enron h5,.theme-enron strong{color:#9eebcf}.theme-enron nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron nav a{color:#9eebcf}.theme-enron nav a.active{color:#b3efd9}.theme-enron p{color:#9eebcf}.theme-enron p a{color:#9eebcf;font-weight:700;text-decoration:underline}.theme-enron a.post-colophon-link,.theme-enron a.post-colophon-link:visited{color:rgba(158,235,207,.3)!important}.theme-enron hr{border-color:rgba(158,235,207,.1)!important;width:90%}.theme-enron ol,.theme-enron ul{color:#9eebcf}.theme-enron time{color:#9eebcf;font-weight:700}.theme-enron .markdown-content blockquote{border-color:#9eebcf!important}.theme-enron .markdown-content table:not(.highlight){background-color:#282828}.theme-enron .markdown-content table:not(.highlight) tr{border-color:#90d5bc}.theme-enron .markdown-content p>code{background-color:rgba(158,235,207,.2)!important;color:#9eebcf!important}.theme-enron .markdown-content a.footnote-backref{color:#9eebcf;font-weight:700}.theme-enron .markdown-content .grvsc-container{font-size:.875rem!important}.theme-enron .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-boardgames{background-color:#daedf0;background:linear-gradient(240deg,#6c95c7,#daedf0 26%,#d4ebed 39%,#bbe1e0 63%,#f2eee1);color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames b,.theme-boardgames h1,.theme-boardgames h2,.theme-boardgames h3,.theme-boardgames h4,.theme-boardgames h5,.theme-boardgames strong{color:#111}.theme-boardgames nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames nav a{color:#111}.theme-boardgames nav a.active{color:#1e1e1e}.theme-boardgames p{color:#111}.theme-boardgames p a{color:#111;font-weight:700;text-decoration:underline}.theme-boardgames a.post-colophon-link,.theme-boardgames a.post-colophon-link:visited{color:hsla(0,0%,7%,.3)!important}.theme-boardgames hr{border-color:hsla(0,0%,7%,.1)!important;width:90%}.theme-boardgames ol,.theme-boardgames ul{color:#111}.theme-boardgames time{color:#111;font-weight:700}.theme-boardgames .markdown-content blockquote{border-color:#111!important}.theme-boardgames .markdown-content table:not(.highlight){background-color:#ddeef0}.theme-boardgames .markdown-content table:not(.highlight) tr{border-color:#111}.theme-boardgames .markdown-content p>code{background-color:hsla(0,0%,7%,.2)!important;color:#111!important}.theme-boardgames .markdown-content a.footnote-backref{color:#111;font-weight:700}.theme-boardgames .markdown-content .grvsc-container{font-size:.875rem!important}.theme-boardgames .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}img::selection{background:transparent}img::-moz-selection{background:transparent}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:400;text-rendering:optimizeLegibility}iframe{border:none}hr{border-top:none}a.post-colophon-link,a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.gist table tr:last-child{border-bottom:1px}h2 .header-link,h3 .header-link{margin-top:2rem}h5 .header-link{margin-top:-.14rem}.markdown-content .grvsc-container{font-size:.875rem!important}.markdown-content .grvsc-container::-webkit-scrollbar{display:none}.markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.markdown-content .gatsby-resp-image-wrapper{margin-top:1rem}.style-module--body--a1572{background-color:#1a1a1a;color:#e0ed5e}.style-module--body--a1572 a,.style-module--body--a1572 h1,.style-module--body--a1572 h3,.style-module--body--a1572 h4,.style-module--body--a1572 li,.style-module--body--a1572 p{color:#e0ed5e;text-decoration:none}.style-module--body--a1572 h1{font-size:3rem;font-weight:700}.style-module--yearSVG--347ec{border:0;height:65%;margin:1rem 0 0;padding:0;width:65%}.style-module--locationSVG--2adbd{border:0;height:100%;margin:1rem 0 0;padding:0;width:100%}.style-module--buttons--4da44{margin:0 auto;padding-right:70px}.style-module--button--1573e{color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1rem;margin-top:.1rem;padding:1.3rem .4rem;position:relative;text-align:center}.style-module--fullscreenButton--4aa1d{opacity:.3;padding:1.2rem;right:0;top:0}.style-module--runTitle--09504{bottom:0;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:29px;left:120px;position:absolute;width:710px}@media only screen and (max-width:700px){.style-module--runTable--84570 td:nth-child(4),.style-module--runTable--84570 th:nth-child(4){display:none}}.style-module--runTable--84570{font-variant:tabular-nums;margin:2rem 0 5rem;width:100%}.style-module--runTable--84570 thead{color:#ccc;text-align:right}.style-module--runTable--84570 thead th{padding:.5rem}.style-module--runRow--42c85 td{border:0;padding:.5rem;text-align:right}.style-module--runRow--42c85 td:first-child{text-align:left}.style-module--runRow--42c85:hover{background-color:#222}.style-module--tableContainer--b302a{overflow-x:scroll;width:100%}.style-module--runDate--b8f52{color:#ccc}.style-module--runSVG--e35c5{height:250%;margin:1rem 0 0;width:100%}Running Page

Running Page

我用 App 记录自己跑步 12 年了,下面列表展示的是 2023 的数据


2023 Journey
15 Runs
29.2 KM
6'41" Avg Pace
11 day Streak

2022 Journey
281 Runs
758.2 KM
6'07" Avg Pace
21 day Streak
158 Avg Heart Rate

2021 Journey
337 Runs
1244 KM
5'39" Avg Pace
130 day Streak
158 Avg Heart Rate

2020 Journey
359 Runs
1284 KM
5'37" Avg Pace
138 day Streak
156 Avg Heart Rate

2019 Journey
274 Runs
1,344.4 KM
5'20" Avg Pace
103 day Streak
159 Avg Heart Rate

2018 Journey
171 Runs
405.5 KM
5'32" Avg Pace
65 day Streak
156 Avg Heart Rate

2017 Journey
202 Runs
963.6 KM
4'59" Avg Pace
170 day Streak

2016 Journey
217 Runs
900.8 KM
5'27" Avg Pace
70 day Streak

2015 Journey
135 Runs
436.4 KM
5'35" Avg Pace
9 day Streak

2014 Journey
156 Runs
822.9 KM
5'29" Avg Pace
31 day Streak

2013 Journey
153 Runs
790.1 KM
4'52" Avg Pace
14 day Streak

2012 Journey
67 Runs
386.7 KM
5'43" Avg Pace
35 day Streak

Total Journey
2367 Runs
9,365.9 KM
5'28" Avg Pace
170 day Streak
158 Avg Heart Rate

KMPaceBPMTimeDate
清晨跑步2.056'33"13min2023-01-19 08:42:37
清晨跑步1.326'21"8min2023-01-18 08:16:39
清晨跑步1.046'34"6min2023-01-13 09:16:01
清晨跑步3.146'48"21min2023-01-12 08:08:18
清晨跑步2.056'28"13min2023-01-11 08:14:19
清晨跑步3.076'54"21min2023-01-10 08:47:55
傍晚跑步2.126'46"14min2023-01-09 21:00:02
清晨跑步1.256'49"8min2023-01-09 08:32:43
清晨跑步2.066'53"14min2023-01-08 10:08:06
傍晚跑步2.576'27"16min2023-01-07 20:02:16
清晨跑步2.316'47"15min2023-01-06 08:49:20
清晨跑步2.086'24"13min2023-01-05 09:05:36
清晨跑步1.566'53"10min2023-01-04 08:57:45
傍晚跑步1.566'56"10min2023-01-03 20:14:01
傍晚跑步1.036'26"6min2023-01-01 21:11:05
\ No newline at end of file +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}.debug *{outline:1px solid gold}.debug-white *{outline:1px solid #fff}.debug-black *{outline:1px solid #000}.debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.border-box,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}.aspect-ratio{height:0;position:relative}.aspect-ratio--16x9{padding-bottom:56.25%}.aspect-ratio--9x16{padding-bottom:177.77%}.aspect-ratio--4x3{padding-bottom:75%}.aspect-ratio--3x4{padding-bottom:133.33%}.aspect-ratio--6x4{padding-bottom:66.6%}.aspect-ratio--4x6{padding-bottom:150%}.aspect-ratio--8x5{padding-bottom:62.5%}.aspect-ratio--5x8{padding-bottom:160%}.aspect-ratio--7x5{padding-bottom:71.42%}.aspect-ratio--5x7{padding-bottom:140%}.aspect-ratio--1x1{padding-bottom:100%}.aspect-ratio--object{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}@media screen and (min-width:30em){.aspect-ratio-ns{height:0;position:relative}.aspect-ratio--16x9-ns{padding-bottom:56.25%}.aspect-ratio--9x16-ns{padding-bottom:177.77%}.aspect-ratio--4x3-ns{padding-bottom:75%}.aspect-ratio--3x4-ns{padding-bottom:133.33%}.aspect-ratio--6x4-ns{padding-bottom:66.6%}.aspect-ratio--4x6-ns{padding-bottom:150%}.aspect-ratio--8x5-ns{padding-bottom:62.5%}.aspect-ratio--5x8-ns{padding-bottom:160%}.aspect-ratio--7x5-ns{padding-bottom:71.42%}.aspect-ratio--5x7-ns{padding-bottom:140%}.aspect-ratio--1x1-ns{padding-bottom:100%}.aspect-ratio--object-ns{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:30em)and (max-width:60em){.aspect-ratio-m{height:0;position:relative}.aspect-ratio--16x9-m{padding-bottom:56.25%}.aspect-ratio--9x16-m{padding-bottom:177.77%}.aspect-ratio--4x3-m{padding-bottom:75%}.aspect-ratio--3x4-m{padding-bottom:133.33%}.aspect-ratio--6x4-m{padding-bottom:66.6%}.aspect-ratio--4x6-m{padding-bottom:150%}.aspect-ratio--8x5-m{padding-bottom:62.5%}.aspect-ratio--5x8-m{padding-bottom:160%}.aspect-ratio--7x5-m{padding-bottom:71.42%}.aspect-ratio--5x7-m{padding-bottom:140%}.aspect-ratio--1x1-m{padding-bottom:100%}.aspect-ratio--object-m{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}@media screen and (min-width:60em){.aspect-ratio-l{height:0;position:relative}.aspect-ratio--16x9-l{padding-bottom:56.25%}.aspect-ratio--9x16-l{padding-bottom:177.77%}.aspect-ratio--4x3-l{padding-bottom:75%}.aspect-ratio--3x4-l{padding-bottom:133.33%}.aspect-ratio--6x4-l{padding-bottom:66.6%}.aspect-ratio--4x6-l{padding-bottom:150%}.aspect-ratio--8x5-l{padding-bottom:62.5%}.aspect-ratio--5x8-l{padding-bottom:160%}.aspect-ratio--7x5-l{padding-bottom:71.42%}.aspect-ratio--5x7-l{padding-bottom:140%}.aspect-ratio--1x1-l{padding-bottom:100%}.aspect-ratio--object-l{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:100}}img{max-width:100%}.cover{background-size:cover!important}.contain{background-size:contain!important}@media screen and (min-width:30em){.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}}@media screen and (min-width:30em)and (max-width:60em){.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}}@media screen and (min-width:60em){.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}}.bg-center{background-position:50%}.bg-center,.bg-top{background-repeat:no-repeat}.bg-top{background-position:top}.bg-right{background-position:100%}.bg-bottom,.bg-right{background-repeat:no-repeat}.bg-bottom{background-position:bottom}.bg-left{background-position:0;background-repeat:no-repeat}@media screen and (min-width:30em){.bg-center-ns{background-position:50%}.bg-center-ns,.bg-top-ns{background-repeat:no-repeat}.bg-top-ns{background-position:top}.bg-right-ns{background-position:100%}.bg-bottom-ns,.bg-right-ns{background-repeat:no-repeat}.bg-bottom-ns{background-position:bottom}.bg-left-ns{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:30em)and (max-width:60em){.bg-center-m{background-position:50%}.bg-center-m,.bg-top-m{background-repeat:no-repeat}.bg-top-m{background-position:top}.bg-right-m{background-position:100%}.bg-bottom-m,.bg-right-m{background-repeat:no-repeat}.bg-bottom-m{background-position:bottom}.bg-left-m{background-position:0;background-repeat:no-repeat}}@media screen and (min-width:60em){.bg-center-l{background-position:50%}.bg-center-l,.bg-top-l{background-repeat:no-repeat}.bg-top-l{background-position:top}.bg-right-l{background-position:100%}.bg-bottom-l,.bg-right-l{background-repeat:no-repeat}.bg-bottom-l{background-position:bottom}.bg-left-l{background-position:0;background-repeat:no-repeat}}.outline{outline:1px solid}.outline-transparent{outline:1px solid transparent}.outline-0{outline:0}@media screen and (min-width:30em){.outline-ns{outline:1px solid}.outline-transparent-ns{outline:1px solid transparent}.outline-0-ns{outline:0}}@media screen and (min-width:30em)and (max-width:60em){.outline-m{outline:1px solid}.outline-transparent-m{outline:1px solid transparent}.outline-0-m{outline:0}}@media screen and (min-width:60em){.outline-l{outline:1px solid}.outline-transparent-l{outline:1px solid transparent}.outline-0-l{outline:0}}.ba{border-style:solid;border-width:1px}.bt{border-top-style:solid;border-top-width:1px}.br{border-right-style:solid;border-right-width:1px}.bb,hr{border-bottom-style:solid;border-bottom-width:1px}.bl{border-left-style:solid;border-left-width:1px}.bn{border-style:none;border-width:0}@media screen and (min-width:30em){.ba-ns{border-style:solid;border-width:1px}.bt-ns{border-top-style:solid;border-top-width:1px}.br-ns{border-right-style:solid;border-right-width:1px}.bb-ns{border-bottom-style:solid;border-bottom-width:1px}.bl-ns{border-left-style:solid;border-left-width:1px}.bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em)and (max-width:60em){.ba-m{border-style:solid;border-width:1px}.bt-m{border-top-style:solid;border-top-width:1px}.br-m{border-right-style:solid;border-right-width:1px}.bb-m{border-bottom-style:solid;border-bottom-width:1px}.bl-m{border-left-style:solid;border-left-width:1px}.bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.ba-l{border-style:solid;border-width:1px}.bt-l{border-top-style:solid;border-top-width:1px}.br-l{border-right-style:solid;border-right-width:1px}.bb-l{border-bottom-style:solid;border-bottom-width:1px}.bl-l{border-left-style:solid;border-left-width:1px}.bn-l{border-style:none;border-width:0}}.b--black{border-color:#000}.b--near-black{border-color:#111}.b--dark-gray{border-color:#333}.b--mid-gray{border-color:#555}.b--gray{border-color:#777}.b--silver{border-color:#999}.b--light-silver{border-color:#aaa}.b--moon-gray{border-color:#ccc}.b--light-gray{border-color:#eee}.b--near-white{border-color:#f4f4f4}.b--white{border-color:#fff}.b--white-90{border-color:hsla(0,0%,100%,.9)}.b--white-80{border-color:hsla(0,0%,100%,.8)}.b--white-70{border-color:hsla(0,0%,100%,.7)}.b--white-60{border-color:hsla(0,0%,100%,.6)}.b--white-50{border-color:hsla(0,0%,100%,.5)}.b--white-40{border-color:hsla(0,0%,100%,.4)}.b--white-30{border-color:hsla(0,0%,100%,.3)}.b--white-20{border-color:hsla(0,0%,100%,.2)}.b--white-10{border-color:hsla(0,0%,100%,.1)}.b--white-05{border-color:hsla(0,0%,100%,.05)}.b--white-025{border-color:hsla(0,0%,100%,.025)}.b--white-0125{border-color:hsla(0,0%,100%,.013)}.b--black-90{border-color:rgba(0,0,0,.9)}.b--black-80{border-color:rgba(0,0,0,.8)}.b--black-70{border-color:rgba(0,0,0,.7)}.b--black-60{border-color:rgba(0,0,0,.6)}.b--black-50{border-color:rgba(0,0,0,.5)}.b--black-40{border-color:rgba(0,0,0,.4)}.b--black-30{border-color:rgba(0,0,0,.3)}.b--black-20,hr{border-color:rgba(0,0,0,.2)}.b--black-10{border-color:rgba(0,0,0,.1)}.b--black-05{border-color:rgba(0,0,0,.05)}.b--black-025{border-color:rgba(0,0,0,.025)}.b--black-0125{border-color:rgba(0,0,0,.013)}.b--dark-red{border-color:#e7040f}.b--red{border-color:#ff4136}.b--light-red{border-color:#ff725c}.b--orange{border-color:#ff6300}.b--gold{border-color:#ffb700}.b--yellow{border-color:gold}.b--light-yellow{border-color:#fbf1a9}.b--purple{border-color:#5e2ca5}.b--light-purple{border-color:#a463f2}.b--dark-pink{border-color:#d5008f}.b--hot-pink{border-color:#ff41b4}.b--pink{border-color:#ff80cc}.b--light-pink{border-color:#ffa3d7}.b--dark-green{border-color:#137752}.b--green{border-color:#19a974}.b--light-green{border-color:#9eebcf}.b--navy{border-color:#001b44}.b--dark-blue{border-color:#00449e}.b--blue{border-color:#357edd}.b--light-blue{border-color:#96ccff}.b--lightest-blue{border-color:#cdecff}.b--washed-blue{border-color:#f6fffe}.b--washed-green{border-color:#e8fdf5}.b--washed-yellow{border-color:#fffceb}.b--washed-red{border-color:#ffdfdf}.b--transparent{border-color:transparent}.b--inherit{border-color:inherit}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom{border-top-left-radius:0;border-top-right-radius:0}.br--top{border-bottom-right-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--right{border-top-left-radius:0}.br--left{border-bottom-right-radius:0;border-top-right-radius:0}@media screen and (min-width:30em){.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.br--top-ns{border-bottom-right-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--right-ns{border-top-left-radius:0}.br--left-ns{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:30em)and (max-width:60em){.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.br--top-m{border-bottom-right-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--right-m{border-top-left-radius:0}.br--left-m{border-bottom-right-radius:0;border-top-right-radius:0}}@media screen and (min-width:60em){.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.br--top-l{border-bottom-right-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--right-l{border-top-left-radius:0}.br--left-l{border-bottom-right-radius:0;border-top-right-radius:0}}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}@media screen and (min-width:30em){.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}}@media screen and (min-width:30em)and (max-width:60em){.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}}@media screen and (min-width:60em){.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}}.bw0{border-width:0}.bw1{border-width:.125rem}.bw2{border-width:.25rem}.bw3{border-width:.5rem}.bw4{border-width:1rem}.bw5{border-width:2rem}.bt-0{border-top-width:0}.br-0{border-right-width:0}.bb-0{border-bottom-width:0}.bl-0{border-left-width:0}@media screen and (min-width:30em){.bw0-ns{border-width:0}.bw1-ns{border-width:.125rem}.bw2-ns{border-width:.25rem}.bw3-ns{border-width:.5rem}.bw4-ns{border-width:1rem}.bw5-ns{border-width:2rem}.bt-0-ns{border-top-width:0}.br-0-ns{border-right-width:0}.bb-0-ns{border-bottom-width:0}.bl-0-ns{border-left-width:0}}@media screen and (min-width:30em)and (max-width:60em){.bw0-m{border-width:0}.bw1-m{border-width:.125rem}.bw2-m{border-width:.25rem}.bw3-m{border-width:.5rem}.bw4-m{border-width:1rem}.bw5-m{border-width:2rem}.bt-0-m{border-top-width:0}.br-0-m{border-right-width:0}.bb-0-m{border-bottom-width:0}.bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.bw0-l{border-width:0}.bw1-l{border-width:.125rem}.bw2-l{border-width:.25rem}.bw3-l{border-width:.5rem}.bw4-l{border-width:1rem}.bw5-l{border-width:2rem}.bt-0-l{border-top-width:0}.br-0-l{border-right-width:0}.bb-0-l{border-bottom-width:0}.bl-0-l{border-left-width:0}}.shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em)and (max-width:60em){.shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{bottom:0;left:0;right:0;top:0}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:30em)and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{bottom:0;left:0;right:0;top:0}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{bottom:0;left:0;right:0;top:0}}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cf{*zoom:1}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em)and (max-width:60em){.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em)and (max-width:60em){.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-height:0;min-width:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.flex-ns{display:flex}.inline-flex-ns{display:inline-flex}.flex-auto-ns{flex:1 1 auto;min-height:0;min-width:0}.flex-none-ns{flex:none}.flex-column-ns{flex-direction:column}.flex-row-ns{flex-direction:row}.flex-wrap-ns{flex-wrap:wrap}.flex-nowrap-ns{flex-wrap:nowrap}.flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.flex-column-reverse-ns{flex-direction:column-reverse}.flex-row-reverse-ns{flex-direction:row-reverse}.items-start-ns{align-items:flex-start}.items-end-ns{align-items:flex-end}.items-center-ns{align-items:center}.items-baseline-ns{align-items:baseline}.items-stretch-ns{align-items:stretch}.self-start-ns{align-self:flex-start}.self-end-ns{align-self:flex-end}.self-center-ns{align-self:center}.self-baseline-ns{align-self:baseline}.self-stretch-ns{align-self:stretch}.justify-start-ns{justify-content:flex-start}.justify-end-ns{justify-content:flex-end}.justify-center-ns{justify-content:center}.justify-between-ns{justify-content:space-between}.justify-around-ns{justify-content:space-around}.content-start-ns{align-content:flex-start}.content-end-ns{align-content:flex-end}.content-center-ns{align-content:center}.content-between-ns{align-content:space-between}.content-around-ns{align-content:space-around}.content-stretch-ns{align-content:stretch}.order-0-ns{order:0}.order-1-ns{order:1}.order-2-ns{order:2}.order-3-ns{order:3}.order-4-ns{order:4}.order-5-ns{order:5}.order-6-ns{order:6}.order-7-ns{order:7}.order-8-ns{order:8}.order-last-ns{order:99999}.flex-grow-0-ns{flex-grow:0}.flex-grow-1-ns{flex-grow:1}.flex-shrink-0-ns{flex-shrink:0}.flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em)and (max-width:60em){.flex-m{display:flex}.inline-flex-m{display:inline-flex}.flex-auto-m{flex:1 1 auto;min-height:0;min-width:0}.flex-none-m{flex:none}.flex-column-m{flex-direction:column}.flex-row-m{flex-direction:row}.flex-wrap-m{flex-wrap:wrap}.flex-nowrap-m{flex-wrap:nowrap}.flex-wrap-reverse-m{flex-wrap:wrap-reverse}.flex-column-reverse-m{flex-direction:column-reverse}.flex-row-reverse-m{flex-direction:row-reverse}.items-start-m{align-items:flex-start}.items-end-m{align-items:flex-end}.items-center-m{align-items:center}.items-baseline-m{align-items:baseline}.items-stretch-m{align-items:stretch}.self-start-m{align-self:flex-start}.self-end-m{align-self:flex-end}.self-center-m{align-self:center}.self-baseline-m{align-self:baseline}.self-stretch-m{align-self:stretch}.justify-start-m{justify-content:flex-start}.justify-end-m{justify-content:flex-end}.justify-center-m{justify-content:center}.justify-between-m{justify-content:space-between}.justify-around-m{justify-content:space-around}.content-start-m{align-content:flex-start}.content-end-m{align-content:flex-end}.content-center-m{align-content:center}.content-between-m{align-content:space-between}.content-around-m{align-content:space-around}.content-stretch-m{align-content:stretch}.order-0-m{order:0}.order-1-m{order:1}.order-2-m{order:2}.order-3-m{order:3}.order-4-m{order:4}.order-5-m{order:5}.order-6-m{order:6}.order-7-m{order:7}.order-8-m{order:8}.order-last-m{order:99999}.flex-grow-0-m{flex-grow:0}.flex-grow-1-m{flex-grow:1}.flex-shrink-0-m{flex-shrink:0}.flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.flex-l{display:flex}.inline-flex-l{display:inline-flex}.flex-auto-l{flex:1 1 auto;min-height:0;min-width:0}.flex-none-l{flex:none}.flex-column-l{flex-direction:column}.flex-row-l{flex-direction:row}.flex-wrap-l{flex-wrap:wrap}.flex-nowrap-l{flex-wrap:nowrap}.flex-wrap-reverse-l{flex-wrap:wrap-reverse}.flex-column-reverse-l{flex-direction:column-reverse}.flex-row-reverse-l{flex-direction:row-reverse}.items-start-l{align-items:flex-start}.items-end-l{align-items:flex-end}.items-center-l{align-items:center}.items-baseline-l{align-items:baseline}.items-stretch-l{align-items:stretch}.self-start-l{align-self:flex-start}.self-end-l{align-self:flex-end}.self-center-l{align-self:center}.self-baseline-l{align-self:baseline}.self-stretch-l{align-self:stretch}.justify-start-l{justify-content:flex-start}.justify-end-l{justify-content:flex-end}.justify-center-l{justify-content:center}.justify-between-l{justify-content:space-between}.justify-around-l{justify-content:space-around}.content-start-l{align-content:flex-start}.content-end-l{align-content:flex-end}.content-center-l{align-content:center}.content-between-l{align-content:space-between}.content-around-l{align-content:space-around}.content-stretch-l{align-content:stretch}.order-0-l{order:0}.order-1-l{order:1}.order-2-l{order:2}.order-3-l{order:3}.order-4-l{order:4}.order-5-l{order:5}.order-6-l{order:6}.order-7-l{order:7}.order-8-l{order:8}.order-last-l{order:99999}.flex-grow-0-l{flex-grow:0}.flex-grow-1-l{flex-grow:1}.flex-shrink-0-l{flex-shrink:0}.flex-shrink-1-l{flex-shrink:1}}.fl{float:left}.fl,.fr{_display:inline}.fr{float:right}.fn{float:none}@media screen and (min-width:30em){.fl-ns{float:left}.fl-ns,.fr-ns{_display:inline}.fr-ns{float:right}.fn-ns{float:none}}@media screen and (min-width:30em)and (max-width:60em){.fl-m{float:left}.fl-m,.fr-m{_display:inline}.fr-m{float:right}.fn-m{float:none}}@media screen and (min-width:60em){.fl-l{float:left}.fl-l,.fr-l{_display:inline}.fr-l{float:right}.fn-l{float:none}}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.serif{font-family:georgia,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:Courier Next,courier,monospace}.helvetica{font-family:helvetica neue,helvetica,sans-serif}.avenir{font-family:avenir next,avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:Bodoni MT,serif}.calisto{font-family:Calisto MT,serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}@media screen and (min-width:30em){.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}}@media screen and (min-width:30em)and (max-width:60em){.i-m{font-style:italic}.fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.i-l{font-style:italic}.fs-normal-l{font-style:normal}}.normal{font-weight:400}.b,b,strong{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}@media screen and (min-width:30em){.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}}@media screen and (min-width:30em)and (max-width:60em){.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}}@media screen and (min-width:60em){.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}}.input-reset{-webkit-appearance:none;-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}.h1{height:1rem}.h2{height:2rem}.h3{height:4rem}.h4{height:8rem}.h5{height:16rem}.h-25{height:25%}.h-50{height:50%}.h-75{height:75%}.h-100{height:100%}.min-h-100{min-height:100%}.vh-25{height:25vh}.vh-50{height:50vh}.vh-75{height:75vh}.vh-100{height:100vh}.min-vh-100{min-height:100vh}.h-auto{height:auto}.h-inherit{height:inherit}@media screen and (min-width:30em){.h1-ns{height:1rem}.h2-ns{height:2rem}.h3-ns{height:4rem}.h4-ns{height:8rem}.h5-ns{height:16rem}.h-25-ns{height:25%}.h-50-ns{height:50%}.h-75-ns{height:75%}.h-100-ns{height:100%}.min-h-100-ns{min-height:100%}.vh-25-ns{height:25vh}.vh-50-ns{height:50vh}.vh-75-ns{height:75vh}.vh-100-ns{height:100vh}.min-vh-100-ns{min-height:100vh}.h-auto-ns{height:auto}.h-inherit-ns{height:inherit}}@media screen and (min-width:30em)and (max-width:60em){.h1-m{height:1rem}.h2-m{height:2rem}.h3-m{height:4rem}.h4-m{height:8rem}.h5-m{height:16rem}.h-25-m{height:25%}.h-50-m{height:50%}.h-75-m{height:75%}.h-100-m{height:100%}.min-h-100-m{min-height:100%}.vh-25-m{height:25vh}.vh-50-m{height:50vh}.vh-75-m{height:75vh}.vh-100-m{height:100vh}.min-vh-100-m{min-height:100vh}.h-auto-m{height:auto}.h-inherit-m{height:inherit}}@media screen and (min-width:60em){.h1-l{height:1rem}.h2-l{height:2rem}.h3-l{height:4rem}.h4-l{height:8rem}.h5-l{height:16rem}.h-25-l{height:25%}.h-50-l{height:50%}.h-75-l{height:75%}.h-100-l{height:100%}.min-h-100-l{min-height:100%}.vh-25-l{height:25vh}.vh-50-l{height:50vh}.vh-75-l{height:75vh}.vh-100-l{height:100vh}.min-vh-100-l{min-height:100vh}.h-auto-l{height:auto}.h-inherit-l{height:inherit}}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em)and (max-width:60em){.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}}.lh-solid,h1,h2,h3,h4,h5{line-height:1}.lh-title{line-height:1.25}.lh-copy,ol,ol li,p,ul,ul li{line-height:1.5}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em)and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}}.link,ol li a,p a,ul li a{text-decoration:none}.link,.link:active,.link:hover,.link:link,.link:visited,ol li a,ol li a:active,ol li a:hover,ol li a:link,ol li a:visited,p a,p a:active,p a:hover,p a:link,p a:visited,ul li a,ul li a:active,ul li a:hover,ul li a:link,ul li a:visited{transition:color .15s ease-in}.link:focus,ol li a:focus,p a:focus,ul li a:focus{outline:1px dotted currentColor;transition:color .15s ease-in}.list{list-style-type:none}.mw-100{max-width:100%}.mw1{max-width:1rem}.mw2{max-width:2rem}.mw3{max-width:4rem}.mw4{max-width:8rem}.mw5{max-width:16rem}.mw6{max-width:32rem}.mw7{max-width:48rem}.mw8{max-width:64rem}.mw9{max-width:96rem}.mw-none{max-width:none}@media screen and (min-width:30em){.mw-100-ns{max-width:100%}.mw1-ns{max-width:1rem}.mw2-ns{max-width:2rem}.mw3-ns{max-width:4rem}.mw4-ns{max-width:8rem}.mw5-ns{max-width:16rem}.mw6-ns{max-width:32rem}.mw7-ns{max-width:48rem}.mw8-ns{max-width:64rem}.mw9-ns{max-width:96rem}.mw-none-ns{max-width:none}}@media screen and (min-width:30em)and (max-width:60em){.mw-100-m{max-width:100%}.mw1-m{max-width:1rem}.mw2-m{max-width:2rem}.mw3-m{max-width:4rem}.mw4-m{max-width:8rem}.mw5-m{max-width:16rem}.mw6-m{max-width:32rem}.mw7-m{max-width:48rem}.mw8-m{max-width:64rem}.mw9-m{max-width:96rem}.mw-none-m{max-width:none}}@media screen and (min-width:60em){.mw-100-l{max-width:100%}.mw1-l{max-width:1rem}.mw2-l{max-width:2rem}.mw3-l{max-width:4rem}.mw4-l{max-width:8rem}.mw5-l{max-width:16rem}.mw6-l{max-width:32rem}.mw7-l{max-width:48rem}.mw8-l{max-width:64rem}.mw9-l{max-width:96rem}.mw-none-l{max-width:none}}.w1{width:1rem}.w2{width:2rem}.w3{width:4rem}.w4{width:8rem}.w5{width:16rem}.w-10{width:10%}.w-20{width:20%}.w-25{width:25%}.w-30{width:30%}.w-33{width:33%}.w-34{width:34%}.w-40{width:40%}.w-50{width:50%}.w-60{width:60%}.w-70{width:70%}.w-75{width:75%}.w-80{width:80%}.w-90{width:90%}.w-100{width:100%}.w-third{width:33.3333333333%}.w-two-thirds{width:66.6666666667%}.w-auto{width:auto}@media screen and (min-width:30em){.w1-ns{width:1rem}.w2-ns{width:2rem}.w3-ns{width:4rem}.w4-ns{width:8rem}.w5-ns{width:16rem}.w-10-ns{width:10%}.w-20-ns{width:20%}.w-25-ns{width:25%}.w-30-ns{width:30%}.w-33-ns{width:33%}.w-34-ns{width:34%}.w-40-ns{width:40%}.w-50-ns{width:50%}.w-60-ns{width:60%}.w-70-ns{width:70%}.w-75-ns{width:75%}.w-80-ns{width:80%}.w-90-ns{width:90%}.w-100-ns{width:100%}.w-third-ns{width:33.3333333333%}.w-two-thirds-ns{width:66.6666666667%}.w-auto-ns{width:auto}}@media screen and (min-width:30em)and (max-width:60em){.w1-m{width:1rem}.w2-m{width:2rem}.w3-m{width:4rem}.w4-m{width:8rem}.w5-m{width:16rem}.w-10-m{width:10%}.w-20-m{width:20%}.w-25-m{width:25%}.w-30-m{width:30%}.w-33-m{width:33%}.w-34-m{width:34%}.w-40-m{width:40%}.w-50-m{width:50%}.w-60-m{width:60%}.w-70-m{width:70%}.w-75-m{width:75%}.w-80-m{width:80%}.w-90-m{width:90%}.w-100-m{width:100%}.w-third-m{width:33.3333333333%}.w-two-thirds-m{width:66.6666666667%}.w-auto-m{width:auto}}@media screen and (min-width:60em){.w1-l{width:1rem}.w2-l{width:2rem}.w3-l{width:4rem}.w4-l{width:8rem}.w5-l{width:16rem}.w-10-l{width:10%}.w-20-l{width:20%}.w-25-l{width:25%}.w-30-l{width:30%}.w-33-l{width:33%}.w-34-l{width:34%}.w-40-l{width:40%}.w-50-l{width:50%}.w-60-l{width:60%}.w-70-l{width:70%}.w-75-l{width:75%}.w-80-l{width:80%}.w-90-l{width:90%}.w-100-l{width:100%}.w-third-l{width:33.3333333333%}.w-two-thirds-l{width:66.6666666667%}.w-auto-l{width:auto}}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em)and (max-width:60em){.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}@media screen and (min-width:30em){.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}}@media screen and (min-width:30em)and (max-width:60em){.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}}@media screen and (min-width:60em){.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}}.o-100{opacity:1}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}@media screen and (min-width:30em){.rotate-45-ns{transform:rotate(45deg)}.rotate-90-ns{transform:rotate(90deg)}.rotate-135-ns{transform:rotate(135deg)}.rotate-180-ns{transform:rotate(180deg)}.rotate-225-ns{transform:rotate(225deg)}.rotate-270-ns{transform:rotate(270deg)}.rotate-315-ns{transform:rotate(315deg)}}@media screen and (min-width:30em)and (max-width:60em){.rotate-45-m{transform:rotate(45deg)}.rotate-90-m{transform:rotate(90deg)}.rotate-135-m{transform:rotate(135deg)}.rotate-180-m{transform:rotate(180deg)}.rotate-225-m{transform:rotate(225deg)}.rotate-270-m{transform:rotate(270deg)}.rotate-315-m{transform:rotate(315deg)}}@media screen and (min-width:60em){.rotate-45-l{transform:rotate(45deg)}.rotate-90-l{transform:rotate(90deg)}.rotate-135-l{transform:rotate(135deg)}.rotate-180-l{transform:rotate(180deg)}.rotate-225-l{transform:rotate(225deg)}.rotate-270-l{transform:rotate(270deg)}.rotate-315-l{transform:rotate(315deg)}}.black-90{color:rgba(0,0,0,.9)}.black-80{color:rgba(0,0,0,.8)}.black-70{color:rgba(0,0,0,.7)}.black-60{color:rgba(0,0,0,.6)}.black-50{color:rgba(0,0,0,.5)}.black-40{color:rgba(0,0,0,.4)}.black-30{color:rgba(0,0,0,.3)}.black-20{color:rgba(0,0,0,.2)}.black-10{color:rgba(0,0,0,.1)}.black-05{color:rgba(0,0,0,.05)}.white-90{color:hsla(0,0%,100%,.9)}.white-80{color:hsla(0,0%,100%,.8)}.white-70{color:hsla(0,0%,100%,.7)}.white-60{color:hsla(0,0%,100%,.6)}.white-50{color:hsla(0,0%,100%,.5)}.white-40{color:hsla(0,0%,100%,.4)}.white-30{color:hsla(0,0%,100%,.3)}.white-20{color:hsla(0,0%,100%,.2)}.white-10{color:hsla(0,0%,100%,.1)}.black,b,strong{color:#000}.near-black,h1,h2,h3,h4,h5{color:#111}.dark-gray,nav a,ol,p,ul{color:#333}.mid-gray{color:#555}.gray,time{color:#777}.silver,nav a.active{color:#999}.light-silver{color:#aaa}.moon-gray{color:#ccc}.light-gray{color:#eee}.near-white{color:#f4f4f4}.white{color:#fff}.dark-red{color:#e7040f}.red{color:#ff4136}.light-red{color:#ff725c}.orange{color:#ff6300}.gold{color:#ffb700}.yellow{color:gold}.light-yellow{color:#fbf1a9}.purple{color:#5e2ca5}.light-purple{color:#a463f2}.dark-pink{color:#d5008f}.hot-pink{color:#ff41b4}.pink{color:#ff80cc}.light-pink{color:#ffa3d7}.dark-green{color:#137752}.green{color:#19a974}.light-green{color:#9eebcf}.navy{color:#001b44}.dark-blue{color:#00449e}.blue{color:#357edd}.light-blue{color:#96ccff}.lightest-blue{color:#cdecff}.washed-blue{color:#f6fffe}.washed-green{color:#e8fdf5}.washed-yellow{color:#fffceb}.washed-red{color:#ffdfdf}.color-inherit{color:inherit}.bg-black-90{background-color:rgba(0,0,0,.9)}.bg-black-80{background-color:rgba(0,0,0,.8)}.bg-black-70{background-color:rgba(0,0,0,.7)}.bg-black-60{background-color:rgba(0,0,0,.6)}.bg-black-50{background-color:rgba(0,0,0,.5)}.bg-black-40{background-color:rgba(0,0,0,.4)}.bg-black-30{background-color:rgba(0,0,0,.3)}.bg-black-20{background-color:rgba(0,0,0,.2)}.bg-black-10{background-color:rgba(0,0,0,.1)}.bg-black-05{background-color:rgba(0,0,0,.05)}.bg-white-90{background-color:hsla(0,0%,100%,.9)}.bg-white-80{background-color:hsla(0,0%,100%,.8)}.bg-white-70{background-color:hsla(0,0%,100%,.7)}.bg-white-60{background-color:hsla(0,0%,100%,.6)}.bg-white-50{background-color:hsla(0,0%,100%,.5)}.bg-white-40{background-color:hsla(0,0%,100%,.4)}.bg-white-30{background-color:hsla(0,0%,100%,.3)}.bg-white-20{background-color:hsla(0,0%,100%,.2)}.bg-white-10{background-color:hsla(0,0%,100%,.1)}.bg-black{background-color:#000}.bg-near-black{background-color:#111}.bg-dark-gray{background-color:#333}.bg-mid-gray{background-color:#555}.bg-gray{background-color:#777}.bg-silver{background-color:#999}.bg-light-silver{background-color:#aaa}.bg-moon-gray{background-color:#ccc}.bg-light-gray,.markdown-content .grvsc-container{background-color:#eee}.bg-near-white{background-color:#f4f4f4}.bg-white{background-color:#fff}.bg-transparent{background-color:transparent}.bg-dark-red{background-color:#e7040f}.bg-red{background-color:#ff4136}.bg-light-red{background-color:#ff725c}.bg-orange{background-color:#ff6300}.bg-gold{background-color:#ffb700}.bg-yellow{background-color:gold}.bg-light-yellow{background-color:#fbf1a9}.bg-purple{background-color:#5e2ca5}.bg-light-purple{background-color:#a463f2}.bg-dark-pink{background-color:#d5008f}.bg-hot-pink{background-color:#ff41b4}.bg-pink{background-color:#ff80cc}.bg-light-pink{background-color:#ffa3d7}.bg-dark-green{background-color:#137752}.bg-green{background-color:#19a974}.bg-light-green{background-color:#9eebcf}.bg-navy{background-color:#001b44}.bg-dark-blue{background-color:#00449e}.bg-blue{background-color:#357edd}.bg-light-blue{background-color:#96ccff}.bg-lightest-blue{background-color:#cdecff}.bg-washed-blue{background-color:#f6fffe}.bg-washed-green{background-color:#e8fdf5}.bg-washed-yellow{background-color:#fffceb}.bg-washed-red{background-color:#ffdfdf}.bg-inherit{background-color:inherit}.hover-black:focus,.hover-black:hover{color:#000}.hover-near-black:focus,.hover-near-black:hover{color:#111}.hover-dark-gray:focus,.hover-dark-gray:hover{color:#333}.hover-mid-gray:focus,.hover-mid-gray:hover{color:#555}.hover-gray:focus,.hover-gray:hover{color:#777}.hover-silver:focus,.hover-silver:hover{color:#999}.hover-light-silver:focus,.hover-light-silver:hover{color:#aaa}.hover-moon-gray:focus,.hover-moon-gray:hover{color:#ccc}.hover-light-gray:focus,.hover-light-gray:hover{color:#eee}.hover-near-white:focus,.hover-near-white:hover{color:#f4f4f4}.hover-white:focus,.hover-white:hover{color:#fff}.hover-black-90:focus,.hover-black-90:hover{color:rgba(0,0,0,.9)}.hover-black-80:focus,.hover-black-80:hover{color:rgba(0,0,0,.8)}.hover-black-70:focus,.hover-black-70:hover{color:rgba(0,0,0,.7)}.hover-black-60:focus,.hover-black-60:hover{color:rgba(0,0,0,.6)}.hover-black-50:focus,.hover-black-50:hover{color:rgba(0,0,0,.5)}.hover-black-40:focus,.hover-black-40:hover{color:rgba(0,0,0,.4)}.hover-black-30:focus,.hover-black-30:hover{color:rgba(0,0,0,.3)}.hover-black-20:focus,.hover-black-20:hover{color:rgba(0,0,0,.2)}.hover-black-10:focus,.hover-black-10:hover{color:rgba(0,0,0,.1)}.hover-white-90:focus,.hover-white-90:hover{color:hsla(0,0%,100%,.9)}.hover-white-80:focus,.hover-white-80:hover{color:hsla(0,0%,100%,.8)}.hover-white-70:focus,.hover-white-70:hover{color:hsla(0,0%,100%,.7)}.hover-white-60:focus,.hover-white-60:hover{color:hsla(0,0%,100%,.6)}.hover-white-50:focus,.hover-white-50:hover{color:hsla(0,0%,100%,.5)}.hover-white-40:focus,.hover-white-40:hover{color:hsla(0,0%,100%,.4)}.hover-white-30:focus,.hover-white-30:hover{color:hsla(0,0%,100%,.3)}.hover-white-20:focus,.hover-white-20:hover{color:hsla(0,0%,100%,.2)}.hover-white-10:focus,.hover-white-10:hover{color:hsla(0,0%,100%,.1)}.hover-inherit:focus,.hover-inherit:hover{color:inherit}.hover-bg-black:focus,.hover-bg-black:hover{background-color:#000}.hover-bg-near-black:focus,.hover-bg-near-black:hover{background-color:#111}.hover-bg-dark-gray:focus,.hover-bg-dark-gray:hover{background-color:#333}.hover-bg-mid-gray:focus,.hover-bg-mid-gray:hover{background-color:#555}.hover-bg-gray:focus,.hover-bg-gray:hover{background-color:#777}.hover-bg-silver:focus,.hover-bg-silver:hover{background-color:#999}.hover-bg-light-silver:focus,.hover-bg-light-silver:hover{background-color:#aaa}.hover-bg-moon-gray:focus,.hover-bg-moon-gray:hover{background-color:#ccc}.hover-bg-light-gray:focus,.hover-bg-light-gray:hover{background-color:#eee}.hover-bg-near-white:focus,.hover-bg-near-white:hover{background-color:#f4f4f4}.hover-bg-white:focus,.hover-bg-white:hover{background-color:#fff}.hover-bg-transparent:focus,.hover-bg-transparent:hover{background-color:transparent}.hover-bg-black-90:focus,.hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.hover-bg-black-80:focus,.hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.hover-bg-black-70:focus,.hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.hover-bg-black-60:focus,.hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.hover-bg-black-50:focus,.hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.hover-bg-black-40:focus,.hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.hover-bg-black-30:focus,.hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.hover-bg-black-20:focus,.hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.hover-bg-black-10:focus,.hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.hover-bg-white-90:focus,.hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.hover-bg-white-80:focus,.hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.hover-bg-white-70:focus,.hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.hover-bg-white-60:focus,.hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.hover-bg-white-50:focus,.hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.hover-bg-white-40:focus,.hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.hover-bg-white-30:focus,.hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.hover-bg-white-20:focus,.hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.hover-bg-white-10:focus,.hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.hover-dark-red:focus,.hover-dark-red:hover{color:#e7040f}.hover-red:focus,.hover-red:hover{color:#ff4136}.hover-light-red:focus,.hover-light-red:hover{color:#ff725c}.hover-orange:focus,.hover-orange:hover{color:#ff6300}.hover-gold:focus,.hover-gold:hover{color:#ffb700}.hover-yellow:focus,.hover-yellow:hover{color:gold}.hover-light-yellow:focus,.hover-light-yellow:hover{color:#fbf1a9}.hover-purple:focus,.hover-purple:hover{color:#5e2ca5}.hover-light-purple:focus,.hover-light-purple:hover{color:#a463f2}.hover-dark-pink:focus,.hover-dark-pink:hover{color:#d5008f}.hover-hot-pink:focus,.hover-hot-pink:hover{color:#ff41b4}.hover-pink:focus,.hover-pink:hover{color:#ff80cc}.hover-light-pink:focus,.hover-light-pink:hover{color:#ffa3d7}.hover-dark-green:focus,.hover-dark-green:hover{color:#137752}.hover-green:focus,.hover-green:hover{color:#19a974}.hover-light-green:focus,.hover-light-green:hover{color:#9eebcf}.hover-navy:focus,.hover-navy:hover{color:#001b44}.hover-dark-blue:focus,.hover-dark-blue:hover{color:#00449e}.hover-blue:focus,.hover-blue:hover{color:#357edd}.hover-light-blue:focus,.hover-light-blue:hover{color:#96ccff}.hover-lightest-blue:focus,.hover-lightest-blue:hover{color:#cdecff}.hover-washed-blue:focus,.hover-washed-blue:hover{color:#f6fffe}.hover-washed-green:focus,.hover-washed-green:hover{color:#e8fdf5}.hover-washed-yellow:focus,.hover-washed-yellow:hover{color:#fffceb}.hover-washed-red:focus,.hover-washed-red:hover{color:#ffdfdf}.hover-bg-dark-red:focus,.hover-bg-dark-red:hover{background-color:#e7040f}.hover-bg-red:focus,.hover-bg-red:hover{background-color:#ff4136}.hover-bg-light-red:focus,.hover-bg-light-red:hover{background-color:#ff725c}.hover-bg-orange:focus,.hover-bg-orange:hover{background-color:#ff6300}.hover-bg-gold:focus,.hover-bg-gold:hover{background-color:#ffb700}.hover-bg-yellow:focus,.hover-bg-yellow:hover{background-color:gold}.hover-bg-light-yellow:focus,.hover-bg-light-yellow:hover{background-color:#fbf1a9}.hover-bg-purple:focus,.hover-bg-purple:hover{background-color:#5e2ca5}.hover-bg-light-purple:focus,.hover-bg-light-purple:hover{background-color:#a463f2}.hover-bg-dark-pink:focus,.hover-bg-dark-pink:hover{background-color:#d5008f}.hover-bg-hot-pink:focus,.hover-bg-hot-pink:hover{background-color:#ff41b4}.hover-bg-pink:focus,.hover-bg-pink:hover{background-color:#ff80cc}.hover-bg-light-pink:focus,.hover-bg-light-pink:hover{background-color:#ffa3d7}.hover-bg-dark-green:focus,.hover-bg-dark-green:hover{background-color:#137752}.hover-bg-green:focus,.hover-bg-green:hover{background-color:#19a974}.hover-bg-light-green:focus,.hover-bg-light-green:hover{background-color:#9eebcf}.hover-bg-navy:focus,.hover-bg-navy:hover{background-color:#001b44}.hover-bg-dark-blue:focus,.hover-bg-dark-blue:hover{background-color:#00449e}.hover-bg-blue:focus,.hover-bg-blue:hover{background-color:#357edd}.hover-bg-light-blue:focus,.hover-bg-light-blue:hover{background-color:#96ccff}.hover-bg-lightest-blue:focus,.hover-bg-lightest-blue:hover{background-color:#cdecff}.hover-bg-washed-blue:focus,.hover-bg-washed-blue:hover{background-color:#f6fffe}.hover-bg-washed-green:focus,.hover-bg-washed-green:hover{background-color:#e8fdf5}.hover-bg-washed-yellow:focus,.hover-bg-washed-yellow:hover{background-color:#fffceb}.hover-bg-washed-red:focus,.hover-bg-washed-red:hover{background-color:#ffdfdf}.hover-bg-inherit:focus,.hover-bg-inherit:hover{background-color:inherit}.pa0{padding:0}.pa1{padding:.25rem}.pa2{padding:.5rem}.pa3{padding:1rem}.pa4{padding:2rem}.pa5{padding:4rem}.pa6{padding:8rem}.pa7{padding:16rem}.pl0{padding-left:0}.pl1{padding-left:.25rem}.pl2{padding-left:.5rem}.pl3{padding-left:1rem}.pl4,ol,ul{padding-left:2rem}.pl5{padding-left:4rem}.pl6{padding-left:8rem}.pl7{padding-left:16rem}.pr0{padding-right:0}.pr1{padding-right:.25rem}.pr2{padding-right:.5rem}.pr3{padding-right:1rem}.pr4{padding-right:2rem}.pr5{padding-right:4rem}.pr6{padding-right:8rem}.pr7{padding-right:16rem}.pb0{padding-bottom:0}.pb1{padding-bottom:.25rem}.pb2{padding-bottom:.5rem}.pb3{padding-bottom:1rem}.pb4{padding-bottom:2rem}.pb5{padding-bottom:4rem}.pb6{padding-bottom:8rem}.pb7{padding-bottom:16rem}.pt0{padding-top:0}.pt1{padding-top:.25rem}.pt2{padding-top:.5rem}.pt3{padding-top:1rem}.pt4{padding-top:2rem}.pt5{padding-top:4rem}.pt6{padding-top:8rem}.pt7{padding-top:16rem}.pv0{padding-bottom:0;padding-top:0}.pv1{padding-bottom:.25rem;padding-top:.25rem}.pv2{padding-bottom:.5rem;padding-top:.5rem}.pv3{padding-bottom:1rem;padding-top:1rem}.pv4{padding-bottom:2rem;padding-top:2rem}.pv5{padding-bottom:4rem;padding-top:4rem}.pv6{padding-bottom:8rem;padding-top:8rem}.pv7{padding-bottom:16rem;padding-top:16rem}.ph0{padding-left:0;padding-right:0}.ph1{padding-left:.25rem;padding-right:.25rem}.ph2{padding-left:.5rem;padding-right:.5rem}.ph3{padding-left:1rem;padding-right:1rem}.ph4{padding-left:2rem;padding-right:2rem}.ph5{padding-left:4rem;padding-right:4rem}.ph6{padding-left:8rem;padding-right:8rem}.ph7{padding-left:16rem;padding-right:16rem}.ma0{margin:0}.ma1{margin:.25rem}.ma2{margin:.5rem}.ma3{margin:1rem}.ma4{margin:2rem}.ma5{margin:4rem}.ma6{margin:8rem}.ma7{margin:16rem}.ml0{margin-left:0}.ml1{margin-left:.25rem}.ml2{margin-left:.5rem}.ml3{margin-left:1rem}.ml4{margin-left:2rem}.ml5{margin-left:4rem}.ml6{margin-left:8rem}.ml7{margin-left:16rem}.mr0{margin-right:0}.mr1{margin-right:.25rem}.mr2{margin-right:.5rem}.mr3{margin-right:1rem}.mr4{margin-right:2rem}.mr5{margin-right:4rem}.mr6{margin-right:8rem}.mr7{margin-right:16rem}.mb0{margin-bottom:0}.mb1{margin-bottom:.25rem}.mb2{margin-bottom:.5rem}.mb3{margin-bottom:1rem}.mb4{margin-bottom:2rem}.mb5{margin-bottom:4rem}.mb6{margin-bottom:8rem}.mb7{margin-bottom:16rem}.mt0{margin-top:0}.mt1{margin-top:.25rem}.mt2{margin-top:.5rem}.mt3{margin-top:1rem}.mt4{margin-top:2rem}.mt5{margin-top:4rem}.mt6{margin-top:8rem}.mt7{margin-top:16rem}.mv0{margin-bottom:0;margin-top:0}.mv1{margin-bottom:.25rem;margin-top:.25rem}.mv2{margin-bottom:.5rem;margin-top:.5rem}.mv3{margin-bottom:1rem;margin-top:1rem}.mv4,hr{margin-bottom:2rem;margin-top:2rem}.mv5{margin-bottom:4rem;margin-top:4rem}.mv6{margin-bottom:8rem;margin-top:8rem}.mv7{margin-bottom:16rem;margin-top:16rem}.mh0{margin-left:0;margin-right:0}.mh1{margin-left:.25rem;margin-right:.25rem}.mh2{margin-left:.5rem;margin-right:.5rem}.mh3{margin-left:1rem;margin-right:1rem}.mh4{margin-left:2rem;margin-right:2rem}.mh5{margin-left:4rem;margin-right:4rem}.mh6{margin-left:8rem;margin-right:8rem}.mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.pa0-ns{padding:0}.pa1-ns{padding:.25rem}.pa2-ns{padding:.5rem}.pa3-ns{padding:1rem}.pa4-ns{padding:2rem}.pa5-ns{padding:4rem}.pa6-ns{padding:8rem}.pa7-ns{padding:16rem}.pl0-ns{padding-left:0}.pl1-ns{padding-left:.25rem}.pl2-ns{padding-left:.5rem}.pl3-ns{padding-left:1rem}.pl4-ns{padding-left:2rem}.pl5-ns{padding-left:4rem}.pl6-ns{padding-left:8rem}.pl7-ns{padding-left:16rem}.pr0-ns{padding-right:0}.pr1-ns{padding-right:.25rem}.pr2-ns{padding-right:.5rem}.pr3-ns{padding-right:1rem}.pr4-ns{padding-right:2rem}.pr5-ns{padding-right:4rem}.pr6-ns{padding-right:8rem}.pr7-ns{padding-right:16rem}.pb0-ns{padding-bottom:0}.pb1-ns{padding-bottom:.25rem}.pb2-ns{padding-bottom:.5rem}.pb3-ns{padding-bottom:1rem}.pb4-ns{padding-bottom:2rem}.pb5-ns{padding-bottom:4rem}.pb6-ns{padding-bottom:8rem}.pb7-ns{padding-bottom:16rem}.pt0-ns{padding-top:0}.pt1-ns{padding-top:.25rem}.pt2-ns{padding-top:.5rem}.pt3-ns{padding-top:1rem}.pt4-ns{padding-top:2rem}.pt5-ns{padding-top:4rem}.pt6-ns{padding-top:8rem}.pt7-ns{padding-top:16rem}.pv0-ns{padding-bottom:0;padding-top:0}.pv1-ns{padding-bottom:.25rem;padding-top:.25rem}.pv2-ns{padding-bottom:.5rem;padding-top:.5rem}.pv3-ns{padding-bottom:1rem;padding-top:1rem}.pv4-ns{padding-bottom:2rem;padding-top:2rem}.pv5-ns{padding-bottom:4rem;padding-top:4rem}.pv6-ns{padding-bottom:8rem;padding-top:8rem}.pv7-ns{padding-bottom:16rem;padding-top:16rem}.ph0-ns{padding-left:0;padding-right:0}.ph1-ns{padding-left:.25rem;padding-right:.25rem}.ph2-ns{padding-left:.5rem;padding-right:.5rem}.ph3-ns{padding-left:1rem;padding-right:1rem}.ph4-ns{padding-left:2rem;padding-right:2rem}.ph5-ns{padding-left:4rem;padding-right:4rem}.ph6-ns{padding-left:8rem;padding-right:8rem}.ph7-ns{padding-left:16rem;padding-right:16rem}.ma0-ns{margin:0}.ma1-ns{margin:.25rem}.ma2-ns{margin:.5rem}.ma3-ns{margin:1rem}.ma4-ns{margin:2rem}.ma5-ns{margin:4rem}.ma6-ns{margin:8rem}.ma7-ns{margin:16rem}.ml0-ns{margin-left:0}.ml1-ns{margin-left:.25rem}.ml2-ns{margin-left:.5rem}.ml3-ns{margin-left:1rem}.ml4-ns{margin-left:2rem}.ml5-ns{margin-left:4rem}.ml6-ns{margin-left:8rem}.ml7-ns{margin-left:16rem}.mr0-ns{margin-right:0}.mr1-ns{margin-right:.25rem}.mr2-ns{margin-right:.5rem}.mr3-ns{margin-right:1rem}.mr4-ns{margin-right:2rem}.mr5-ns{margin-right:4rem}.mr6-ns{margin-right:8rem}.mr7-ns{margin-right:16rem}.mb0-ns{margin-bottom:0}.mb1-ns{margin-bottom:.25rem}.mb2-ns{margin-bottom:.5rem}.mb3-ns{margin-bottom:1rem}.mb4-ns{margin-bottom:2rem}.mb5-ns{margin-bottom:4rem}.mb6-ns{margin-bottom:8rem}.mb7-ns{margin-bottom:16rem}.mt0-ns{margin-top:0}.mt1-ns{margin-top:.25rem}.mt2-ns{margin-top:.5rem}.mt3-ns{margin-top:1rem}.mt4-ns{margin-top:2rem}.mt5-ns{margin-top:4rem}.mt6-ns{margin-top:8rem}.mt7-ns{margin-top:16rem}.mv0-ns{margin-bottom:0;margin-top:0}.mv1-ns{margin-bottom:.25rem;margin-top:.25rem}.mv2-ns{margin-bottom:.5rem;margin-top:.5rem}.mv3-ns{margin-bottom:1rem;margin-top:1rem}.mv4-ns{margin-bottom:2rem;margin-top:2rem}.mv5-ns{margin-bottom:4rem;margin-top:4rem}.mv6-ns{margin-bottom:8rem;margin-top:8rem}.mv7-ns{margin-bottom:16rem;margin-top:16rem}.mh0-ns{margin-left:0;margin-right:0}.mh1-ns{margin-left:.25rem;margin-right:.25rem}.mh2-ns{margin-left:.5rem;margin-right:.5rem}.mh3-ns{margin-left:1rem;margin-right:1rem}.mh4-ns{margin-left:2rem;margin-right:2rem}.mh5-ns{margin-left:4rem;margin-right:4rem}.mh6-ns{margin-left:8rem;margin-right:8rem}.mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em)and (max-width:60em){.pa0-m{padding:0}.pa1-m{padding:.25rem}.pa2-m{padding:.5rem}.pa3-m{padding:1rem}.pa4-m{padding:2rem}.pa5-m{padding:4rem}.pa6-m{padding:8rem}.pa7-m{padding:16rem}.pl0-m{padding-left:0}.pl1-m{padding-left:.25rem}.pl2-m{padding-left:.5rem}.pl3-m{padding-left:1rem}.pl4-m{padding-left:2rem}.pl5-m{padding-left:4rem}.pl6-m{padding-left:8rem}.pl7-m{padding-left:16rem}.pr0-m{padding-right:0}.pr1-m{padding-right:.25rem}.pr2-m{padding-right:.5rem}.pr3-m{padding-right:1rem}.pr4-m{padding-right:2rem}.pr5-m{padding-right:4rem}.pr6-m{padding-right:8rem}.pr7-m{padding-right:16rem}.pb0-m{padding-bottom:0}.pb1-m{padding-bottom:.25rem}.pb2-m{padding-bottom:.5rem}.pb3-m{padding-bottom:1rem}.pb4-m{padding-bottom:2rem}.pb5-m{padding-bottom:4rem}.pb6-m{padding-bottom:8rem}.pb7-m{padding-bottom:16rem}.pt0-m{padding-top:0}.pt1-m{padding-top:.25rem}.pt2-m{padding-top:.5rem}.pt3-m{padding-top:1rem}.pt4-m{padding-top:2rem}.pt5-m{padding-top:4rem}.pt6-m{padding-top:8rem}.pt7-m{padding-top:16rem}.pv0-m{padding-bottom:0;padding-top:0}.pv1-m{padding-bottom:.25rem;padding-top:.25rem}.pv2-m{padding-bottom:.5rem;padding-top:.5rem}.pv3-m{padding-bottom:1rem;padding-top:1rem}.pv4-m{padding-bottom:2rem;padding-top:2rem}.pv5-m{padding-bottom:4rem;padding-top:4rem}.pv6-m{padding-bottom:8rem;padding-top:8rem}.pv7-m{padding-bottom:16rem;padding-top:16rem}.ph0-m{padding-left:0;padding-right:0}.ph1-m{padding-left:.25rem;padding-right:.25rem}.ph2-m{padding-left:.5rem;padding-right:.5rem}.ph3-m{padding-left:1rem;padding-right:1rem}.ph4-m{padding-left:2rem;padding-right:2rem}.ph5-m{padding-left:4rem;padding-right:4rem}.ph6-m{padding-left:8rem;padding-right:8rem}.ph7-m{padding-left:16rem;padding-right:16rem}.ma0-m{margin:0}.ma1-m{margin:.25rem}.ma2-m{margin:.5rem}.ma3-m{margin:1rem}.ma4-m{margin:2rem}.ma5-m{margin:4rem}.ma6-m{margin:8rem}.ma7-m{margin:16rem}.ml0-m{margin-left:0}.ml1-m{margin-left:.25rem}.ml2-m{margin-left:.5rem}.ml3-m{margin-left:1rem}.ml4-m{margin-left:2rem}.ml5-m{margin-left:4rem}.ml6-m{margin-left:8rem}.ml7-m{margin-left:16rem}.mr0-m{margin-right:0}.mr1-m{margin-right:.25rem}.mr2-m{margin-right:.5rem}.mr3-m{margin-right:1rem}.mr4-m{margin-right:2rem}.mr5-m{margin-right:4rem}.mr6-m{margin-right:8rem}.mr7-m{margin-right:16rem}.mb0-m{margin-bottom:0}.mb1-m{margin-bottom:.25rem}.mb2-m{margin-bottom:.5rem}.mb3-m{margin-bottom:1rem}.mb4-m{margin-bottom:2rem}.mb5-m{margin-bottom:4rem}.mb6-m{margin-bottom:8rem}.mb7-m{margin-bottom:16rem}.mt0-m{margin-top:0}.mt1-m{margin-top:.25rem}.mt2-m{margin-top:.5rem}.mt3-m{margin-top:1rem}.mt4-m{margin-top:2rem}.mt5-m{margin-top:4rem}.mt6-m{margin-top:8rem}.mt7-m{margin-top:16rem}.mv0-m{margin-bottom:0;margin-top:0}.mv1-m{margin-bottom:.25rem;margin-top:.25rem}.mv2-m{margin-bottom:.5rem;margin-top:.5rem}.mv3-m{margin-bottom:1rem;margin-top:1rem}.mv4-m{margin-bottom:2rem;margin-top:2rem}.mv5-m{margin-bottom:4rem;margin-top:4rem}.mv6-m{margin-bottom:8rem;margin-top:8rem}.mv7-m{margin-bottom:16rem;margin-top:16rem}.mh0-m{margin-left:0;margin-right:0}.mh1-m{margin-left:.25rem;margin-right:.25rem}.mh2-m{margin-left:.5rem;margin-right:.5rem}.mh3-m{margin-left:1rem;margin-right:1rem}.mh4-m{margin-left:2rem;margin-right:2rem}.mh5-m{margin-left:4rem;margin-right:4rem}.mh6-m{margin-left:8rem;margin-right:8rem}.mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.pa0-l{padding:0}.pa1-l{padding:.25rem}.pa2-l{padding:.5rem}.pa3-l{padding:1rem}.pa4-l{padding:2rem}.pa5-l{padding:4rem}.pa6-l{padding:8rem}.pa7-l{padding:16rem}.pl0-l{padding-left:0}.pl1-l{padding-left:.25rem}.pl2-l{padding-left:.5rem}.pl3-l{padding-left:1rem}.pl4-l{padding-left:2rem}.pl5-l{padding-left:4rem}.pl6-l{padding-left:8rem}.pl7-l{padding-left:16rem}.pr0-l{padding-right:0}.pr1-l{padding-right:.25rem}.pr2-l{padding-right:.5rem}.pr3-l{padding-right:1rem}.pr4-l{padding-right:2rem}.pr5-l{padding-right:4rem}.pr6-l{padding-right:8rem}.pr7-l{padding-right:16rem}.pb0-l{padding-bottom:0}.pb1-l{padding-bottom:.25rem}.pb2-l{padding-bottom:.5rem}.pb3-l{padding-bottom:1rem}.pb4-l{padding-bottom:2rem}.pb5-l{padding-bottom:4rem}.pb6-l{padding-bottom:8rem}.pb7-l{padding-bottom:16rem}.pt0-l{padding-top:0}.pt1-l{padding-top:.25rem}.pt2-l{padding-top:.5rem}.pt3-l{padding-top:1rem}.pt4-l{padding-top:2rem}.pt5-l{padding-top:4rem}.pt6-l{padding-top:8rem}.pt7-l{padding-top:16rem}.pv0-l{padding-bottom:0;padding-top:0}.pv1-l{padding-bottom:.25rem;padding-top:.25rem}.pv2-l{padding-bottom:.5rem;padding-top:.5rem}.pv3-l{padding-bottom:1rem;padding-top:1rem}.pv4-l{padding-bottom:2rem;padding-top:2rem}.pv5-l{padding-bottom:4rem;padding-top:4rem}.pv6-l{padding-bottom:8rem;padding-top:8rem}.pv7-l{padding-bottom:16rem;padding-top:16rem}.ph0-l{padding-left:0;padding-right:0}.ph1-l{padding-left:.25rem;padding-right:.25rem}.ph2-l{padding-left:.5rem;padding-right:.5rem}.ph3-l{padding-left:1rem;padding-right:1rem}.ph4-l{padding-left:2rem;padding-right:2rem}.ph5-l{padding-left:4rem;padding-right:4rem}.ph6-l{padding-left:8rem;padding-right:8rem}.ph7-l{padding-left:16rem;padding-right:16rem}.ma0-l{margin:0}.ma1-l{margin:.25rem}.ma2-l{margin:.5rem}.ma3-l{margin:1rem}.ma4-l{margin:2rem}.ma5-l{margin:4rem}.ma6-l{margin:8rem}.ma7-l{margin:16rem}.ml0-l{margin-left:0}.ml1-l{margin-left:.25rem}.ml2-l{margin-left:.5rem}.ml3-l{margin-left:1rem}.ml4-l{margin-left:2rem}.ml5-l{margin-left:4rem}.ml6-l{margin-left:8rem}.ml7-l{margin-left:16rem}.mr0-l{margin-right:0}.mr1-l{margin-right:.25rem}.mr2-l{margin-right:.5rem}.mr3-l{margin-right:1rem}.mr4-l{margin-right:2rem}.mr5-l{margin-right:4rem}.mr6-l{margin-right:8rem}.mr7-l{margin-right:16rem}.mb0-l{margin-bottom:0}.mb1-l{margin-bottom:.25rem}.mb2-l{margin-bottom:.5rem}.mb3-l{margin-bottom:1rem}.mb4-l{margin-bottom:2rem}.mb5-l{margin-bottom:4rem}.mb6-l{margin-bottom:8rem}.mb7-l{margin-bottom:16rem}.mt0-l{margin-top:0}.mt1-l{margin-top:.25rem}.mt2-l{margin-top:.5rem}.mt3-l{margin-top:1rem}.mt4-l{margin-top:2rem}.mt5-l{margin-top:4rem}.mt6-l{margin-top:8rem}.mt7-l{margin-top:16rem}.mv0-l{margin-bottom:0;margin-top:0}.mv1-l{margin-bottom:.25rem;margin-top:.25rem}.mv2-l{margin-bottom:.5rem;margin-top:.5rem}.mv3-l{margin-bottom:1rem;margin-top:1rem}.mv4-l{margin-bottom:2rem;margin-top:2rem}.mv5-l{margin-bottom:4rem;margin-top:4rem}.mv6-l{margin-bottom:8rem;margin-top:8rem}.mv7-l{margin-bottom:16rem;margin-top:16rem}.mh0-l{margin-left:0;margin-right:0}.mh1-l{margin-left:.25rem;margin-right:.25rem}.mh2-l{margin-left:.5rem;margin-right:.5rem}.mh3-l{margin-left:1rem;margin-right:1rem}.mh4-l{margin-left:2rem;margin-right:2rem}.mh5-l{margin-left:4rem;margin-right:4rem}.mh6-l{margin-left:8rem;margin-right:8rem}.mh7-l{margin-left:16rem;margin-right:16rem}}.na1{margin:-.25rem}.na2{margin:-.5rem}.na3{margin:-1rem}.na4{margin:-2rem}.na5{margin:-4rem}.na6{margin:-8rem}.na7{margin:-16rem}.nl1{margin-left:-.25rem}.nl2{margin-left:-.5rem}.nl3{margin-left:-1rem}.nl4{margin-left:-2rem}.nl5{margin-left:-4rem}.nl6{margin-left:-8rem}.nl7{margin-left:-16rem}.nr1{margin-right:-.25rem}.nr2{margin-right:-.5rem}.nr3{margin-right:-1rem}.nr4{margin-right:-2rem}.nr5{margin-right:-4rem}.nr6{margin-right:-8rem}.nr7{margin-right:-16rem}.nb1{margin-bottom:-.25rem}.nb2{margin-bottom:-.5rem}.nb3{margin-bottom:-1rem}.nb4{margin-bottom:-2rem}.nb5{margin-bottom:-4rem}.nb6{margin-bottom:-8rem}.nb7{margin-bottom:-16rem}.nt1{margin-top:-.25rem}.nt2{margin-top:-.5rem}.nt3{margin-top:-1rem}.nt4{margin-top:-2rem}.nt5{margin-top:-4rem}.nt6{margin-top:-8rem}.nt7{margin-top:-16rem}@media screen and (min-width:30em){.na1-ns{margin:-.25rem}.na2-ns{margin:-.5rem}.na3-ns{margin:-1rem}.na4-ns{margin:-2rem}.na5-ns{margin:-4rem}.na6-ns{margin:-8rem}.na7-ns{margin:-16rem}.nl1-ns{margin-left:-.25rem}.nl2-ns{margin-left:-.5rem}.nl3-ns{margin-left:-1rem}.nl4-ns{margin-left:-2rem}.nl5-ns{margin-left:-4rem}.nl6-ns{margin-left:-8rem}.nl7-ns{margin-left:-16rem}.nr1-ns{margin-right:-.25rem}.nr2-ns{margin-right:-.5rem}.nr3-ns{margin-right:-1rem}.nr4-ns{margin-right:-2rem}.nr5-ns{margin-right:-4rem}.nr6-ns{margin-right:-8rem}.nr7-ns{margin-right:-16rem}.nb1-ns{margin-bottom:-.25rem}.nb2-ns{margin-bottom:-.5rem}.nb3-ns{margin-bottom:-1rem}.nb4-ns{margin-bottom:-2rem}.nb5-ns{margin-bottom:-4rem}.nb6-ns{margin-bottom:-8rem}.nb7-ns{margin-bottom:-16rem}.nt1-ns{margin-top:-.25rem}.nt2-ns{margin-top:-.5rem}.nt3-ns{margin-top:-1rem}.nt4-ns{margin-top:-2rem}.nt5-ns{margin-top:-4rem}.nt6-ns{margin-top:-8rem}.nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em)and (max-width:60em){.na1-m{margin:-.25rem}.na2-m{margin:-.5rem}.na3-m{margin:-1rem}.na4-m{margin:-2rem}.na5-m{margin:-4rem}.na6-m{margin:-8rem}.na7-m{margin:-16rem}.nl1-m{margin-left:-.25rem}.nl2-m{margin-left:-.5rem}.nl3-m{margin-left:-1rem}.nl4-m{margin-left:-2rem}.nl5-m{margin-left:-4rem}.nl6-m{margin-left:-8rem}.nl7-m{margin-left:-16rem}.nr1-m{margin-right:-.25rem}.nr2-m{margin-right:-.5rem}.nr3-m{margin-right:-1rem}.nr4-m{margin-right:-2rem}.nr5-m{margin-right:-4rem}.nr6-m{margin-right:-8rem}.nr7-m{margin-right:-16rem}.nb1-m{margin-bottom:-.25rem}.nb2-m{margin-bottom:-.5rem}.nb3-m{margin-bottom:-1rem}.nb4-m{margin-bottom:-2rem}.nb5-m{margin-bottom:-4rem}.nb6-m{margin-bottom:-8rem}.nb7-m{margin-bottom:-16rem}.nt1-m{margin-top:-.25rem}.nt2-m{margin-top:-.5rem}.nt3-m{margin-top:-1rem}.nt4-m{margin-top:-2rem}.nt5-m{margin-top:-4rem}.nt6-m{margin-top:-8rem}.nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.na1-l{margin:-.25rem}.na2-l{margin:-.5rem}.na3-l{margin:-1rem}.na4-l{margin:-2rem}.na5-l{margin:-4rem}.na6-l{margin:-8rem}.na7-l{margin:-16rem}.nl1-l{margin-left:-.25rem}.nl2-l{margin-left:-.5rem}.nl3-l{margin-left:-1rem}.nl4-l{margin-left:-2rem}.nl5-l{margin-left:-4rem}.nl6-l{margin-left:-8rem}.nl7-l{margin-left:-16rem}.nr1-l{margin-right:-.25rem}.nr2-l{margin-right:-.5rem}.nr3-l{margin-right:-1rem}.nr4-l{margin-right:-2rem}.nr5-l{margin-right:-4rem}.nr6-l{margin-right:-8rem}.nr7-l{margin-right:-16rem}.nb1-l{margin-bottom:-.25rem}.nb2-l{margin-bottom:-.5rem}.nb3-l{margin-bottom:-1rem}.nb4-l{margin-bottom:-2rem}.nb5-l{margin-bottom:-4rem}.nb6-l{margin-bottom:-8rem}.nb7-l{margin-bottom:-16rem}.nt1-l{margin-top:-.25rem}.nt2-l{margin-top:-.5rem}.nt3-l{margin-top:-1rem}.nt4-l{margin-top:-2rem}.nt5-l{margin-top:-4rem}.nt6-l{margin-top:-8rem}.nt7-l{margin-top:-16rem}}.collapse{border-collapse:collapse;border-spacing:0}.striped--light-silver:nth-child(odd){background-color:#aaa}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--light-gray:nth-child(odd){background-color:#eee}.striped--near-white:nth-child(odd){background-color:#f4f4f4}.stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}@media screen and (min-width:30em){.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}}@media screen and (min-width:30em)and (max-width:60em){.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}}.tl{text-align:left}.tr{text-align:right}.tc{text-align:center}.tj{text-align:justify}@media screen and (min-width:30em){.tl-ns{text-align:left}.tr-ns{text-align:right}.tc-ns{text-align:center}.tj-ns{text-align:justify}}@media screen and (min-width:30em)and (max-width:60em){.tl-m{text-align:left}.tr-m{text-align:right}.tc-m{text-align:center}.tj-m{text-align:justify}}@media screen and (min-width:60em){.tl-l{text-align:left}.tr-l{text-align:right}.tc-l{text-align:center}.tj-l{text-align:justify}}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em)and (max-width:60em){.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}@media screen and (min-width:30em){.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}}@media screen and (min-width:30em)and (max-width:60em){.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}}@media screen and (min-width:60em){.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps{font-variant:small-caps}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (min-width:30em){.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-ns{font-variant:small-caps}.truncate-ns{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:30em)and (max-width:60em){.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-m{font-variant:small-caps}.truncate-m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media screen and (min-width:60em){.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{margin-bottom:0;margin-top:0;text-indent:1em}.small-caps-l{font-variant:small-caps}.truncate-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.overflow-container{overflow-y:scroll}.center{margin-left:auto}.center,.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}@media screen and (min-width:30em){.center-ns{margin-left:auto}.center-ns,.mr-auto-ns{margin-right:auto}.ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em)and (max-width:60em){.center-m{margin-left:auto}.center-m,.mr-auto-m{margin-right:auto}.ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.center-l{margin-left:auto}.center-l,.mr-auto-l{margin-right:auto}.ml-auto-l{margin-left:auto}}.clip{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}@media screen and (min-width:30em){.clip-ns{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:30em)and (max-width:60em){.clip-m{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}@media screen and (min-width:60em){.clip-l{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);position:fixed!important;_position:absolute!important}}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}@media screen and (min-width:30em){.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}}@media screen and (min-width:30em)and (max-width:60em){.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}}@media screen and (min-width:60em){.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}}.v-base{vertical-align:baseline}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}@media screen and (min-width:30em){.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em)and (max-width:60em){.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}}.dim{opacity:1}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0;transition:opacity .15s ease-in}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover,ol li a:focus,ol li a:hover,p a:focus,p a:hover,ul li a:focus,ul li a:hover{text-decoration:underline}.grow{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-out}.grow:focus,.grow:hover{transform:scale(1.05)}.grow:active{transform:scale(.9)}.grow-large{-moz-osx-font-smoothing:grayscale;backface-visibility:hidden;transform:translateZ(0);transition:transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{transform:scale(1.2)}.grow-large:active{transform:scale(.95)}.pointer:hover,.shadow-hover{cursor:pointer}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover:after{border-radius:inherit;box-shadow:0 0 16px 2px rgba(0,0,0,.2);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .5s cubic-bezier(.165,.84,.44,1);width:100%;z-index:-1}.shadow-hover:focus:after,.shadow-hover:hover:after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:auto}.z-unset{z-index:unset}.nested-copy-line-height ol,.nested-copy-line-height p,.nested-copy-line-height ul{line-height:1.5}.nested-headline-line-height h1,.nested-headline-line-height h2,.nested-headline-line-height h3,.nested-headline-line-height h4,.nested-headline-line-height h5,.nested-headline-line-height h6{line-height:1.25}.nested-list-reset ol,.nested-list-reset ul{list-style-type:none;margin-left:0;padding-left:0}.nested-copy-indent p+p{margin-bottom:0;margin-top:0;text-indent:.1em}.nested-copy-seperator p+p{margin-top:1.5em}.nested-img img{display:block;max-width:100%;width:100%}.nested-links a{color:#357edd;transition:color .15s ease-in}.nested-links a:focus,.nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.theme-blue-washed-red{background-color:#357edd;color:#ffdfdf;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red b,.theme-blue-washed-red h1,.theme-blue-washed-red h2,.theme-blue-washed-red h3,.theme-blue-washed-red h4,.theme-blue-washed-red h5,.theme-blue-washed-red strong{color:#ffdfdf}.theme-blue-washed-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-blue-washed-red nav a{color:#ffdfdf}.theme-blue-washed-red nav a.active{color:#fff9f9}.theme-blue-washed-red p{color:#ffdfdf}.theme-blue-washed-red p a{color:#ffdfdf;font-weight:700;text-decoration:underline}.theme-blue-washed-red a.post-colophon-link,.theme-blue-washed-red a.post-colophon-link:visited{color:hsla(0,100%,94%,.3)!important}.theme-blue-washed-red hr{border-color:hsla(0,100%,94%,.1)!important;width:90%}.theme-blue-washed-red ol,.theme-blue-washed-red ul{color:#ffdfdf}.theme-blue-washed-red time{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content blockquote{border-color:#ffdfdf!important}.theme-blue-washed-red .markdown-content table:not(.highlight){background-color:#488adf}.theme-blue-washed-red .markdown-content table:not(.highlight) tr{border-color:#e7caca}.theme-blue-washed-red .markdown-content p>code{background-color:hsla(0,100%,94%,.2)!important;color:#ffdfdf!important}.theme-blue-washed-red .markdown-content a.footnote-backref{color:#ffdfdf;font-weight:700}.theme-blue-washed-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-blue-washed-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-green-red{background-color:#e8fdf5;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red b,.theme-washed-green-red h1,.theme-washed-green-red h2,.theme-washed-green-red h3,.theme-washed-green-red h4,.theme-washed-green-red h5,.theme-washed-green-red strong{color:#ff4136}.theme-washed-green-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-green-red nav a{color:#ff4136}.theme-washed-green-red nav a.active{color:#ff5950}.theme-washed-green-red p{color:#ff4136}.theme-washed-green-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-green-red a.post-colophon-link,.theme-washed-green-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-green-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-green-red ol,.theme-washed-green-red ul{color:#ff4136}.theme-washed-green-red time{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-green-red .markdown-content table:not(.highlight){background-color:#e9fcf5}.theme-washed-green-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-green-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-green-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-green-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-green-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-blue-red{background-color:#f6fffe;color:#ff4136;font-family:helvetica neue,helvetica,sans-serif}.theme-washed-blue-red b,.theme-washed-blue-red h1,.theme-washed-blue-red h2,.theme-washed-blue-red h3,.theme-washed-blue-red h4,.theme-washed-blue-red h5,.theme-washed-blue-red strong{color:#ff4136}.theme-washed-blue-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-blue-red nav a{color:#ff4136}.theme-washed-blue-red nav a.active{color:#ff5950}.theme-washed-blue-red p{color:#ff4136}.theme-washed-blue-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-blue-red a.post-colophon-link,.theme-washed-blue-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-blue-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-blue-red ol,.theme-washed-blue-red ul{color:#ff4136}.theme-washed-blue-red time{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-blue-red .markdown-content table:not(.highlight){background-color:#f6fefd}.theme-washed-blue-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-blue-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-blue-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-blue-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-blue-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-washed-yellow-red{background-color:#fffceb;color:#ff4136;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red b,.theme-washed-yellow-red h1,.theme-washed-yellow-red h2,.theme-washed-yellow-red h3,.theme-washed-yellow-red h4,.theme-washed-yellow-red h5,.theme-washed-yellow-red strong{color:#ff4136}.theme-washed-yellow-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-washed-yellow-red nav a{color:#ff4136}.theme-washed-yellow-red nav a.active{color:#ff5950}.theme-washed-yellow-red p{color:#ff4136}.theme-washed-yellow-red p a{color:#ff4136;font-weight:700;text-decoration:underline}.theme-washed-yellow-red a.post-colophon-link,.theme-washed-yellow-red a.post-colophon-link:visited{color:rgba(255,65,54,.3)!important}.theme-washed-yellow-red hr{border-color:rgba(255,65,54,.1)!important;width:90%}.theme-washed-yellow-red ol,.theme-washed-yellow-red ul{color:#ff4136}.theme-washed-yellow-red time{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content blockquote{border-color:#ff4136!important}.theme-washed-yellow-red .markdown-content table:not(.highlight){background-color:#fefbec}.theme-washed-yellow-red .markdown-content table:not(.highlight) tr{border-color:#e73c32}.theme-washed-yellow-red .markdown-content p>code{background-color:rgba(255,65,54,.2)!important;color:#ff4136!important}.theme-washed-yellow-red .markdown-content a.footnote-backref{color:#ff4136;font-weight:700}.theme-washed-yellow-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-washed-yellow-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-navy-light-red{background-color:#001b44;color:#ff725c;font-family:avenir next,avenir,sans-serif}.theme-navy-light-red b,.theme-navy-light-red h1,.theme-navy-light-red h2,.theme-navy-light-red h3,.theme-navy-light-red h4,.theme-navy-light-red h5,.theme-navy-light-red strong{color:#ff725c}.theme-navy-light-red nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-navy-light-red nav a{color:#ff725c}.theme-navy-light-red nav a.active{color:#ff8876}.theme-navy-light-red p{color:#ff725c}.theme-navy-light-red p a{color:#ff725c;font-weight:700;text-decoration:underline}.theme-navy-light-red a.post-colophon-link,.theme-navy-light-red a.post-colophon-link:visited{color:rgba(255,114,92,.3)!important}.theme-navy-light-red hr{border-color:rgba(255,114,92,.1)!important;width:90%}.theme-navy-light-red ol,.theme-navy-light-red ul{color:#ff725c}.theme-navy-light-red time{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content blockquote{border-color:#ff725c!important}.theme-navy-light-red .markdown-content table:not(.highlight){background-color:#183156}.theme-navy-light-red .markdown-content table:not(.highlight) tr{border-color:#e76855}.theme-navy-light-red .markdown-content p>code{background-color:rgba(255,114,92,.2)!important;color:#ff725c!important}.theme-navy-light-red .markdown-content a.footnote-backref{color:#ff725c;font-weight:700}.theme-navy-light-red .markdown-content .grvsc-container{font-size:.875rem!important}.theme-navy-light-red .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-gold{background-color:#111;color:#ffb700;font-family:avenir next,avenir,sans-serif}.theme-near-black-gold b,.theme-near-black-gold h1,.theme-near-black-gold h2,.theme-near-black-gold h3,.theme-near-black-gold h4,.theme-near-black-gold h5,.theme-near-black-gold strong{color:#ffb700}.theme-near-black-gold nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-gold nav a{color:#ffb700}.theme-near-black-gold nav a.active{color:#ffbe1a}.theme-near-black-gold p{color:#ffb700}.theme-near-black-gold p a{color:#ffb700;font-weight:700;text-decoration:underline}.theme-near-black-gold a.post-colophon-link,.theme-near-black-gold a.post-colophon-link:visited{color:rgba(255,183,0,.3)!important}.theme-near-black-gold hr{border-color:rgba(255,183,0,.1)!important;width:90%}.theme-near-black-gold ol,.theme-near-black-gold ul{color:#ffb700}.theme-near-black-gold time{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content blockquote{border-color:#ffb700!important}.theme-near-black-gold .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-gold .markdown-content table:not(.highlight) tr{border-color:#e7a602}.theme-near-black-gold .markdown-content p>code{background-color:rgba(255,183,0,.2)!important;color:#ffb700!important}.theme-near-black-gold .markdown-content a.footnote-backref{color:#ffb700;font-weight:700}.theme-near-black-gold .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-gold .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-near-black-light-yellow{background-color:#111;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow b,.theme-near-black-light-yellow h1,.theme-near-black-light-yellow h2,.theme-near-black-light-yellow h3,.theme-near-black-light-yellow h4,.theme-near-black-light-yellow h5,.theme-near-black-light-yellow strong{color:#fbf1a9}.theme-near-black-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-near-black-light-yellow nav a{color:#fbf1a9}.theme-near-black-light-yellow nav a.active{color:#fcf5c1}.theme-near-black-light-yellow p{color:#fbf1a9}.theme-near-black-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-near-black-light-yellow a.post-colophon-link,.theme-near-black-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-near-black-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-near-black-light-yellow ol,.theme-near-black-light-yellow ul{color:#fbf1a9}.theme-near-black-light-yellow time{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content table:not(.highlight){background-color:#282828}.theme-near-black-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-near-black-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-near-black-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-near-black-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-near-black-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-red-light-yellow{background-color:#ff4136;color:#fbf1a9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow b,.theme-red-light-yellow h1,.theme-red-light-yellow h2,.theme-red-light-yellow h3,.theme-red-light-yellow h4,.theme-red-light-yellow h5,.theme-red-light-yellow strong{color:#fbf1a9}.theme-red-light-yellow nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-red-light-yellow nav a{color:#fbf1a9}.theme-red-light-yellow nav a.active{color:#fcf5c1}.theme-red-light-yellow p{color:#fbf1a9}.theme-red-light-yellow p a{color:#fbf1a9;font-weight:700;text-decoration:underline}.theme-red-light-yellow a.post-colophon-link,.theme-red-light-yellow a.post-colophon-link:visited{color:hsla(53,91%,82%,.3)!important}.theme-red-light-yellow hr{border-color:hsla(53,91%,82%,.1)!important;width:90%}.theme-red-light-yellow ol,.theme-red-light-yellow ul{color:#fbf1a9}.theme-red-light-yellow time{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content blockquote{border-color:#fbf1a9!important}.theme-red-light-yellow .markdown-content table:not(.highlight){background-color:#fe5349}.theme-red-light-yellow .markdown-content table:not(.highlight) tr{border-color:#e4db9a}.theme-red-light-yellow .markdown-content p>code{background-color:hsla(53,91%,82%,.2)!important;color:#fbf1a9!important}.theme-red-light-yellow .markdown-content a.footnote-backref{color:#fbf1a9;font-weight:700}.theme-red-light-yellow .markdown-content .grvsc-container{font-size:.875rem!important}.theme-red-light-yellow .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-purple-light-gray{background-color:#5e2ca5;color:#eee;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray b,.theme-purple-light-gray h1,.theme-purple-light-gray h2,.theme-purple-light-gray h3,.theme-purple-light-gray h4,.theme-purple-light-gray h5,.theme-purple-light-gray strong{color:#eee}.theme-purple-light-gray nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-purple-light-gray nav a{color:#eee}.theme-purple-light-gray nav a.active{color:#fbfbfb}.theme-purple-light-gray p{color:#eee}.theme-purple-light-gray p a{color:#eee;font-weight:700;text-decoration:underline}.theme-purple-light-gray a.post-colophon-link,.theme-purple-light-gray a.post-colophon-link:visited{color:hsla(0,0%,93%,.3)!important}.theme-purple-light-gray hr{border-color:hsla(0,0%,93%,.1)!important;width:90%}.theme-purple-light-gray ol,.theme-purple-light-gray ul{color:#eee}.theme-purple-light-gray time{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content blockquote{border-color:#eee!important}.theme-purple-light-gray .markdown-content table:not(.highlight){background-color:#6d40ad}.theme-purple-light-gray .markdown-content table:not(.highlight) tr{border-color:#d8d8d8}.theme-purple-light-gray .markdown-content p>code{background-color:hsla(0,0%,93%,.2)!important;color:#eee!important}.theme-purple-light-gray .markdown-content a.footnote-backref{color:#eee;font-weight:700}.theme-purple-light-gray .markdown-content .grvsc-container{font-size:.875rem!important}.theme-purple-light-gray .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-light-gray-purple{background-color:#eee;color:#5e2ca5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple b,.theme-light-gray-purple h1,.theme-light-gray-purple h2,.theme-light-gray-purple h3,.theme-light-gray-purple h4,.theme-light-gray-purple h5,.theme-light-gray-purple strong{color:#5e2ca5}.theme-light-gray-purple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-light-gray-purple nav a{color:#5e2ca5}.theme-light-gray-purple nav a.active{color:#6931b9}.theme-light-gray-purple p{color:#5e2ca5}.theme-light-gray-purple p a{color:#5e2ca5;font-weight:700;text-decoration:underline}.theme-light-gray-purple a.post-colophon-link,.theme-light-gray-purple a.post-colophon-link:visited{color:rgba(94,44,165,.3)!important}.theme-light-gray-purple hr{border-color:rgba(94,44,165,.1)!important;width:90%}.theme-light-gray-purple ol,.theme-light-gray-purple ul{color:#5e2ca5}.theme-light-gray-purple time{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content blockquote{border-color:#5e2ca5!important}.theme-light-gray-purple .markdown-content table:not(.highlight){background-color:#efefef}.theme-light-gray-purple .markdown-content table:not(.highlight) tr{border-color:#562996}.theme-light-gray-purple .markdown-content p>code{background-color:rgba(94,44,165,.2)!important;color:#5e2ca5!important}.theme-light-gray-purple .markdown-content a.footnote-backref{color:#5e2ca5;font-weight:700}.theme-light-gray-purple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-light-gray-purple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-run{background-color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run,.theme-run b,.theme-run h1,.theme-run h2,.theme-run h3,.theme-run h4,.theme-run h5,.theme-run strong{color:#e0ed5e}.theme-run nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-run nav a{color:#e0ed5e}.theme-run nav a.active{color:#e4f075}.theme-run p{color:#e0ed5e}.theme-run p a{color:#e0ed5e;font-weight:700;text-decoration:underline}.theme-run a.post-colophon-link,.theme-run a.post-colophon-link:visited{color:rgba(224,237,94,.3)!important}.theme-run hr{border-color:rgba(224,237,94,.1)!important;width:90%}.theme-run ol,.theme-run ul{color:#e0ed5e}.theme-run time{color:#e0ed5e;font-weight:700}.theme-run .markdown-content blockquote{border-color:#e0ed5e!important}.theme-run .markdown-content table:not(.highlight){background-color:#303030}.theme-run .markdown-content table:not(.highlight) tr{border-color:#cbd756}.theme-run .markdown-content p>code{background-color:rgba(224,237,94,.2)!important;color:#e0ed5e!important}.theme-run .markdown-content a.footnote-backref{color:#e0ed5e;font-weight:700}.theme-run .markdown-content .grvsc-container{font-size:.875rem!important}.theme-run .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-sign-in-with-apple{background-color:#f4f4f4;color:#000;font-family:San Francisco,helvetica neue,helvetica,sans-serif}.theme-sign-in-with-apple b,.theme-sign-in-with-apple h1,.theme-sign-in-with-apple h2,.theme-sign-in-with-apple h3,.theme-sign-in-with-apple h4,.theme-sign-in-with-apple h5,.theme-sign-in-with-apple strong{color:#000}.theme-sign-in-with-apple nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-sign-in-with-apple nav a{color:#000}.theme-sign-in-with-apple nav a.active{color:#0d0d0d}.theme-sign-in-with-apple p{color:#000}.theme-sign-in-with-apple p a{color:#000;font-weight:700;text-decoration:underline}.theme-sign-in-with-apple a.post-colophon-link,.theme-sign-in-with-apple a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.theme-sign-in-with-apple hr{border-color:rgba(0,0,0,.1)!important;width:90%}.theme-sign-in-with-apple ol,.theme-sign-in-with-apple ul{color:#000}.theme-sign-in-with-apple time{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content blockquote{border-color:#000!important}.theme-sign-in-with-apple .markdown-content table:not(.highlight){background-color:#f4f4f4}.theme-sign-in-with-apple .markdown-content table:not(.highlight) tr{border-color:#020202}.theme-sign-in-with-apple .markdown-content p>code{background-color:rgba(0,0,0,.2)!important;color:#000!important}.theme-sign-in-with-apple .markdown-content a.footnote-backref{color:#000;font-weight:700}.theme-sign-in-with-apple .markdown-content .grvsc-container{font-size:.875rem!important}.theme-sign-in-with-apple .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-checklist-manifesto{background-color:#fbf8de;color:#db572b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto b,.theme-checklist-manifesto h1,.theme-checklist-manifesto h2,.theme-checklist-manifesto h3,.theme-checklist-manifesto h4,.theme-checklist-manifesto h5,.theme-checklist-manifesto strong{color:#db572b}.theme-checklist-manifesto nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-checklist-manifesto nav a{color:#db572b}.theme-checklist-manifesto nav a.active{color:#df6841}.theme-checklist-manifesto p{color:#db572b}.theme-checklist-manifesto p a{color:#db572b;font-weight:700;text-decoration:underline}.theme-checklist-manifesto a.post-colophon-link,.theme-checklist-manifesto a.post-colophon-link:visited{color:rgba(219,87,43,.3)!important}.theme-checklist-manifesto hr{border-color:rgba(219,87,43,.1)!important;width:90%}.theme-checklist-manifesto ol,.theme-checklist-manifesto ul{color:#db572b}.theme-checklist-manifesto time{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content blockquote{border-color:#db572b!important}.theme-checklist-manifesto .markdown-content table:not(.highlight){background-color:#faf8e0}.theme-checklist-manifesto .markdown-content table:not(.highlight) tr{border-color:#c75028}.theme-checklist-manifesto .markdown-content p>code{background-color:rgba(219,87,43,.2)!important;color:#db572b!important}.theme-checklist-manifesto .markdown-content a.footnote-backref{color:#db572b;font-weight:700}.theme-checklist-manifesto .markdown-content .grvsc-container{font-size:.875rem!important}.theme-checklist-manifesto .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-enron{background-color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron,.theme-enron b,.theme-enron h1,.theme-enron h2,.theme-enron h3,.theme-enron h4,.theme-enron h5,.theme-enron strong{color:#9eebcf}.theme-enron nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-enron nav a{color:#9eebcf}.theme-enron nav a.active{color:#b3efd9}.theme-enron p{color:#9eebcf}.theme-enron p a{color:#9eebcf;font-weight:700;text-decoration:underline}.theme-enron a.post-colophon-link,.theme-enron a.post-colophon-link:visited{color:rgba(158,235,207,.3)!important}.theme-enron hr{border-color:rgba(158,235,207,.1)!important;width:90%}.theme-enron ol,.theme-enron ul{color:#9eebcf}.theme-enron time{color:#9eebcf;font-weight:700}.theme-enron .markdown-content blockquote{border-color:#9eebcf!important}.theme-enron .markdown-content table:not(.highlight){background-color:#282828}.theme-enron .markdown-content table:not(.highlight) tr{border-color:#90d5bc}.theme-enron .markdown-content p>code{background-color:rgba(158,235,207,.2)!important;color:#9eebcf!important}.theme-enron .markdown-content a.footnote-backref{color:#9eebcf;font-weight:700}.theme-enron .markdown-content .grvsc-container{font-size:.875rem!important}.theme-enron .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.theme-boardgames{background-color:#daedf0;background:linear-gradient(240deg,#6c95c7,#daedf0 26%,#d4ebed 39%,#bbe1e0 63%,#f2eee1);color:#111;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames b,.theme-boardgames h1,.theme-boardgames h2,.theme-boardgames h3,.theme-boardgames h4,.theme-boardgames h5,.theme-boardgames strong{color:#111}.theme-boardgames nav{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.theme-boardgames nav a{color:#111}.theme-boardgames nav a.active{color:#1e1e1e}.theme-boardgames p{color:#111}.theme-boardgames p a{color:#111;font-weight:700;text-decoration:underline}.theme-boardgames a.post-colophon-link,.theme-boardgames a.post-colophon-link:visited{color:hsla(0,0%,7%,.3)!important}.theme-boardgames hr{border-color:hsla(0,0%,7%,.1)!important;width:90%}.theme-boardgames ol,.theme-boardgames ul{color:#111}.theme-boardgames time{color:#111;font-weight:700}.theme-boardgames .markdown-content blockquote{border-color:#111!important}.theme-boardgames .markdown-content table:not(.highlight){background-color:#ddeef0}.theme-boardgames .markdown-content table:not(.highlight) tr{border-color:#111}.theme-boardgames .markdown-content p>code{background-color:hsla(0,0%,7%,.2)!important;color:#111!important}.theme-boardgames .markdown-content a.footnote-backref{color:#111;font-weight:700}.theme-boardgames .markdown-content .grvsc-container{font-size:.875rem!important}.theme-boardgames .markdown-content .grvsc-container .grvsc-line{padding:0 1rem}img::selection{background:transparent}img::-moz-selection{background:transparent}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:400;text-rendering:optimizeLegibility}iframe{border:none}hr{border-top:none}a.post-colophon-link,a.post-colophon-link:visited{color:rgba(0,0,0,.3)!important}.gist table tr:last-child{border-bottom:1px}h2 .header-link,h3 .header-link{margin-top:2rem}h5 .header-link{margin-top:-.14rem}.markdown-content .grvsc-container{font-size:.875rem!important}.markdown-content .grvsc-container::-webkit-scrollbar{display:none}.markdown-content .grvsc-container .grvsc-line{padding:0 1rem}.markdown-content .gatsby-resp-image-wrapper{margin-top:1rem}.style-module--body--a1572{background-color:#1a1a1a;color:#e0ed5e}.style-module--body--a1572 a,.style-module--body--a1572 h1,.style-module--body--a1572 h3,.style-module--body--a1572 h4,.style-module--body--a1572 li,.style-module--body--a1572 p{color:#e0ed5e;text-decoration:none}.style-module--body--a1572 h1{font-size:3rem;font-weight:700}.style-module--yearSVG--347ec{border:0;height:65%;margin:1rem 0 0;padding:0;width:65%}.style-module--locationSVG--2adbd{border:0;height:100%;margin:1rem 0 0;padding:0;width:100%}.style-module--buttons--4da44{margin:0 auto;padding-right:70px}.style-module--button--1573e{color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1rem;margin-top:.1rem;padding:1.3rem .4rem;position:relative;text-align:center}.style-module--fullscreenButton--4aa1d{opacity:.3;padding:1.2rem;right:0;top:0}.style-module--runTitle--09504{bottom:0;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:29px;left:120px;position:absolute;width:710px}@media only screen and (max-width:700px){.style-module--runTable--84570 td:nth-child(4),.style-module--runTable--84570 th:nth-child(4){display:none}}.style-module--runTable--84570{font-variant:tabular-nums;margin:2rem 0 5rem;width:100%}.style-module--runTable--84570 thead{color:#ccc;text-align:right}.style-module--runTable--84570 thead th{padding:.5rem}.style-module--runRow--42c85 td{border:0;padding:.5rem;text-align:right}.style-module--runRow--42c85 td:first-child{text-align:left}.style-module--runRow--42c85:hover{background-color:#222}.style-module--tableContainer--b302a{overflow-x:scroll;width:100%}.style-module--runDate--b8f52{color:#ccc}.style-module--runSVG--e35c5{height:250%;margin:1rem 0 0;width:100%}Running Page

Running Page

我用 App 记录自己跑步 12 年了,下面列表展示的是 2023 的数据


2023 Journey
15 Runs
29.2 KM
6'41" Avg Pace
11 day Streak

2022 Journey
281 Runs
758.2 KM
6'07" Avg Pace
21 day Streak
158 Avg Heart Rate

2021 Journey
337 Runs
1244 KM
5'39" Avg Pace
130 day Streak
158 Avg Heart Rate

2020 Journey
359 Runs
1284 KM
5'37" Avg Pace
138 day Streak
156 Avg Heart Rate

2019 Journey
274 Runs
1,344.4 KM
5'20" Avg Pace
103 day Streak
159 Avg Heart Rate

2018 Journey
171 Runs
405.5 KM
5'32" Avg Pace
65 day Streak
156 Avg Heart Rate

2017 Journey
202 Runs
963.6 KM
4'59" Avg Pace
170 day Streak

2016 Journey
217 Runs
900.8 KM
5'27" Avg Pace
70 day Streak

2015 Journey
135 Runs
436.4 KM
5'35" Avg Pace
9 day Streak

2014 Journey
156 Runs
822.9 KM
5'29" Avg Pace
31 day Streak

2013 Journey
153 Runs
790.1 KM
4'52" Avg Pace
14 day Streak

2012 Journey
67 Runs
386.7 KM
5'43" Avg Pace
35 day Streak

Total Journey
2367 Runs
9,365.9 KM
5'28" Avg Pace
170 day Streak
158 Avg Heart Rate

KMPaceBPMTimeDate
清晨跑步2.056'33"13min2023-01-19 08:42:37
清晨跑步1.326'21"8min2023-01-18 08:16:39
清晨跑步1.046'34"6min2023-01-13 09:16:01
清晨跑步3.146'48"21min2023-01-12 08:08:18
清晨跑步2.056'28"13min2023-01-11 08:14:19
清晨跑步3.076'54"21min2023-01-10 08:47:55
傍晚跑步2.126'46"14min2023-01-09 21:00:02
清晨跑步1.256'49"8min2023-01-09 08:32:43
清晨跑步2.066'53"14min2023-01-08 10:08:06
傍晚跑步2.576'27"16min2023-01-07 20:02:16
清晨跑步2.316'47"15min2023-01-06 08:49:20
清晨跑步2.086'24"13min2023-01-05 09:05:36
清晨跑步1.566'53"10min2023-01-04 08:57:45
傍晚跑步1.566'56"10min2023-01-03 20:14:01
傍晚跑步1.036'26"6min2023-01-01 21:11:05
\ No newline at end of file diff --git a/offline-plugin-app-shell-fallback/index.html b/offline-plugin-app-shell-fallback/index.html index ba4f59dea6a..c3e43d0565b 100644 --- a/offline-plugin-app-shell-fallback/index.html +++ b/offline-plugin-app-shell-fallback/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index 1322269d9f0..0d8e77bf877 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"f70b32efed8bbc144eee"} +{"webpackCompilationHash":"5a542ede230830ae7211"} diff --git a/sw.js b/sw.js index b2244cece38..f12f320f614 100644 --- a/sw.js +++ b/sw.js @@ -27,7 +27,7 @@ workbox.core.clientsClaim(); */ self.__precacheManifest = [ { - "url": "webpack-runtime-1418264453e8807e0048.js" + "url": "webpack-runtime-3a0e605e9f817cf44edb.js" }, { "url": "framework-8092182b2c8a45123cff.js" @@ -37,7 +37,7 @@ self.__precacheManifest = [ }, { "url": "offline-plugin-app-shell-fallback/index.html", - "revision": "4c40809154e97f0740865f8c18c641e9" + "revision": "74803267e78e3df3c3d45a17f78049b1" }, { "url": "polyfill-14854c9902868fed1421.js" diff --git a/webpack-runtime-3a0e605e9f817cf44edb.js b/webpack-runtime-3a0e605e9f817cf44edb.js new file mode 100644 index 00000000000..7885795bd59 --- /dev/null +++ b/webpack-runtime-3a0e605e9f817cf44edb.js @@ -0,0 +1,2 @@ +!function(){"use strict";var e,t,n,r,o,f,a,i={},c={};function u(e){var t=c[e];if(void 0!==t)return t.exports;var n=c[e]={exports:{}};return i[e].call(n.exports,n,n.exports,u),n.exports}u.m=i,e=[],u.O=function(t,n,r,o){if(!n){var f=1/0;for(d=0;d=o)&&Object.keys(u.O).every((function(e){return u.O[e](n[i])}))?n.splice(i--,1):(a=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,r,o]},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},u.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);u.r(o);var f={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){f[t]=function(){return e[t]}}));return f.default=function(){return e},u.d(o,f),o},u.d=function(e,t){for(var n in t)u.o(t,n)&&!u.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},u.f={},u.e=function(e){return Promise.all(Object.keys(u.f).reduce((function(t,n){return u.f[n](e,t),t}),[]))},u.u=function(e){return({230:"component---src-pages-index-jsx",256:"component---src-pages-404-jsx",306:"component---cache-caches-gatsby-plugin-offline-app-shell-js",345:"2525ca2b4881fe9911cbb8081340847caf7a19a3",532:"styles",594:"0c264786",732:"b452aa78",733:"e73e9428"}[e]||e)+"-"+{60:"1d8289dae26785612d29",164:"7be03a6742f9c94093e5",196:"2b00ff54690eba46f32e",230:"1e690ff2353b33d0340b",252:"21e066216f7f3fd6ece0",256:"e839d02d6cd6e0b6a12f",306:"4a3c7adca3cda207b1cf",312:"9ce1f34be43df1159a2d",345:"ef1ab36de0c7abcc9296",425:"7e2b2162ba4c3225ebb7",484:"93565d1c070aa8692269",494:"3b1b68fbba861d189c39",532:"0997b68c0b7889281f1e",539:"1da2800cf5df02c4b163",594:"f988be5816acd0e33178",732:"e94bfef909c4a577698a",733:"08c668de8122c0051088",746:"9260140a36aa0fae7e6b",881:"befcdc913233a8ead92d",895:"9c8c78f5eaf9b9bfe526"}[e]+".js"},u.miniCssF=function(e){return"styles.47c359b7d2003ef3ac91.css"},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="yihong.run:",u.l=function(e,t,n,f){if(r[e])r[e].push(t);else{var a,i;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"yihong.run:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t658: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"532\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"230\":\"component---src-pages-index-jsx\",\"256\":\"component---src-pages-404-jsx\",\"306\":\"component---cache-caches-gatsby-plugin-offline-app-shell-js\",\"345\":\"2525ca2b4881fe9911cbb8081340847caf7a19a3\",\"532\":\"styles\",\"594\":\"0c264786\",\"732\":\"b452aa78\",\"733\":\"e73e9428\"}[chunkId] || chunkId) + \"-\" + {\"60\":\"1d8289dae26785612d29\",\"164\":\"7be03a6742f9c94093e5\",\"196\":\"2b00ff54690eba46f32e\",\"230\":\"1e690ff2353b33d0340b\",\"252\":\"21e066216f7f3fd6ece0\",\"256\":\"e839d02d6cd6e0b6a12f\",\"306\":\"4a3c7adca3cda207b1cf\",\"312\":\"9ce1f34be43df1159a2d\",\"345\":\"ef1ab36de0c7abcc9296\",\"425\":\"7e2b2162ba4c3225ebb7\",\"484\":\"93565d1c070aa8692269\",\"494\":\"3b1b68fbba861d189c39\",\"532\":\"0997b68c0b7889281f1e\",\"539\":\"1da2800cf5df02c4b163\",\"594\":\"f988be5816acd0e33178\",\"732\":\"e94bfef909c4a577698a\",\"733\":\"08c668de8122c0051088\",\"746\":\"9260140a36aa0fae7e6b\",\"881\":\"befcdc913233a8ead92d\",\"895\":\"9c8c78f5eaf9b9bfe526\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"47c359b7d2003ef3ac91\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/running_page/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkyihong_run\"] = self[\"webpackChunkyihong_run\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","loadStylesheet","installedCssChunks","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","resolve","reject","href","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","linkTag","errorType","realHref","err","Error","code","request","createStylesheet","miniCss","installedChunks","installedChunkData","test","promise","error","realSrc","message","name","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack.stats.json b/webpack.stats.json index 385fd89e6e2..03dfa3a15a9 100644 --- a/webpack.stats.json +++ b/webpack.stats.json @@ -1 +1 @@ -{"name":"build-javascript","namedChunkGroups":{"polyfill":{"name":"polyfill","assets":[{"name":"webpack-runtime-1418264453e8807e0048.js","size":5480},{"name":"polyfill-14854c9902868fed1421.js","size":85015}],"filteredAssets":0,"assetsSize":90495,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":231657},"app":{"name":"app","assets":[{"name":"webpack-runtime-1418264453e8807e0048.js","size":5480},{"name":"framework-8092182b2c8a45123cff.js","size":129751},{"name":"app-d6a0d74c9eeb9da29510.js","size":78143}],"filteredAssets":0,"assetsSize":213374,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":652427},"component---cache-caches-gatsby-plugin-offline-app-shell-js":{"name":"component---cache-caches-gatsby-plugin-offline-app-shell-js","assets":[{"name":"component---cache-caches-gatsby-plugin-offline-app-shell-js-4a3c7adca3cda207b1cf.js","size":515}],"filteredAssets":0,"assetsSize":515,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1665},"component---src-pages-404-jsx":{"name":"component---src-pages-404-jsx","assets":[{"name":"styles.47c359b7d2003ef3ac91.css","size":161247},{"name":"2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","size":16397},{"name":"component---src-pages-404-jsx-e839d02d6cd6e0b6a12f.js","size":565}],"filteredAssets":0,"assetsSize":178209,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":69038},"component---src-pages-index-jsx":{"name":"component---src-pages-index-jsx","assets":[{"name":"styles.47c359b7d2003ef3ac91.css","size":161247},{"name":"b452aa78-e94bfef909c4a577698a.js","size":2244975},{"name":"e73e9428-08c668de8122c0051088.js","size":643782},{"name":"0c264786-f988be5816acd0e33178.js","size":763759},{"name":"2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","size":16397},{"name":"component---src-pages-index-jsx-979b824342c0e6fe276a.js","size":240450}],"filteredAssets":0,"assetsSize":4070610,"filteredAuxiliaryAssets":5,"auxiliaryAssetsSize":6756762}},"assetsByChunkName":{"polyfill":["webpack-runtime-1418264453e8807e0048.js","polyfill-14854c9902868fed1421.js"],"app":["webpack-runtime-1418264453e8807e0048.js","framework-8092182b2c8a45123cff.js","app-d6a0d74c9eeb9da29510.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["component---cache-caches-gatsby-plugin-offline-app-shell-js-4a3c7adca3cda207b1cf.js"],"component---src-pages-404-jsx":["styles.47c359b7d2003ef3ac91.css","2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","component---src-pages-404-jsx-e839d02d6cd6e0b6a12f.js"],"component---src-pages-index-jsx":["styles.47c359b7d2003ef3ac91.css","b452aa78-e94bfef909c4a577698a.js","e73e9428-08c668de8122c0051088.js","0c264786-f988be5816acd0e33178.js","2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","component---src-pages-index-jsx-979b824342c0e6fe276a.js"]},"childAssetsByChunkName":{}} \ No newline at end of file +{"name":"build-javascript","namedChunkGroups":{"polyfill":{"name":"polyfill","assets":[{"name":"webpack-runtime-3a0e605e9f817cf44edb.js","size":5480},{"name":"polyfill-14854c9902868fed1421.js","size":85015}],"filteredAssets":0,"assetsSize":90495,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":231657},"app":{"name":"app","assets":[{"name":"webpack-runtime-3a0e605e9f817cf44edb.js","size":5480},{"name":"framework-8092182b2c8a45123cff.js","size":129751},{"name":"app-d6a0d74c9eeb9da29510.js","size":78143}],"filteredAssets":0,"assetsSize":213374,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":652427},"component---cache-caches-gatsby-plugin-offline-app-shell-js":{"name":"component---cache-caches-gatsby-plugin-offline-app-shell-js","assets":[{"name":"component---cache-caches-gatsby-plugin-offline-app-shell-js-4a3c7adca3cda207b1cf.js","size":515}],"filteredAssets":0,"assetsSize":515,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1665},"component---src-pages-404-jsx":{"name":"component---src-pages-404-jsx","assets":[{"name":"styles.47c359b7d2003ef3ac91.css","size":161247},{"name":"2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","size":16397},{"name":"component---src-pages-404-jsx-e839d02d6cd6e0b6a12f.js","size":565}],"filteredAssets":0,"assetsSize":178209,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":69038},"component---src-pages-index-jsx":{"name":"component---src-pages-index-jsx","assets":[{"name":"styles.47c359b7d2003ef3ac91.css","size":161247},{"name":"b452aa78-e94bfef909c4a577698a.js","size":2244975},{"name":"e73e9428-08c668de8122c0051088.js","size":643782},{"name":"0c264786-f988be5816acd0e33178.js","size":763759},{"name":"2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","size":16397},{"name":"component---src-pages-index-jsx-1e690ff2353b33d0340b.js","size":240541}],"filteredAssets":0,"assetsSize":4070701,"filteredAuxiliaryAssets":5,"auxiliaryAssetsSize":6757279}},"assetsByChunkName":{"polyfill":["webpack-runtime-3a0e605e9f817cf44edb.js","polyfill-14854c9902868fed1421.js"],"app":["webpack-runtime-3a0e605e9f817cf44edb.js","framework-8092182b2c8a45123cff.js","app-d6a0d74c9eeb9da29510.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["component---cache-caches-gatsby-plugin-offline-app-shell-js-4a3c7adca3cda207b1cf.js"],"component---src-pages-404-jsx":["styles.47c359b7d2003ef3ac91.css","2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","component---src-pages-404-jsx-e839d02d6cd6e0b6a12f.js"],"component---src-pages-index-jsx":["styles.47c359b7d2003ef3ac91.css","b452aa78-e94bfef909c4a577698a.js","e73e9428-08c668de8122c0051088.js","0c264786-f988be5816acd0e33178.js","2525ca2b4881fe9911cbb8081340847caf7a19a3-ef1ab36de0c7abcc9296.js","component---src-pages-index-jsx-1e690ff2353b33d0340b.js"]},"childAssetsByChunkName":{}} \ No newline at end of file