Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Story written by The Happy Panda
--------------------------------------------------------------------------------
/examples/document/dist/index.html:
--------------------------------------------------------------------------------
1 | Elm App
The Happy Panda
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
15 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
16 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
17 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
18 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
19 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
20 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
21 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
22 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
23 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
24 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
25 |
26 |
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
27 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
28 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
29 | consequat.
30 |
Duis aute irure dolor in reprehenderit in voluptate velit esse
31 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
32 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
33 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
34 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
35 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
36 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
37 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
38 |
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
15 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
16 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
17 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
18 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
19 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
20 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
21 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
22 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
23 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
24 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
25 |
26 |
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
27 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
28 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
29 | consequat.
30 |
Duis aute irure dolor in reprehenderit in voluptate velit esse
31 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
32 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
33 | tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
34 | quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
35 | consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
36 | cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
37 | proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
38 |
39 |
Story written by The Happy Panda
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/ScrollProgress.elm:
--------------------------------------------------------------------------------
1 | module ScrollProgress exposing (..)
2 |
3 | {-| ScrollProgress functions and Msg.
4 |
5 | # Model
6 | @docs Model, ScrollAttributes, initialModel
7 |
8 | # Message
9 | @docs Msg
10 |
11 | # Update function
12 | @docs update, calculateProgress
13 |
14 | # View function
15 | @docs view
16 |
17 | -}
18 |
19 | import Html exposing (Html, text, div)
20 | import Html.App as App
21 | import Html.Attributes exposing (style, class)
22 |
23 |
24 | {-| A type representing a model.
25 | -}
26 | type alias Model =
27 | { progress : Int
28 | , color : Maybe String
29 | , from : Maybe String
30 | , to : Maybe String
31 | }
32 |
33 |
34 | {-| A type representing the arrtibutes we're expecting 'on scroll'.
35 | -}
36 | type alias ScrollAttributes =
37 | { scrollTop : Int
38 | , targetScrollHeight : Int
39 | , clientHeight : Int
40 | }
41 |
42 |
43 | {-| Initalize the model
44 | -}
45 | initialModel : Model
46 | initialModel =
47 | { progress = 0
48 | , color = Just "#1684f6"
49 | , from = Nothing
50 | , to = Nothing
51 | }
52 |
53 |
54 | {-| A union type representing The Elm Architect's `Msg`
55 | -}
56 | type Msg
57 | = Progress ScrollAttributes
58 |
59 |
60 | {-| A function to calculate the percentage an element has been scrolled
61 | -}
62 | calculateProgress : ScrollAttributes -> Int
63 | calculateProgress attributes =
64 | let
65 | scrollTop =
66 | toFloat attributes.scrollTop
67 |
68 | targetScrollHeight =
69 | toFloat attributes.targetScrollHeight
70 |
71 | clientHeight =
72 | toFloat attributes.clientHeight
73 |
74 | progress =
75 | scrollTop
76 | / (targetScrollHeight - clientHeight)
77 | * 100
78 | |> ceiling
79 | in
80 | if progress > 100 then
81 | 100
82 | else if progress < 0 then
83 | 0
84 | else
85 | progress
86 |
87 |
88 | {-| The Elm Architect's update function.
89 | -}
90 | update : Msg -> Model -> ( Model, Cmd Msg )
91 | update msg model =
92 | case msg of
93 | Progress attributes ->
94 | ( { model | progress = calculateProgress attributes }, Cmd.none )
95 |
96 |
97 | {-| A view function that will render the scroll progress ekement.
98 | -}
99 | view : Model -> Html Msg
100 | view model =
101 | let
102 | color =
103 | Maybe.withDefault "" model.color
104 |
105 | from =
106 | Maybe.withDefault "" model.from
107 |
108 | to =
109 | Maybe.withDefault "" model.to
110 |
111 | background =
112 | if color == "" && from /= "" && to /= "" then
113 | [ ( "background", from )
114 | , ( "background", "linear-gradient( to right, " ++ from ++ ", " ++ to ++ " )" )
115 | ]
116 | else if color /= "" then
117 | [ ( "background", color ) ]
118 | else
119 | [ ( "background", "red" ) ]
120 |
121 | transition =
122 | [ ( "transition", "0.1s width" )
123 | , ( "width", (toString model.progress) ++ "%" )
124 | ]
125 |
126 | styles =
127 | List.append background transition
128 | in
129 | div
130 | [ class "scroll-progress"
131 | , style styles
132 | ]
133 | []
134 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # elm-scroll-progress
2 |
3 | Add a scroll progress indicator and track the `scrollTop` position of your app or a specific element.
4 |
5 | ```shell
6 | elm package install chrisbuttery/elm-scroll-progress
7 | ```
8 |
9 | ### Examples
10 | You can scope to a specific element (e.g. and article) or to the document.
11 |
12 | [Article](http://chrisbuttery.github.io/elm-scroll-progress/examples/article/dist/index.html) | [Document](http://chrisbuttery.github.io/elm-scroll-progress/examples/document/dist/index.html)
13 |
14 | ## Usage
15 |
16 | 1. Import the module.
17 | 2. Create a new parent Msg type referencing the `ScrollProgress` `Msg`.
18 | 3. Subscribe to an incoming port, ensuring incoming data is passed back to `ScrollProgress.Progress`.
19 | 4. Cater for the ProgressMsg in your `update` function.
20 | 5. Map emitted messages from `ScrollProgress.view` to the type teh parent view expects (Msg).
21 |
22 |
23 | ```elm
24 | module Main exposing (..)
25 | import ScrollProgress exposing (..)
26 |
27 | -- MESSAGES
28 |
29 | type Msg
30 | = ProgressMsg ScrollProgress.Msg
31 |
32 | -- SUBSCRIPTIONS
33 |
34 | subscriptions : Model -> Sub Msg
35 | subscriptions model =
36 | Ports.onScroll (ProgressMsg << ScrollProgress.Progress)
37 |
38 | -- UPDATE
39 |
40 | update : Msg -> AppModel -> ( AppModel, Cmd Msg )
41 | update message model =
42 | case message of
43 | ProgressMsg subMsg ->
44 | let
45 | ( updatedProgessModel, progressCmd ) =
46 | ScrollProgress.update subMsg model.progressModel
47 | in
48 | ( { model | progressModel = updatedProgessModel }, Cmd.map ProgressMsg progressCmd )
49 |
50 | --VIEW
51 |
52 | view : AppModel -> Html Msg
53 | view model =
54 | Html.div []
55 | [ Html.App.map ProgressMsg (ScrollProgress.view model.progressModel)
56 | , Html.h1 [] [ text "Read this " ]
57 | , Html.div [] [ text "Some article..." ]
58 | ]
59 | ```
60 |
61 | Define an incoming port in your `Ports.elm` so JavaScript can pass in scrolling attributes.
62 |
63 | ```elm
64 | port module Ports exposing (..)
65 | import ProgressBar exposing (ScrollAttributes)
66 |
67 | port onScroll : (ScrollAttributes -> msg) -> Sub msg
68 | ```
69 |
70 | In your JavaScript, add an eventListener to listen for the "scroll" event on the `window`.
71 | You can choose to target the document or a specifc element's `targetScrollHeight`.
72 |
73 | ```js
74 | var app = Elm.Main.embed(root);
75 |
76 | var target = document.querySelector('.some-article');
77 | // or target the full page height with:
78 | // target = document.documentElement;
79 |
80 | window.addEventListener('scroll', function() {
81 | app.ports.onScroll.send({
82 | scrollTop: document.documentElement.scrollTop || document.body.scrollTop,
83 | targetScrollHeight: target.scrollHeight,
84 | clientHeight: document.documentElement.clientHeight
85 | });
86 | });
87 | ```
88 | Note: For this to work in Firefox, we need to check for `document.documentElement.scrollTop` otherwise fallback to `document.body.scrollTop`.
89 |
90 | ## Overrides
91 |
92 | All types for defining colors are `Maybe String`.
93 | By default, the color of the progress scale is defined as `Just #1684f6` however these `String` values can be whatever CSS colors you wish e.g: `"#336699"`, `"honeydew"`, `"rgba(0,0,0,0.5)"`, etc.
94 |
95 | You can choose to overide this color or include a linear gradient.
96 |
97 | To override the color of the element, define a new model for the Child inside of the Parent.
98 |
99 | ```elm
100 | module Main exposing (..)
101 | import ScrollProgress exposing (..)
102 |
103 | type alias AppModel =
104 | { progressModel : ScrollProgress.Model
105 | }
106 |
107 | newChildModel : ScrollProgress.Model
108 | newChildModel =
109 | { progress = 0
110 | , color = Just "hotpink"
111 | , from = Nothing
112 | , to = Nothing
113 | }
114 |
115 | initialModel : AppModel
116 | initialModel =
117 | { progressModel = newChildModel }
118 | ```
119 |
120 | To replace a flat color for a linear gradient, populate the `from` and `to` properties.
121 |
122 | ```elm
123 | newChildModel : ScrollProgress.Model
124 | newChildModel =
125 | { progress = 0
126 | , color = Nothing
127 | , from = Just "lightseagreen"
128 | , to = Just "lightsalmon"
129 | }
130 | ```
131 |
132 | # Building examples
133 |
134 | Install [Create Elm App](https://github.com/halfzebra/create-elm-app) and run `elm-app build` or `elm-app start` inside of `examples/article` & `examples/body`.
135 |
136 | Thanks goes to [Michael Troy](https://github.com/michaeltroy) for creating the examples.
137 |
138 | > [chrisbuttery.com](http://chrisbuttery.com) ·
139 | > GitHub [@chrisbuttery](https://github.com/chrisbuttery) ·
140 | > Twitter [@buttahz](https://twitter.com/buttahz) ·
141 | > elm-lang slack [@butters](http://elmlang.herokuapp.com/)
142 |
--------------------------------------------------------------------------------
/examples/document/dist/js/main.eab5c38b.js:
--------------------------------------------------------------------------------
1 | !function(t){function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{},id:n,loaded:!1};return t[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var e={};return r.m=t,r.c=e,r.p="",r(0)}([function(t,r,e){t.exports=e(1)},function(t,r,e){e(2);const n=e(7),o=document.getElementById("root"),a=n.Main.embed(o),i=document.documentElement;window.addEventListener("scroll",function(){a.ports.onScroll.send({scrollTop:document.documentElement.scrollTop||document.body.scrollTop,targetScrollHeight:i.scrollHeight,clientHeight:document.documentElement.clientHeight})})},function(t,r,e){var n=e(3);"string"==typeof n&&(n=[[t.id,n,""]]);e(6)(n,{});n.locals&&(t.exports=n.locals)},function(t,r,e){r=t.exports=e(4)(),r.push([t.id,'body{background:#ccc;height:2000px;margin:0;position:relative}#root{left:0;position:fixed;top:0;width:100%;z-index:20}.scroll-progress{font-size:12px;font:menu;height:4px}.article{background:#fff;border-radius:2px;border:1px solid #c1c1c1;font:menu;margin:60px auto;max-width:800px;padding:30px;position:relative;width:80%;z-index:10}.article:after{background:#fff;box-shadow:0 10px 10px #b2b2b2;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-10}h1{font-family:Libre Baskerville,serif;font-size:3.3em;padding:30px 0 50px;text-align:center}h1,p{color:rgba(0,0,0,.8)}p{font-family:Open Sans,sans-serif;font-size:21px;line-height:1.58;margin:0;text-indent:30px}p:first-of-type{text-indent:0}p:first-of-type:first-letter{background-color:#699933;border:4px solid #577f2a;color:#fff;float:left;font-family:Georgia;font-size:60px;line-height:50px;margin:10px 30px 10px 10px;padding:20px}p:nth-of-type(2){border-left:4px solid rgba(105,153,51,.15);color:#577f2a;font-family:Libre Baskerville,serif;margin:30px 10px;padding:0 20px 0 30px;text-indent:0}p:nth-of-type(4){color:#c6c6c6;font-family:Libre Baskerville;font-size:15px;margin-top:20px}.panda{background:url('+e(5)+") no-repeat 50%;background-size:cover;height:400px;margin:20px 20px 40px 0;width:100%}",""])},function(t,r){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],r=0;r=0&&b.splice(r,1)}function u(t){var r=document.createElement("style");return r.type="text/css",a(t,r),r}function c(t){var r=document.createElement("link");return r.rel="stylesheet",a(t,r),r}function l(t,r){var e,n,o;if(r.singleton){var a=m++;e=v||(v=u(r)),n=f.bind(null,e,a,!1),o=f.bind(null,e,a,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(e=c(r),n=s.bind(null,e),o=function(){i(e),e.href&&URL.revokeObjectURL(e.href)}):(e=u(r),n=_.bind(null,e),o=function(){i(e)});return n(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;n(t=r)}else o()}}function f(t,r,e,n){var o=e?"":n.css;if(t.styleSheet)t.styleSheet.cssText=y(r,o);else{var a=document.createTextNode(o),i=t.childNodes;i[r]&&t.removeChild(i[r]),i.length?t.insertBefore(a,i[r]):t.appendChild(a)}}function _(t,r){var e=r.css,n=r.media;if(n&&t.setAttribute("media",n),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}function s(t,r){var e=r.css,n=r.sourceMap;n&&(e+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */");var o=new Blob([e],{type:"text/css"}),a=t.href;t.href=URL.createObjectURL(o),a&&URL.revokeObjectURL(a)}var d={},h=function(t){var r;return function(){return"undefined"==typeof r&&(r=t.apply(this,arguments)),r}},p=h(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),g=h(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,m=0,b=[];t.exports=function(t,r){r=r||{},"undefined"==typeof r.singleton&&(r.singleton=p()),"undefined"==typeof r.insertAt&&(r.insertAt="bottom");var e=o(t);return n(e,r),function(t){for(var a=[],i=0;i=J(r))throw new Error("Index "+t+" is out of range. Check the length of your array first or use getMaybe or getWithDefault.");return n(t,r)}function n(t,r){for(var e=r.height;e>0;e--){for(var n=t>>5*e;r.lengths[n]<=t;)n++;n>0&&(t-=r.lengths[n-1]),r=r.table[n]}return r.table[t]}function o(t,r,e){return t<0||J(e)<=t?e:a(t,r,e)}function a(t,r,e){if(e=P(e),0===e.height)e.table[t]=r;else{var n=I(t,e);n>0&&(t-=e.lengths[n-1]),e.table[n]=a(t,r,e.table[n])}return e}function i(t,r){if(t<=0)return K;var e=Math.floor(Math.log(t)/Math.log(W));return u(r,e,0,t)}function u(t,r,e,n){if(0===r){for(var o=new Array((n-e)%(W+1)),a=0;a0?c[a-1]:0);return{ctor:"_Array",height:r,table:o,lengths:c}}function c(t){if("[]"===t.ctor)return K;for(var r=new Array(W),e=[],n=0;"[]"!==t.ctor;)if(r[n]=t._0,t=t._1,n++,n===W){var o={ctor:"_Array",height:0,table:r};f(o,e),r=new Array(W),n=0}if(n>0){var o={ctor:"_Array",height:0,table:r.splice(0,n)};f(o,e)}for(var a=0;a0&&f(e[a],e);var i=e[e.length-1];return i.height>0&&1===i.table.length?i.table[0]:i}function f(t,r){var e=t.height;if(r.length===e){var n={ctor:"_Array",height:e+1,table:[],lengths:[]};r.push(n)}r[e].table.push(t);var o=J(t);r[e].lengths.length>0&&(o+=r[e].lengths[r[e].lengths.length-1]),r[e].lengths.push(o),r[e].table.length===W&&(f(r[e],r),r[e]={ctor:"_Array",height:e+1,table:[],lengths:[]})}function _(t,r){var e=s(t,r);if(null!==e)return e;var n=U(t,r.height);return F(r,n)}function s(t,r){if(0===r.height){if(r.table.length=0;e--)t=0===r.height?R.Cons(r.table[e],t):h(t,r.table[e]);return t}function p(t,r){var e={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(e.lengths=r.lengths);for(var n=0;n0&&(n.lengths=r.lengths);for(var o=0;o0?r.lengths[n-1]:0),r.table[n]);if(0===n)return o;var e={ctor:"_Array",height:r.height,table:r.table.slice(0,n),lengths:r.lengths.slice(0,n)};return o.table.length>0&&(e.table[n]=o,e.lengths[n]=J(o)+(n>0?e.lengths[n-1]:0)),e}function T(t,r){if(0===t)return r;if(0===r.height){var e={ctor:"_Array",height:0};return e.table=r.table.slice(t,r.table.length+1),e}var n=I(t,r),o=T(t-(n>0?r.lengths[n-1]:0),r.table[n]);if(n===r.table.length-1)return o;var e={ctor:"_Array",height:r.height,table:r.table.slice(n,r.table.length+1),lengths:new Array(r.table.length-n)};e.table[0]=o;for(var a=0,i=0;i0){for(var n=J(e[0]),o=0;o0){var a=A(t,r);a>$&&(e=C(e[0],e[1],a))}return F(e[0],e[1])}function B(t,r){if(0===t.height&&0===r.height)return[t,r];if(1!==t.height||1!==r.height)if(t.height===r.height){t=P(t),r=P(r);var e=B(M(t),j(r));x(t,e[1]),N(r,e[0])}else if(t.height>r.height){t=P(t);var e=B(M(t),r);x(t,e[0]),r=z(e[1],e[1].height+1)}else{r=P(r);var e=B(t,j(r)),n=0===e[0].table.length?0:1,o=0===n?1:0;N(r,e[n]),t=z(e[o],e[o].height+1)}if(0===t.table.length||0===r.table.length)return[t,r];var a=A(t,r);return a<=$?[t,r]:C(t,r,a)}function x(t,r){var e=t.table.length-1;t.table[e]=r,t.lengths[e]=J(r),t.lengths[e]+=e>0?t.lengths[e-1]:0}function N(t,r){if(r.table.length>0){t.table[0]=r,t.lengths[0]=J(r);for(var e=J(t.table[0]),n=1;n0&&(e.lengths=new Array(r)),e}function C(t,r,e){for(var n=L(t.height,Math.min(W,t.table.length+r.table.length-e)),o=L(t.height,n.table.length-(t.table.length+r.table.length-e)),a=0;E(t.table,r.table,a).table.length%W===0;)O(n.table,o.table,a,E(t.table,r.table,a)),O(n.lengths,o.lengths,a,E(t.lengths,r.lengths,a)),a++;for(var i=a,u=new L(t.height-1,0),c=0;a-i-(u.table.length>0?1:0)0)for(var _=u.lengths.length,s=_;s<_+f-c;s++)u.lengths[s]=J(u.table[s]),u.lengths[s]+=s>0?u.lengths[s-1]:0;c+=f,l.table.length<=f&&(a++,c=0),u.table.length===W&&(S(n,o,i,u),u=L(t.height-1,0),i++)}for(u.table.length>0&&(S(n,o,i,u),i++);a0&&(r.lengths=t.lengths.slice()),r}function J(t){return 0===t.height?t.table.length:t.lengths[t.lengths.length-1]}function I(t,r){for(var e=t>>5*r.height;r.lengths[e]<=t;)e++;return e}function U(t,r){return 0===r?{ctor:"_Array",height:0,table:[t]}:{ctor:"_Array",height:r,table:[U(t,r-1)],lengths:[1]}}function z(t,r){return r===t.height?t:{ctor:"_Array",height:r,table:[z(t,r-1)],lengths:[J(t)]}}function F(t,r){return{ctor:"_Array",height:t.height+1,table:[t,r],lengths:[J(t),J(t)+J(r)]}}function q(t){var r=new Array(J(t));return D(r,0,t),r}function D(t,r,e){for(var n=0;n0?i[u-1]:0);return{ctor:"_Array",height:r,table:a,lengths:i}}var W=32,$=2,K={ctor:"_Array",height:0,table:[]};return{empty:K,fromList:c,toList:d,initialize:r(i),append:r(w),push:r(_),slice:e(y),get:r(t),set:e(o),map:r(p),indexedMap:r(g),foldl:e(m),foldr:e(b),length:J,toJSArray:q,fromJSArray:H}}(),h=function(){function t(t,r){return t/r|0}function n(t,r){return t%r}function o(t,r){if(0===r)throw new Error("Cannot perform mod 0. Division by zero error.");var e=t%r,n=0===t?0:r>0?t>=0?e:e+r:-o(-t,-r);return n===r?0:n}function a(t,r){return Math.log(r)/Math.log(t)}function i(t){return-t}function u(t){return t<0?-t:t}function c(t,r){return p.cmp(t,r)<0?t:r}function l(t,r){return p.cmp(t,r)>0?t:r}function f(t,r,e){return p.cmp(e,t)<0?t:p.cmp(e,r)>0?r:e}function _(t,r){return{ctor:k[p.cmp(t,r)+1]}}function s(t,r){return t!==r}function d(t){return!t}function h(t){return t===1/0||t===-(1/0)}function g(t){return 0|t}function v(t){return t*Math.PI/180}function m(t){return 2*Math.PI*t}function b(t){var r=t._0,e=t._1;return p.Tuple2(r*Math.cos(e),r*Math.sin(e))}function y(t){var r=t._0,e=t._1;return p.Tuple2(Math.sqrt(r*r+e*e),Math.atan2(e,r))}var k=["LT","EQ","GT"];return{div:r(t),rem:r(n),mod:r(o),pi:Math.PI,e:Math.E,cos:Math.cos,sin:Math.sin,tan:Math.tan,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:r(Math.atan2),degrees:v,turns:m,fromPolar:b,toPolar:y,sqrt:Math.sqrt,logBase:r(a),negate:i,abs:u,min:r(c),max:r(l),clamp:e(f),compare:r(_),xor:r(s),not:d,truncate:g,ceiling:Math.ceil,floor:Math.floor,round:Math.round,toFloat:function(t){return t},isNaN:isNaN,isInfinite:h}}(),p=function(){function t(t,r){for(var n,o=[],a=e(t,r,0,o);a&&(n=o.pop());)a=e(n.x,n.y,0,o);return a}function e(t,r,n,o){if(n>100)return o.push({x:t,y:r}),!0;if(t===r)return!0;if("object"!=typeof t){if("function"==typeof t)throw new Error('Trying to use `(==)` on functions. There is no way to know if functions are "the same" in the Elm sense. Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#== which describes why it is this way and what the better version will look like.');return!1}if(null===t||null===r)return!1;if(t instanceof Date)return t.getTime()===r.getTime();if(!("ctor"in t)){for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}if("RBNode_elm_builtin"!==t.ctor&&"RBEmpty_elm_builtin"!==t.ctor||(t=at(t),r=at(r)),"Set_elm_builtin"===t.ctor&&(t=_elm_lang$core$Set$toList(t),r=_elm_lang$core$Set$toList(r)),"::"===t.ctor){for(var i=t,u=r;"::"===i.ctor&&"::"===u.ctor;){if(!e(i._0,u._0,n+1,o))return!1;i=i._1,u=u._1}return i.ctor===u.ctor}if("_Array"===t.ctor){var c=d.toJSArray(t),l=d.toJSArray(r);if(c.length!==l.length)return!1;for(var f=0;f=1){if(a=n(t._0,r._0),a!==v)return a;if(i>=2){if(a=n(t._1,r._1),a!==v)return a;if(i>=3){if(a=n(t._2,r._2),a!==v)return a;if(i>=4){if(a=n(t._3,r._3),a!==v)return a;if(i>=5){if(a=n(t._4,r._4),a!==v)return a;if(i>=6){if(a=n(t._5,r._5),a!==v)return a;if(i>=7)throw new Error("Comparison error: "+u)}}}}}}return v}throw new Error("Comparison error: comparison is only defined on ints, floats, times, chars, strings, lists of comparable values, and tuples of comparable values.")}function o(t,r){return{ctor:"_Tuple2",_0:t,_1:r}}function a(t){return new String(t)}function i(t){return y++}function u(t,r){var e={};for(var n in t){var o=n in r?r[n]:t[n];e[n]=o}return e}function c(t,r){return{ctor:"::",_0:t,_1:r}}function l(t,r){if("string"==typeof t)return t+r;if("[]"===t.ctor)return r;var e=c(t._0,k),n=e;for(t=t._1;"[]"!==t.ctor;)n._1=c(t._0,k),t=t._1,n=n._1;return n._1=r,e}function f(t,r){return function(e){throw new Error("Ran into a `Debug.crash` in module `"+t+"` "+s(r)+"\nThe message provided by the code author is:\n\n "+e)}}function _(t,r,e){return function(n){throw new Error("Ran into a `Debug.crash` in module `"+t+"`\n\nThis was caused by the `case` expression "+s(r)+".\nOne of the branches ended with a crash and the following value got through:\n\n "+h(e)+"\n\nThe message provided by the code author is:\n\n "+n)}}function s(t){return t.start.line==t.end.line?"on line "+t.start.line:"between lines "+t.start.line+" and "+t.end.line}function h(t){var r=typeof t;if("function"===r){var e=t.func?t.func.name:t.name;return""}if("boolean"===r)return t?"True":"False";if("number"===r)return t+"";if(t instanceof String)return"'"+p(t,!0)+"'";if("string"===r)return'"'+p(t,!1)+'"';if(null===t)return"null";if("object"===r&&"ctor"in t){var n=t.ctor.substring(0,5);if("_Tupl"===n){var o=[];for(var a in t)"ctor"!==a&&o.push(h(t[a]));return"("+o.join(",")+")"}if("_Task"===n)return"";if("_Array"===t.ctor){var i=q(t);return"Array.fromList "+h(i)}if(""===t.ctor)return"";if("_Process"===t.ctor)return"";if("::"===t.ctor){var o="["+h(t._0);for(t=t._1;"::"===t.ctor;)o+=","+h(t._0),t=t._1;return o+"]"}if("[]"===t.ctor)return"[]";if("Set_elm_builtin"===t.ctor)return"Set.fromList "+h(_elm_lang$core$Set$toList(t));if("RBNode_elm_builtin"===t.ctor||"RBEmpty_elm_builtin"===t.ctor)return"Dict.fromList "+h(at(t));var o="";for(var u in t)if("ctor"!==u){var c=h(t[u]),l=c[0],f="{"===l||"("===l||"<"===l||'"'===l||c.indexOf(" ")<0;o+=" "+(f?c:"("+c+")")}return t.ctor+o}if("object"===r){if(t instanceof Date)return"<"+t.toString()+">";if(t.elm_web_socket)return"";var o=[];for(var a in t)o.push(a+" = "+h(t[a]));return 0===o.length?"{}":"{ "+o.join(", ")+" }"}return""}function p(t,r){var e=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return r?e.replace(/\'/g,"\\'"):e.replace(/\"/g,'\\"')}var g=-1,v=0,m=1,b={ctor:"_Tuple0"},y=0,k={ctor:"[]"};return{eq:t,cmp:n,Tuple0:b,Tuple2:o,chr:a,update:u,guid:i,append:r(l),crash:f,crashCase:_,toString:h}}(),g=(r(function(t,r){var e=r;return l(t,e._0,e._1)}),e(function(t,r,e){return t({ctor:"_Tuple2",_0:r,_1:e})}),e(function(t,r,e){return l(t,e,r)}),r(function(t,r){return t})),v=v||{};v["<|"]=r(function(t,r){return t(r)});var v=v||{};v["|>"]=r(function(t,r){return r(t)});var v=v||{};v[">>"]=e(function(t,r,e){return r(t(e))});var v=v||{};v["<<"]=e(function(t,r,e){return t(r(e))});var v=v||{};v["++"]=p.append;var m=p.toString,b=(h.isInfinite,h.isNaN,h.toFloat),y=h.ceiling,k=(h.floor,h.truncate,h.round,h.not),v=(h.xor,v||{});v["||"]=h.or;var v=v||{};v["&&"]=h.and;var T=(h.max,h.min,h.compare),v=v||{};v[">="]=h.ge;var v=v||{};v["<="]=h.le;var v=v||{};v[">"]=h.gt;var v=v||{};v["<"]=h.lt;var v=v||{};v["/="]=h.neq;var v=v||{};v["=="]=h.eq;var v=(h.e,h.pi,h.clamp,h.logBase,h.abs,h.negate,h.sqrt,h.atan2,h.atan,h.asin,h.acos,h.tan,h.sin,h.cos,v||{});v["^"]=h.exp;var v=v||{};v["%"]=h.mod;var v=(h.rem,v||{});v["//"]=h.div;var v=v||{};v["/"]=h.floatDiv;var v=v||{};v["*"]=h.mul;var v=v||{};v["-"]=h.sub;var v=v||{};v["+"]=h.add;var w=(h.toPolar,h.fromPolar,h.turns,h.degrees,r(function(t,r){var e=r;return"Just"===e.ctor?e._0:t})),B={ctor:"Nothing"},x=(r(function(t,r){var e=t;return"Just"===e.ctor?r(e._0):B}),function(t){return{ctor:"Just",_0:t}}),R=(r(function(t,r){var e=r;return"Just"===e.ctor?x(t(e._0)):B}),e(function(t,r,e){var n={ctor:"_Tuple2",_0:r,_1:e};return"_Tuple2"===n.ctor&&"Just"===n._0.ctor&&"Just"===n._1.ctor?x(l(t,n._0._0,n._1._0)):B}),n(function(t,r,e,n){var o={ctor:"_Tuple3",_0:r,_1:e,_2:n};return"_Tuple3"===o.ctor&&"Just"===o._0.ctor&&"Just"===o._1.ctor&&"Just"===o._2.ctor?x(f(t,o._0._0,o._1._0,o._2._0)):B}),o(function(t,r,e,n,o){var a={ctor:"_Tuple4",_0:r,_1:e,_2:n,_3:o};return"_Tuple4"===a.ctor&&"Just"===a._0.ctor&&"Just"===a._1.ctor&&"Just"===a._2.ctor&&"Just"===a._3.ctor?x(_(t,a._0._0,a._1._0,a._2._0,a._3._0)):B}),a(function(t,r,e,n,o,a){var i={ctor:"_Tuple5",_0:r,_1:e,_2:n,_3:o,_4:a};return"_Tuple5"===i.ctor&&"Just"===i._0.ctor&&"Just"===i._1.ctor&&"Just"===i._2.ctor&&"Just"===i._3.ctor&&"Just"===i._4.ctor?x(s(t,i._0._0,i._1._0,i._2._0,i._3._0,i._4._0)):B}),function(){function t(t,r){return{ctor:"::",_0:t,_1:r}}function i(r){for(var e=k,n=r.length;n--;)e=t(r[n],e);return e}function u(t){for(var r=[];"[]"!==t.ctor;)r.push(t._0),t=t._1;return r}function c(r,e){var n=k;if(r<=e)do n=t(e,n);while(e-- >r);return n}function d(t,r,e){for(var n=u(e),o=r,a=n.length;a--;)o=l(t,n[a],o);return o}function h(t,r,e){for(var n=[];"[]"!==r.ctor&&"[]"!==e.ctor;)n.push(l(t,r._0,e._0)),r=r._1,e=e._1;return i(n)}function g(t,r,e,n){for(var o=[];"[]"!==r.ctor&&"[]"!==e.ctor&&"[]"!==n.ctor;)o.push(f(t,r._0,e._0,n._0)),r=r._1,e=e._1,n=n._1;return i(o)}function v(t,r,e,n,o){for(var a=[];"[]"!==r.ctor&&"[]"!==e.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor;)a.push(_(t,r._0,e._0,n._0,o._0)),r=r._1,e=e._1,n=n._1,o=o._1;return i(a)}function m(t,r,e,n,o,a){for(var u=[];"[]"!==r.ctor&&"[]"!==e.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor;)u.push(s(t,r._0,e._0,n._0,o._0,a._0)),r=r._1,e=e._1,n=n._1,o=o._1,a=a._1;return i(u)}function b(t,r){return i(u(r).sort(function(r,e){return p.cmp(t(r),t(e))}))}function y(t,r){return i(u(r).sort(function(r,e){var n=t(r)(e).ctor;return"EQ"===n?0:"LT"===n?-1:1}))}var k={ctor:"[]"};return{Nil:k,Cons:t,cons:r(t),toArray:u,fromArray:i,range:c,foldr:e(d),map2:e(h),map3:n(g),map4:o(v),map5:a(m),sortBy:r(b),sortWith:r(y)}}()),N=(R.sortWith,R.sortBy,r(function(t,r){for(;;){if(p.cmp(t,0)<1)return r;var e=r;if("[]"===e.ctor)return r;var n=t-1,o=e._1;t=n,r=o}}),R.map5,R.map4,R.map3,R.map2),A=r(function(t,r){for(;;){var e=r;if("[]"===e.ctor)return!1;if(t(e._0))return!0;var n=t,o=e._1;t=n,r=o}}),E=(r(function(t,r){return k(l(A,function(r){return k(t(r))},r))}),R.foldr),O=e(function(t,r,e){for(;;){var n=e;if("[]"===n.ctor)return r;var o=t,a=l(t,n._0,r),i=n._1;t=o,r=a,e=i}}),S=function(t){return f(O,r(function(t,r){return r+1}),0,t)},L=(r(function(t,r){return f(N,t,R.range(0,S(r)-1),r)}),r(function(t,r){return l(A,function(r){return p.eq(r,t)},r)}),L||{});L["::"]=R.cons;var C=r(function(t,e){return f(E,r(function(r,e){return l(L["::"],t(r),e)}),R.fromArray([]),e)}),M=(r(function(t,e){var n=r(function(r,e){return t(r)?l(L["::"],r,e):e});return f(E,n,R.fromArray([]),e)}),e(function(t,r,e){var n=t(r);return"Just"===n.ctor?l(L["::"],n._0,e):e})),j=(r(function(t,r){return f(E,M(t),R.fromArray([]),r)}),function(t){return f(O,r(function(t,r){return l(L["::"],t,r)}),R.fromArray([]),t)}),P=(e(function(t,e,n){var o=r(function(r,e){var n=e;return"::"===n.ctor?l(L["::"],l(t,r,n._0),e):R.fromArray([])});return j(f(O,o,R.fromArray([e]),n))}),r(function(t,e){var n=e;return"[]"===n.ctor?t:f(E,r(function(t,r){return l(L["::"],t,r)}),e,t)})),J=function(t){return f(E,P,R.fromArray([]),t)},I=(r(function(t,r){return J(l(C,t,r))}),r(function(t,e){var n=r(function(r,e){var n=e,o=n._0,a=n._1;return t(r)?{ctor:"_Tuple2",_0:l(L["::"],r,o),_1:a}:{ctor:"_Tuple2",_0:o,_1:l(L["::"],r,a)}});return f(E,n,{ctor:"_Tuple2",_0:R.fromArray([]),_1:R.fromArray([])},e)}),r(function(t,e){var n=e;if("[]"===n.ctor)return R.fromArray([]);var o=r(function(r,e){return l(L["::"],t,l(L["::"],r,e))}),a=f(E,o,R.fromArray([]),n._1);return l(L["::"],n._0,a)}),e(function(t,r,e){for(;;){if(p.cmp(t,0)<1)return e;var n=r;if("[]"===n.ctor)return e;var o=t-1,a=n._1,i=l(L["::"],n._0,e);t=o,r=a,e=i}})),U=r(function(t,r){return j(f(I,t,r,R.fromArray([])))}),z=e(function(t,r,e){if(p.cmp(r,0)<1)return R.fromArray([]);var n={ctor:"_Tuple2",_0:r,_1:e};t:do{r:do{if("_Tuple2"!==n.ctor)break t;if("[]"===n._1.ctor)return e;if("::"!==n._1._1.ctor){if(1===n._0)break r;break t}switch(n._0){case 1:break r;case 2:return R.fromArray([n._1._0,n._1._1._0]);case 3:if("::"===n._1._1._1.ctor)return R.fromArray([n._1._0,n._1._1._0,n._1._1._1._0]);break t;default:if("::"===n._1._1._1.ctor&&"::"===n._1._1._1._1.ctor){var o=n._1._1._1._0,a=n._1._1._0,i=n._1._0,u=n._1._1._1._1._0,c=n._1._1._1._1._1;return p.cmp(t,1e3)>0?l(L["::"],i,l(L["::"],a,l(L["::"],o,l(L["::"],u,l(U,r-4,c))))):l(L["::"],i,l(L["::"],a,l(L["::"],o,l(L["::"],u,f(z,t+1,r-4,c)))))}break t}}while(!1);return R.fromArray([n._1._0])}while(!1);return e}),F=(r(function(t,r){return f(z,0,t,r)}),e(function(t,r,e){for(;;){if(p.cmp(r,0)<1)return t;var n=l(L["::"],e,t),o=r-1,a=e;t=n,r=o,e=a}})),q=(r(function(t,r){return f(F,R.fromArray([]),t,r)}),d.append,d.length,d.slice,d.set,r(function(t,r){return p.cmp(0,t)<1&&p.cmp(t,d.length(r))<0?x(l(d.get,t,r)):B}),d.push,d.empty,r(function(t,e){var n=r(function(r,e){return t(r)?l(d.push,r,e):e});return f(d.foldl,n,d.empty,e)}),d.foldr,d.foldl,d.indexedMap,d.map,d.toList),D=(d.fromList,d.initialize),H=(r(function(t,r){return l(D,t,g(r))}),function(){return{fromCode:function(t){return p.chr(String.fromCharCode(t))},toCode:function(t){return t.charCodeAt(0)},toUpper:function(t){return p.chr(t.toUpperCase())},toLower:function(t){return p.chr(t.toLowerCase())},toLocaleUpper:function(t){return p.chr(t.toLocaleUpperCase())},toLocaleLower:function(t){return p.chr(t.toLocaleLowerCase())}}}()),Q=(H.fromCode,H.toCode),W=(H.toLocaleLower,H.toLocaleUpper,H.toLower,H.toUpper,e(function(t,r,e){var n=Q(e);return p.cmp(n,Q(t))>-1&&p.cmp(n,Q(r))<1})),$=(l(W,p.chr("A"),p.chr("Z")),l(W,p.chr("a"),p.chr("z")),l(W,p.chr("0"),p.chr("9")),l(W,p.chr("0"),p.chr("7")),function(){function t(t){return{ctor:"_Task_succeed",value:t}}function e(t){return{ctor:"_Task_fail",value:t}}function n(t){return{ctor:"_Task_nativeBinding",callback:t,cancel:null}}function o(t,r){return{ctor:"_Task_andThen",task:t,callback:r}}function a(t,r){return{ctor:"_Task_onError",task:t,callback:r}}function i(t){return{ctor:"_Task_receive",callback:t}}function u(t){var r={ctor:"_Process",id:p.guid(),root:t,stack:null,mailbox:[]};return h(r),r}function c(r){return n(function(e){var n=u(r);e(t(n))})}function l(t,r){t.mailbox.push(r),h(t)}function f(r,e){return n(function(n){l(r,e),n(t(p.Tuple0))})}function _(r){return n(function(e){var n=r.root;"_Task_nativeBinding"===n.ctor&&n.cancel&&n.cancel(),r.root=null,e(t(p.Tuple0))})}function s(r){return n(function(e){var n=setTimeout(function(){e(t(p.Tuple0))},r);return function(){clearTimeout(n)}})}function d(t,r){for(;t
Oops! Something went wrong when starting your Elm program.
'+t+"
"}function a(t,r){return function(e,n,a){try{var c=u(t,r);return a||(c.renderer=i),d(t,c,e,n)}catch(l){throw e.innerHTML=o(l.message),l}}}function i(){return{update:function(){}}}function u(t,e){var n=e.main;if("undefined"==typeof n.init){var o=k(R.Nil),a=p.Tuple2(p.Tuple0,o);return Zt({init:function(){return a},view:function(){return n},update:r(function(){return a}),subscriptions:function(){return o}})}var i=e.flags,u=i?s(t,n.init,i):c(t,n.init);return Zt({init:u,view:n.view,update:n.update,subscriptions:n.subscriptions})}function c(t,r){return function(e){if("undefined"!=typeof e)throw new Error("You are giving module `"+t+"` an argument in JavaScript.\nThis module does not take arguments though! You probably need to change the\ninitialization code to something like `Elm."+t+".fullscreen()`");
2 | return r()}}function s(t,r,e){return function(n){var o=l(Ht.run,e,n);if("Err"===o.ctor)throw new Error("You are trying to initialize module `"+t+"` with an unexpected argument.\nWhen trying to convert it to a usable Elm value, I run into this problem:\n\n"+o._0);return r(o._0)}}function d(t,r,e,n){function o(t,r){return $.nativeBinding(function(e){var n=l(c,t,r);r=n._0,i.update(_(r));var o=n._1,a=f(r);w(d,o,a),e($.succeed(r))})}function a(t){$.rawSend(g,t)}var i,u=r.init,c=r.update,f=r.subscriptions,_=r.view,s=r.renderer,d={},p=$.nativeBinding(function(t){var r=u(n),o=r._0;i=s(e,a,_(o));var c=r._1,l=f(o);w(d,c,l),t($.succeed(o))}),g=b(p,o),v=h(d,a);return v?{ports:v}:{}}function h(t,r){var e;for(var n in C){var o=C[n];o.isForeign&&(e=e||{},e[n]="cmd"===o.tag?O(n):L(n,r)),t[n]=g(o,r)}return e}function g(t,r){function e(t,r){if("self"===t.ctor)return f(i,n,t._0,r);var e=t._0;switch(o){case"cmd":return f(a,n,e.cmds,r);case"sub":return f(a,n,e.subs,r);case"fx":return _(a,n,e.cmds,e.subs,r)}}var n={main:r,self:void 0},o=t.tag,a=t.onEffects,i=t.onSelfMsg,u=b(t.init,e);return n.self=u,u}function v(t,r){return $.nativeBinding(function(e){t.main(r),e($.succeed(p.Tuple0))})}function m(t,r){return l($.send,t.self,{ctor:"self",_0:r})}function b(t,r){function e(t){var o=$.receive(function(e){return r(e,t)});return l(n,o,e)}var n=$.andThen,o=l(n,t,e);return $.rawSpawn(o)}function y(t){return function(r){return{type:"leaf",home:t,value:r}}}function k(t){return{type:"node",branches:t}}function T(t,r){return{type:"map",tagger:t,tree:r}}function w(t,r,e){var n={};B(!0,r,n,null),B(!1,e,n,null);for(var o in t){var a=o in n?n[o]:{cmds:R.Nil,subs:R.Nil};$.rawSend(t[o],{ctor:"fx",_0:a})}}function B(t,r,e,n){switch(r.type){case"leaf":var o=r.home,a=x(t,o,n,r.value);return void(e[o]=N(t,a,e[o]));case"node":for(var i=r.branches;"[]"!==i.ctor;)B(t,i._0,e,n),i=i._1;return;case"map":return void B(t,r.tree,e,{tagger:r.tagger,rest:n})}}function x(t,r,e,n){function o(t){for(var r=e;r;)t=r.tagger(t),r=r.rest;return t}var a=t?C[r].cmdMap:C[r].subMap;return l(a,o,n)}function N(t,r,e){return e=e||{cmds:R.Nil,subs:R.Nil},t?(e.cmds=R.Cons(r,e.cmds),e):(e.subs=R.Cons(r,e.subs),e)}function A(t){if(t in C)throw new Error("There can only be one port named `"+t+"`, but your program has multiple.")}function E(t,r){return A(t),C[t]={tag:"cmd",cmdMap:M,converter:r,isForeign:!0},y(t)}function O(t){function r(t,r,e){for(;"[]"!==r.ctor;){for(var n=i(r._0),o=0;o=0&&a.splice(r,1)}var a=[],i=C[t].converter,u=$.succeed(null);return C[t].init=u,C[t].onEffects=e(r),{subscribe:n,unsubscribe:o}}function S(t,r){return A(t),C[t]={tag:"sub",subMap:j,converter:r,isForeign:!0},y(t)}function L(t,r){function n(t,r,e){for(var n=o(t,r,e),a=0;a0;)1&t&&(e+=r),t>>=1,r+=r;return e}function m(t,r,e){return e.slice(t,r)}function b(t,r){return t<1?"":r.slice(0,t)}function y(t,r){return t<1?"":r.slice(-t)}function k(t,r){return t<1?r:r.slice(t)}function T(t,r){return t<1?r:r.slice(0,-t)}function w(t,r,e){var n=(t-e.length)/2;return v(Math.ceil(n),r)+e+v(0|n,r)}function N(t,r,e){return e+v(t-e.length,r)}function A(t,r,e){return v(t-e.length,r)+e}function E(t){return t.trim()}function O(t){return t.replace(/^\s+/,"")}function S(t){return t.replace(/\s+$/,"")}function L(t){return R.fromArray(t.trim().split(/\s+/g))}function C(t){return R.fromArray(t.split(/\r\n|\r|\n/g))}function M(t){return t.toUpperCase()}function j(t){return t.toLowerCase()}function P(t,r){for(var e=r.length;e--;)if(t(p.chr(r[e])))return!0;return!1}function J(t,r){for(var e=r.length;e--;)if(!t(p.chr(r[e])))return!1;return!0}function I(t,r){return r.indexOf(t)>-1}function U(t,r){return 0===r.indexOf(t)}function z(t,r){return r.length>=t.length&&r.lastIndexOf(t)===r.length-t.length}function F(t,r){var e=t.length;if(e<1)return R.Nil;for(var n=0,o=[];(n=r.indexOf(t,n))>-1;)o.push(n),n+=e;return R.fromArray(o)}function q(t){var r=t.length;if(0===r)return Z("could not convert string '"+t+"' to an Int");var e=0;if("-"===t[0]){if(1===r)return Z("could not convert string '"+t+"' to an Int");e=1}for(var n=e;n0?{ctor:"_Tuple2",_0:c,_1:f(o,r,e,u)}:{ctor:"_Tuple2",_0:s,_1:_(n,h,d,e,u)};var g=r,v=e,m={ctor:"_Tuple2",_0:s,_1:f(t,h,d,u)};r=g,e=v,a=m}}),l=f(it,c,{ctor:"_Tuple2",_0:at(a),_1:u},i),s=l._0,d=l._1;return f(O,r(function(r,e){var n=r;return f(t,n._0,n._1,e)}),d,s)}),n(function(t,r,e,n){return rt.crash(nt(R.fromArray(["Internal red-black tree invariant violated, expected ",t," and got ",m(r),"/",e,"/",n,"\nPlease report this bug to "])))})),ct=function(t){var r=t;t:do{if("RBNode_elm_builtin"===r.ctor){if("BBlack"===r._0.ctor)return!0;break t}if("LBBlack"===r._0.ctor)return!0;break t}while(!1);return!1},lt=r(function(t,r){for(;;){var e=r;if("RBEmpty_elm_builtin"===e.ctor)return t;var n=l(lt,t+1,e._4),o=e._3;t=n,r=o}}),ft=r(function(t,r){t:for(;;){var e=r;if("RBEmpty_elm_builtin"===e.ctor)return B;var n=l(T,t,e._1);switch(n.ctor){case"LT":var o=t,a=e._3;t=o,r=a;continue t;case"EQ":return x(e._2);default:var i=t,u=e._4;t=i,r=u;continue t}}}),_t=r(function(t,r){var e=l(ft,t,r);return"Just"===e.ctor}),st=e(function(t,r,e){for(;;){var n=e;if("RBEmpty_elm_builtin"===n.ctor)return{ctor:"_Tuple2",_0:t,_1:r};var o=n._1,a=n._2,i=n._4;t=o,r=a,e=i}}),dt={ctor:"NBlack"},ht={ctor:"BBlack"},pt={ctor:"Black"},gt=function(t){var r=t;if("RBNode_elm_builtin"===r.ctor){var e=r._0;return p.eq(e,pt)||p.eq(e,ht)}return!0},vt={ctor:"Red"},mt=function(t){var r=t;switch(r.ctor){case"Black":return ht;case"Red":return pt;case"NBlack":return vt;default:return rt.crash("Can't make a double black node more black!")}},bt=function(t){var r=t;switch(r.ctor){case"BBlack":return pt;case"Black":return vt;case"Red":return dt;default:return rt.crash("Can't make a negative black node less black!")}},yt={ctor:"LBBlack"},kt={ctor:"LBlack"},Tt=function(t){return{ctor:"RBEmpty_elm_builtin",_0:t}},wt=Tt(kt),Bt=o(function(t,r,e,n,o){return{ctor:"RBNode_elm_builtin",_0:t,_1:r,_2:e,_3:n,_4:o}}),xt=function(t){var r=t;return"RBNode_elm_builtin"===r.ctor&&"Red"===r._0.ctor?s(Bt,pt,r._1,r._2,r._3,r._4):t},Rt=function(t){var r=t;return"RBNode_elm_builtin"===r.ctor?s(Bt,bt(r._0),r._1,r._2,r._3,r._4):Tt(kt)},Nt=function(t){return function(r){return function(e){return function(n){return function(o){return function(a){return function(i){return function(u){return function(c){return function(l){return function(f){return s(Bt,bt(t),n,o,s(Bt,pt,r,e,u,c),s(Bt,pt,a,i,l,f))}}}}}}}}}}},At=function(t){var r=t;return"RBEmpty_elm_builtin"===r.ctor?Tt(kt):s(Bt,pt,r._1,r._2,r._3,r._4)},Et=function(t){var r=t;return"RBEmpty_elm_builtin"===r.ctor?rt.crash("can't make a Leaf red"):s(Bt,vt,r._1,r._2,r._3,r._4)},Ot=function(t){var r=t;t:do{r:do{e:do{n:do{o:do{a:do{i:do{if("RBNode_elm_builtin"!==r.ctor)break t;if("RBNode_elm_builtin"===r._3.ctor)if("RBNode_elm_builtin"===r._4.ctor)switch(r._3._0.ctor){case"Red":switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;break t;case"NBlack":if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;break t;default:if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;break t}case"NBlack":switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t;case"NBlack":if("BBlack"===r._0.ctor){if("RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;if("RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t}break t;default:if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t}default:switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;break t;case"NBlack":if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;break t;default:break t}}else switch(r._3._0.ctor){case"Red":if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;break t;case"NBlack":if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t;default:break t}else{if("RBNode_elm_builtin"!==r._4.ctor)break t;switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;break t;case"NBlack":if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;break t;default:break t}}}while(!1);return Nt(r._0)(r._3._3._1)(r._3._3._2)(r._3._1)(r._3._2)(r._1)(r._2)(r._3._3._3)(r._3._3._4)(r._3._4)(r._4)}while(!1);return Nt(r._0)(r._3._1)(r._3._2)(r._3._4._1)(r._3._4._2)(r._1)(r._2)(r._3._3)(r._3._4._3)(r._3._4._4)(r._4)}while(!1);return Nt(r._0)(r._1)(r._2)(r._4._3._1)(r._4._3._2)(r._4._1)(r._4._2)(r._3)(r._4._3._3)(r._4._3._4)(r._4._4)}while(!1);return Nt(r._0)(r._1)(r._2)(r._4._1)(r._4._2)(r._4._4._1)(r._4._4._2)(r._3)(r._4._3)(r._4._4._3)(r._4._4._4)}while(!1);return s(Bt,pt,r._4._3._1,r._4._3._2,s(Bt,pt,r._1,r._2,r._3,r._4._3._3),s(St,pt,r._4._1,r._4._2,r._4._3._4,Et(r._4._4)))}while(!1);return s(Bt,pt,r._3._4._1,r._3._4._2,s(St,pt,r._3._1,r._3._2,Et(r._3._3),r._3._4._3),s(Bt,pt,r._1,r._2,r._3._4._4,r._4))}while(!1);return t},St=o(function(t,r,e,n,o){var a=s(Bt,t,r,e,n,o);return gt(a)?Ot(a):a}),Lt=o(function(t,r,e,n,o){return ct(n)||ct(o)?s(St,mt(t),r,e,Rt(n),Rt(o)):s(Bt,t,r,e,n,o)}),Ct=o(function(t,r,e,n,o){var a=o;return"RBEmpty_elm_builtin"===a.ctor?f(Mt,t,n,o):s(Lt,t,r,e,n,s(Ct,a._0,a._1,a._2,a._3,a._4))}),Mt=e(function(t,r,e){var n={ctor:"_Tuple2",_0:r,_1:e};if("RBEmpty_elm_builtin"!==n._0.ctor){if("RBEmpty_elm_builtin"===n._1.ctor){var o=n._1._0,a=n._0._0,i={ctor:"_Tuple3",_0:t,_1:a,_2:o};return"_Tuple3"===i.ctor&&"Black"===i._0.ctor&&"Red"===i._1.ctor&&"LBlack"===i._2.ctor?s(Bt,pt,n._0._1,n._0._2,n._0._3,n._0._4):_(ut,"Black/Red/LBlack",t,m(a),m(o))}var u=n._0._2,c=n._0._4,l=n._0._1,d=s(Ct,n._0._0,l,u,n._0._3,c),h=f(st,l,u,c),p=h._0,g=h._1;return s(Lt,t,p,g,d,e)}if("RBEmpty_elm_builtin"!==n._1.ctor){var v=n._1._0,b=n._0._0,y={ctor:"_Tuple3",_0:t,_1:b,_2:v};return"_Tuple3"===y.ctor&&"Black"===y._0.ctor&&"LBlack"===y._1.ctor&&"Red"===y._2.ctor?s(Bt,pt,n._1._1,n._1._2,n._1._3,n._1._4):_(ut,"Black/LBlack/Red",t,m(b),m(v))}var k=t;switch(k.ctor){case"Red":return Tt(kt);case"Black":return Tt(yt);default:return rt.crash("cannot have bblack or nblack nodes at this point")}}),jt=r(function(t,r){var e=r;if("RBEmpty_elm_builtin"===e.ctor)return Tt(kt);var n=e._1;return s(Bt,e._0,n,l(t,n,e._2),l(jt,t,e._3),l(jt,t,e._4))}),Pt={ctor:"Same"},Jt={ctor:"Remove"},It={ctor:"Insert"},Ut=e(function(t,r,e){var n=function(e){var o=e;if("RBEmpty_elm_builtin"===o.ctor){var a=r(B);return"Nothing"===a.ctor?{ctor:"_Tuple2",_0:Pt,_1:wt}:{ctor:"_Tuple2",_0:It,_1:s(Bt,vt,t,a._0,wt,wt)}}var i=o._2,u=o._4,c=o._3,_=o._1,d=o._0,h=l(T,t,_);switch(h.ctor){case"EQ":var p=r(x(i));return"Nothing"===p.ctor?{ctor:"_Tuple2",_0:Jt,_1:f(Mt,d,c,u)}:{ctor:"_Tuple2",_0:Pt,_1:s(Bt,d,_,p._0,c,u)};case"LT":var g=n(c),v=g._0,m=g._1,b=v;switch(b.ctor){case"Same":return{ctor:"_Tuple2",_0:Pt,_1:s(Bt,d,_,i,m,u)};case"Insert":return{ctor:"_Tuple2",_0:It,_1:s(St,d,_,i,m,u)};default:return{ctor:"_Tuple2",_0:Jt,_1:s(Lt,d,_,i,m,u)}}default:var y=n(u),v=y._0,k=y._1,w=v;switch(w.ctor){case"Same":return{ctor:"_Tuple2",_0:Pt,_1:s(Bt,d,_,i,c,k)};case"Insert":return{ctor:"_Tuple2",_0:It,_1:s(St,d,_,i,c,k)};default:return{ctor:"_Tuple2",_0:Jt,_1:s(Lt,d,_,i,c,k)}}}},o=n(e),a=o._0,i=o._1,u=a;switch(u.ctor){case"Same":return i;case"Insert":return xt(i);default:return At(i)}}),zt=e(function(t,r,e){return f(Ut,t,g(x(r)),e)}),Ft=(r(function(t,r){return f(zt,t,r,wt)}),r(function(t,r){return f(it,zt,r,t)}),r(function(t,r){var n=e(function(r,e,n){return l(t,r,e)?f(zt,r,e,n):n});return f(it,n,wt,r)})),qt=(r(function(t,e){return l(Ft,r(function(t,r){return l(_t,t,e)}),t)}),r(function(t,r){var n=e(function(r,e,n){var o=n,a=o._1,i=o._0;return l(t,r,e)?{ctor:"_Tuple2",_0:f(zt,r,e,i),_1:a}:{ctor:"_Tuple2",_0:i,_1:f(zt,r,e,a)}});return f(it,n,{ctor:"_Tuple2",_0:wt,_1:wt},r)}),r(function(t,r){return f(Ut,t,g(B),r)})),Dt=(r(function(t,r){return f(it,e(function(t,r,e){return l(qt,t,e)}),t,r)}),K.batch),Ht=(Dt(R.fromArray([])),K.map,rt.crash,rt.log,function(){function t(t){return{ctor:"",tag:"succeed",msg:t}}function l(t){return{ctor:"",tag:"fail",msg:t}}function f(t){return{ctor:"",tag:t}}function _(t,r){return{ctor:"",tag:t,decoder:r}}function s(t){return{ctor:"",tag:"null",value:t}}function h(t,r){return{ctor:"",tag:"field",field:t,decoder:r}}function g(t){return{ctor:"",tag:"key-value",decoder:t}}function v(t,r){return{ctor:"",tag:"map-many",func:t,decoders:r}}function m(t,r){return{ctor:"",tag:"tuple",func:t,decoders:r}}function b(t,r){return{ctor:"",tag:"andThen",decoder:t,callback:r}}function y(t,r){return{ctor:"",tag:"customAndThen",decoder:t,callback:r}}function k(t){return{ctor:"",tag:"oneOf",decoders:t}}function T(t,r){return v(t,[r])}function w(t,r,e){return v(t,[r,e])}function N(t,r,e,n){return v(t,[r,e,n])}function A(t,r,e,n,o){return v(t,[r,e,n,o])}function E(t,r,e,n,o,a){return v(t,[r,e,n,o,a])}function O(t,r,e,n,o,a,i){return v(t,[r,e,n,o,a,i])}function S(t,r,e,n,o,a,i,u){return v(t,[r,e,n,o,a,i,u])}function L(t,r,e,n,o,a,i,u,c){return v(t,[r,e,n,o,a,i,u,c])}function C(t,r){return m(t,[r])}function M(t,r,e){return m(t,[r,e])}function j(t,r,e,n){return m(t,[r,e,n])}function P(t,r,e,n,o){return m(t,[r,e,n,o])}function J(t,r,e,n,o,a){return m(t,[r,e,n,o,a])}function I(t,r,e,n,o,a,i){return m(t,[r,e,n,o,a,i])}function U(t,r,e,n,o,a,i,u){return m(t,[r,e,n,o,a,i,u])}function z(t,r,e,n,o,a,i,u,c){return m(t,[r,e,n,o,a,i,u,c])}function F(t){return{tag:"ok",value:t}}function q(t,r){return{tag:"primitive",type:t,value:r}}function D(t,r){return{tag:"index",index:t,rest:r}}function H(t,r){return{tag:"field",field:t,rest:r}}function Q(t){return{tag:"oneOf",problems:t}}function W(t){return{tag:"custom",msg:t}}function $(t){return{tag:"fail",msg:t}}function K(t){for(var r="_";t;)switch(t.tag){case"primitive":return"Expecting "+t.type+("_"===r?"":" at "+r)+" but instead got: "+G(t.value);case"index":r+="["+t.index+"]",t=t.rest;break;case"field":r+="."+t.field,t=t.rest;break;case"oneOf":for(var e=t.problems,n=0;n.");case"PENDING_REQUEST":X(o),u="EXTRA_REQUEST";var t=O(c,l);return i=F(i,c,t,a),void(c=l);case"EXTRA_REQUEST":return void(u="NO_REQUEST")}}var a={tagger:r,parent:void 0},i=w(e,a);t.appendChild(i);var u="NO_REQUEST",c=e,l=e;return{update:n}}function w(t,r){switch(t.type){case"thunk":return t.node||(t.node=t.thunk()),w(t.node,r);case"tagger":for(var e=t.node,n=t.tagger;"tagger"===e.type;)"object"!=typeof n?n=[n,e.tagger]:n.push(e.tagger),e=e.node;var o={tagger:n,parent:r},a=w(e,o);return a.elm_event_node_ref=o,a;case"text":return document.createTextNode(t.text);case"node":var a=t.namespace?document.createElementNS(t.namespace,t.tag):document.createElement(t.tag);B(a,r,t.facts);for(var i=t.children,u=0;u0&&e.push(S("p-thunk",n,f)));case"tagger":for(var _=t.tagger,s=r.tagger,d=!1,h=t.node;"tagger"===h.type;)d=!0,"object"!=typeof _?_=[_,h.tagger]:_.push(h.tagger),h=h.node;for(var p=r.node;"tagger"===p.type;)d=!0,"object"!=typeof s?s=[s,p.tagger]:s.push(p.tagger),p=p.node;return d&&_.length!==s.length?void e.push(S("p-redraw",n,r)):((d?C(_,s):_===s)||e.push(S("p-tagger",n,s)),void L(h,p,e,n+1));case"text":if(t.text!==r.text)return void e.push(S("p-text",n,r.text));return;case"node":if(t.tag!==r.tag||t.namespace!==r.namespace)return void e.push(S("p-redraw",n,r));var g=M(t.facts,r.facts);return"undefined"!=typeof g&&e.push(S("p-facts",n,g)),void j(t,r,e,n);case"keyed-node":if(t.tag!==r.tag||t.namespace!==r.namespace)return void e.push(S("p-redraw",n,r));var g=M(t.facts,r.facts);return"undefined"!=typeof g&&e.push(S("p-facts",n,g)),void P(t,r,e,n);case"custom":if(t.impl!==r.impl)return void e.push(S("p-redraw",n,r));var g=M(t.facts,r.facts);"undefined"!=typeof g&&e.push(S("p-facts",n,g));var v=r.impl.diff(t,r);if(v)return void e.push(S("p-custom",n,v));return}}}function C(t,r){for(var e=0;eu?e.push(S("p-remove-last",n,i-u)):i0||i.length>0||"undefined"!=typeof O)&&e.push(S("p-reorder",n,{patches:o,inserts:i,endInserts:O}))}function J(t,r,e,n,o,a){var i=t[e];if("undefined"==typeof i)return i={tag:"insert",vnode:n,index:o,data:void 0},a.push({index:o,entry:i}),void(t[e]=i);if("remove"===i.tag){a.push({index:o,entry:i}),i.tag="move";var u=[];return L(i.vnode,n,u,i.index),i.index=o,void(i.data.data={patches:u,entry:i})}J(t,r,e+Z,n,o,a)}function I(t,r,e,n,o){var a=t[e];if("undefined"==typeof a){var i=S("p-remove",o,void 0);return r.push(i),void(t[e]={tag:"remove",vnode:n,index:o,data:i})}if("insert"===a.tag){a.tag="move";var u=[];L(n,a.vnode,u,o);var i=S("p-remove",o,{patches:u,entry:a});return void r.push(i)}I(t,r,e+Z,n,o)}function U(t,r,e,n){z(t,r,e,0,0,r.descendantsCount,n)}function z(t,r,e,n,o,a,i){for(var u=e[n],c=u.index;c===o;){var l=u.type;if("p-thunk"===l)U(t,r.node,u.data,i);else if("p-reorder"===l){u.domNode=t,u.eventNode=i;var f=u.data.patches;f.length>0&&z(t,r,f,0,o,a,i)}else if("p-remove"===l){u.domNode=t,u.eventNode=i;var _=u.data;if("undefined"!=typeof _){_.entry.data=t;var f=_.patches;f.length>0&&z(t,r,f,0,o,a,i)}}else u.domNode=t,u.eventNode=i;if(n++,!(u=e[n])||(c=u.index)>a)return n}switch(r.type){case"tagger":for(var s=r.node;"tagger"===s.type;)s=s.node;return z(t,s,e,n,o+1,a,t.elm_event_node_ref);case"node":for(var d=r.children,h=t.childNodes,p=0;pa))return n;o=v}return n;case"keyed-node":for(var d=r.children,h=t.childNodes,p=0;pa))return n;o=v}return n;case"text":case"thunk":throw new Error("should never traverse `text` or `thunk` nodes like this")}}function F(t,r,e,n){return 0===e.length?t:(U(t,r,e,n),q(t,e))}function q(t,r){for(var e=0;e0?100:p.cmp(o,0)<0?0:o},vr=r(function(t,r){var e=t;return{ctor:"_Tuple2",_0:p.update(r,{progress:gr(e._0)}),_1:Y}}),mr=({progress:0,color:x("red"),from:B,to:B},n(function(t,r,e,n){return{progress:t,color:r,from:e,to:n}}),e(function(t,r,e){return{scrollTop:t,targetScrollHeight:r,clientHeight:e}}),function(t){return{ctor:"Progress",_0:t}}),br=K.incomingPort("onScroll",l(Kt,l(Vt[":="],"scrollTop",Yt),function(t){return l(Kt,l(Vt[":="],"targetScrollHeight",Yt),function(r){return l(Kt,l(Vt[":="],"clientHeight",Yt),function(e){return $t({scrollTop:t,targetScrollHeight:r,clientHeight:e})})})})),yr={progress:0,color:B,to:x("lightsalmon"),from:x("lightseagreen")},kr={progressModel:yr},Tr={ctor:"_Tuple2",_0:kr,_1:Y},wr=function(t){return{ctor:"ProgressMsg",_0:t}},Br=function(t){return l(ur,R.fromArray([]),R.fromArray([l(fr,wr,pr(t.progressModel))]))},xr=r(function(t,r){var e=t,n=l(vr,e._0,r.progressModel),o=n._0,a=n._1;return{ctor:"_Tuple2",_0:p.update(r,{progressModel:o}),_1:l(X,wr,a)}}),Rr=function(t){return br(function(t){return wr(mr(t))})},Nr={main:lr({init:Tr,view:Br,update:xr,subscriptions:Rr})},Ar={};if(Ar.Main=Ar.Main||{},K.addPublicModule(Ar.Main,"Main","undefined"==typeof Nr?null:Nr),"function"==typeof define&&define.amd)return void define([],function(){return Ar});if("object"==typeof t)return void(t.exports=Ar);var Er=this.Elm;if("undefined"==typeof Er)return void(this.Elm=Ar);for(var Or in Ar){if(Or in Er)throw new Error("There are two Elm modules called `"+Or+"` on this page! Rename one of them.");Er[Or]=Ar[Or]}}).call(this)}]);
--------------------------------------------------------------------------------
/examples/article/dist/js/main.2ee6e429.js:
--------------------------------------------------------------------------------
1 | !function(t){function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{},id:n,loaded:!1};return t[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var e={};return r.m=t,r.c=e,r.p="",r(0)}([function(t,r,e){t.exports=e(1)},function(t,r,e){e(2);const n=e(7),o=document.getElementById("root"),a=n.Main.embed(o),i=document.querySelector(".article");window.addEventListener("scroll",function(){a.ports.onScroll.send({scrollTop:document.documentElement.scrollTop||document.body.scrollTop,targetScrollHeight:i.scrollHeight,clientHeight:document.documentElement.clientHeight})})},function(t,r,e){var n=e(3);"string"==typeof n&&(n=[[t.id,n,""]]);e(6)(n,{});n.locals&&(t.exports=n.locals)},function(t,r,e){r=t.exports=e(4)(),r.push([t.id,'body{background:#ccc;height:2000px;margin:0;position:relative}#root{left:0;position:fixed;top:0;width:100%;z-index:20}.scroll-progress{font-size:12px;font:menu;height:4px}.article{background:#fff;border-radius:2px;border:1px solid #c1c1c1;font:menu;margin:60px auto;max-width:800px;padding:30px;position:relative;width:80%;z-index:10}.article:after{background:#fff;box-shadow:0 10px 10px #b2b2b2;content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:-10}h1{font-family:Libre Baskerville,serif;font-size:3.3em;padding:30px 0 50px;text-align:center}h1,p{color:rgba(0,0,0,.8)}p{font-family:Open Sans,sans-serif;font-size:21px;line-height:1.58;margin:0;text-indent:30px}p:first-of-type{text-indent:0}p:first-of-type:first-letter{background-color:#699933;border:4px solid #577f2a;color:#fff;float:left;font-family:Georgia;font-size:60px;line-height:50px;margin:10px 30px 10px 10px;padding:20px}p:nth-of-type(2){border-left:4px solid rgba(105,153,51,.15);color:#577f2a;font-family:Libre Baskerville,serif;margin:30px 10px;padding:0 20px 0 30px;text-indent:0}p:nth-of-type(4){color:#c6c6c6;font-family:Libre Baskerville;font-size:15px;margin-top:20px}.panda{background:url('+e(5)+") no-repeat 50%;background-size:cover;height:400px;margin:20px 20px 40px 0;width:100%}",""])},function(t,r){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],r=0;r=0&&b.splice(r,1)}function u(t){var r=document.createElement("style");return r.type="text/css",a(t,r),r}function c(t){var r=document.createElement("link");return r.rel="stylesheet",a(t,r),r}function l(t,r){var e,n,o;if(r.singleton){var a=m++;e=v||(v=u(r)),n=f.bind(null,e,a,!1),o=f.bind(null,e,a,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(e=c(r),n=s.bind(null,e),o=function(){i(e),e.href&&URL.revokeObjectURL(e.href)}):(e=u(r),n=_.bind(null,e),o=function(){i(e)});return n(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;n(t=r)}else o()}}function f(t,r,e,n){var o=e?"":n.css;if(t.styleSheet)t.styleSheet.cssText=y(r,o);else{var a=document.createTextNode(o),i=t.childNodes;i[r]&&t.removeChild(i[r]),i.length?t.insertBefore(a,i[r]):t.appendChild(a)}}function _(t,r){var e=r.css,n=r.media;if(n&&t.setAttribute("media",n),t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}function s(t,r){var e=r.css,n=r.sourceMap;n&&(e+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */");var o=new Blob([e],{type:"text/css"}),a=t.href;t.href=URL.createObjectURL(o),a&&URL.revokeObjectURL(a)}var d={},h=function(t){var r;return function(){return"undefined"==typeof r&&(r=t.apply(this,arguments)),r}},p=h(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),g=h(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,m=0,b=[];t.exports=function(t,r){r=r||{},"undefined"==typeof r.singleton&&(r.singleton=p()),"undefined"==typeof r.insertAt&&(r.insertAt="bottom");var e=o(t);return n(e,r),function(t){for(var a=[],i=0;i=J(r))throw new Error("Index "+t+" is out of range. Check the length of your array first or use getMaybe or getWithDefault.");return n(t,r)}function n(t,r){for(var e=r.height;e>0;e--){for(var n=t>>5*e;r.lengths[n]<=t;)n++;n>0&&(t-=r.lengths[n-1]),r=r.table[n]}return r.table[t]}function o(t,r,e){return t<0||J(e)<=t?e:a(t,r,e)}function a(t,r,e){if(e=P(e),0===e.height)e.table[t]=r;else{var n=I(t,e);n>0&&(t-=e.lengths[n-1]),e.table[n]=a(t,r,e.table[n])}return e}function i(t,r){if(t<=0)return K;var e=Math.floor(Math.log(t)/Math.log(W));return u(r,e,0,t)}function u(t,r,e,n){if(0===r){for(var o=new Array((n-e)%(W+1)),a=0;a0?c[a-1]:0);return{ctor:"_Array",height:r,table:o,lengths:c}}function c(t){if("[]"===t.ctor)return K;for(var r=new Array(W),e=[],n=0;"[]"!==t.ctor;)if(r[n]=t._0,t=t._1,n++,n===W){var o={ctor:"_Array",height:0,table:r};f(o,e),r=new Array(W),n=0}if(n>0){var o={ctor:"_Array",height:0,table:r.splice(0,n)};f(o,e)}for(var a=0;a0&&f(e[a],e);var i=e[e.length-1];return i.height>0&&1===i.table.length?i.table[0]:i}function f(t,r){var e=t.height;if(r.length===e){var n={ctor:"_Array",height:e+1,table:[],lengths:[]};r.push(n)}r[e].table.push(t);var o=J(t);r[e].lengths.length>0&&(o+=r[e].lengths[r[e].lengths.length-1]),r[e].lengths.push(o),r[e].table.length===W&&(f(r[e],r),r[e]={ctor:"_Array",height:e+1,table:[],lengths:[]})}function _(t,r){var e=s(t,r);if(null!==e)return e;var n=U(t,r.height);return q(r,n)}function s(t,r){if(0===r.height){if(r.table.length=0;e--)t=0===r.height?R.Cons(r.table[e],t):h(t,r.table[e]);return t}function p(t,r){var e={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(e.lengths=r.lengths);for(var n=0;n0&&(n.lengths=r.lengths);for(var o=0;o0?r.lengths[n-1]:0),r.table[n]);if(0===n)return o;var e={ctor:"_Array",height:r.height,table:r.table.slice(0,n),lengths:r.lengths.slice(0,n)};return o.table.length>0&&(e.table[n]=o,e.lengths[n]=J(o)+(n>0?e.lengths[n-1]:0)),e}function T(t,r){if(0===t)return r;if(0===r.height){var e={ctor:"_Array",height:0};return e.table=r.table.slice(t,r.table.length+1),e}var n=I(t,r),o=T(t-(n>0?r.lengths[n-1]:0),r.table[n]);if(n===r.table.length-1)return o;var e={ctor:"_Array",height:r.height,table:r.table.slice(n,r.table.length+1),lengths:new Array(r.table.length-n)};e.table[0]=o;for(var a=0,i=0;i0){for(var n=J(e[0]),o=0;o0){var a=A(t,r);a>$&&(e=C(e[0],e[1],a))}return q(e[0],e[1])}function B(t,r){if(0===t.height&&0===r.height)return[t,r];if(1!==t.height||1!==r.height)if(t.height===r.height){t=P(t),r=P(r);var e=B(M(t),j(r));x(t,e[1]),N(r,e[0])}else if(t.height>r.height){t=P(t);var e=B(M(t),r);x(t,e[0]),r=z(e[1],e[1].height+1)}else{r=P(r);var e=B(t,j(r)),n=0===e[0].table.length?0:1,o=0===n?1:0;N(r,e[n]),t=z(e[o],e[o].height+1)}if(0===t.table.length||0===r.table.length)return[t,r];var a=A(t,r);return a<=$?[t,r]:C(t,r,a)}function x(t,r){var e=t.table.length-1;t.table[e]=r,t.lengths[e]=J(r),t.lengths[e]+=e>0?t.lengths[e-1]:0}function N(t,r){if(r.table.length>0){t.table[0]=r,t.lengths[0]=J(r);for(var e=J(t.table[0]),n=1;n0&&(e.lengths=new Array(r)),e}function C(t,r,e){for(var n=L(t.height,Math.min(W,t.table.length+r.table.length-e)),o=L(t.height,n.table.length-(t.table.length+r.table.length-e)),a=0;E(t.table,r.table,a).table.length%W===0;)S(n.table,o.table,a,E(t.table,r.table,a)),S(n.lengths,o.lengths,a,E(t.lengths,r.lengths,a)),a++;for(var i=a,u=new L(t.height-1,0),c=0;a-i-(u.table.length>0?1:0)0)for(var _=u.lengths.length,s=_;s<_+f-c;s++)u.lengths[s]=J(u.table[s]),u.lengths[s]+=s>0?u.lengths[s-1]:0;c+=f,l.table.length<=f&&(a++,c=0),u.table.length===W&&(O(n,o,i,u),u=L(t.height-1,0),i++)}for(u.table.length>0&&(O(n,o,i,u),i++);a0&&(r.lengths=t.lengths.slice()),r}function J(t){return 0===t.height?t.table.length:t.lengths[t.lengths.length-1]}function I(t,r){for(var e=t>>5*r.height;r.lengths[e]<=t;)e++;return e}function U(t,r){return 0===r?{ctor:"_Array",height:0,table:[t]}:{ctor:"_Array",height:r,table:[U(t,r-1)],lengths:[1]}}function z(t,r){return r===t.height?t:{ctor:"_Array",height:r,table:[z(t,r-1)],lengths:[J(t)]}}function q(t,r){return{ctor:"_Array",height:t.height+1,table:[t,r],lengths:[J(t),J(t)+J(r)]}}function F(t){var r=new Array(J(t));return D(r,0,t),r}function D(t,r,e){for(var n=0;n0?i[u-1]:0);return{ctor:"_Array",height:r,table:a,lengths:i}}var W=32,$=2,K={ctor:"_Array",height:0,table:[]};return{empty:K,fromList:c,toList:d,initialize:r(i),append:r(w),push:r(_),slice:e(y),get:r(t),set:e(o),map:r(p),indexedMap:r(g),foldl:e(m),foldr:e(b),length:J,toJSArray:F,fromJSArray:H}}(),h=function(){function t(t,r){return t/r|0}function n(t,r){return t%r}function o(t,r){if(0===r)throw new Error("Cannot perform mod 0. Division by zero error.");var e=t%r,n=0===t?0:r>0?t>=0?e:e+r:-o(-t,-r);return n===r?0:n}function a(t,r){return Math.log(r)/Math.log(t)}function i(t){return-t}function u(t){return t<0?-t:t}function c(t,r){return p.cmp(t,r)<0?t:r}function l(t,r){return p.cmp(t,r)>0?t:r}function f(t,r,e){return p.cmp(e,t)<0?t:p.cmp(e,r)>0?r:e}function _(t,r){return{ctor:k[p.cmp(t,r)+1]}}function s(t,r){return t!==r}function d(t){return!t}function h(t){return t===1/0||t===-(1/0)}function g(t){return 0|t}function v(t){return t*Math.PI/180}function m(t){return 2*Math.PI*t}function b(t){var r=t._0,e=t._1;return p.Tuple2(r*Math.cos(e),r*Math.sin(e))}function y(t){var r=t._0,e=t._1;return p.Tuple2(Math.sqrt(r*r+e*e),Math.atan2(e,r))}var k=["LT","EQ","GT"];return{div:r(t),rem:r(n),mod:r(o),pi:Math.PI,e:Math.E,cos:Math.cos,sin:Math.sin,tan:Math.tan,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:r(Math.atan2),degrees:v,turns:m,fromPolar:b,toPolar:y,sqrt:Math.sqrt,logBase:r(a),negate:i,abs:u,min:r(c),max:r(l),clamp:e(f),compare:r(_),xor:r(s),not:d,truncate:g,ceiling:Math.ceil,floor:Math.floor,round:Math.round,toFloat:function(t){return t},isNaN:isNaN,isInfinite:h}}(),p=function(){function t(t,r){for(var n,o=[],a=e(t,r,0,o);a&&(n=o.pop());)a=e(n.x,n.y,0,o);return a}function e(t,r,n,o){if(n>100)return o.push({x:t,y:r}),!0;if(t===r)return!0;if("object"!=typeof t){if("function"==typeof t)throw new Error('Trying to use `(==)` on functions. There is no way to know if functions are "the same" in the Elm sense. Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#== which describes why it is this way and what the better version will look like.');return!1}if(null===t||null===r)return!1;if(t instanceof Date)return t.getTime()===r.getTime();if(!("ctor"in t)){for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}if("RBNode_elm_builtin"!==t.ctor&&"RBEmpty_elm_builtin"!==t.ctor||(t=at(t),r=at(r)),"Set_elm_builtin"===t.ctor&&(t=_elm_lang$core$Set$toList(t),r=_elm_lang$core$Set$toList(r)),"::"===t.ctor){for(var i=t,u=r;"::"===i.ctor&&"::"===u.ctor;){if(!e(i._0,u._0,n+1,o))return!1;i=i._1,u=u._1}return i.ctor===u.ctor}if("_Array"===t.ctor){var c=d.toJSArray(t),l=d.toJSArray(r);if(c.length!==l.length)return!1;for(var f=0;f=1){if(a=n(t._0,r._0),a!==v)return a;if(i>=2){if(a=n(t._1,r._1),a!==v)return a;if(i>=3){if(a=n(t._2,r._2),a!==v)return a;if(i>=4){if(a=n(t._3,r._3),a!==v)return a;if(i>=5){if(a=n(t._4,r._4),a!==v)return a;if(i>=6){if(a=n(t._5,r._5),a!==v)return a;if(i>=7)throw new Error("Comparison error: "+u)}}}}}}return v}throw new Error("Comparison error: comparison is only defined on ints, floats, times, chars, strings, lists of comparable values, and tuples of comparable values.")}function o(t,r){return{ctor:"_Tuple2",_0:t,_1:r}}function a(t){return new String(t)}function i(t){return y++}function u(t,r){var e={};for(var n in t){var o=n in r?r[n]:t[n];e[n]=o}return e}function c(t,r){return{ctor:"::",_0:t,_1:r}}function l(t,r){if("string"==typeof t)return t+r;if("[]"===t.ctor)return r;var e=c(t._0,k),n=e;for(t=t._1;"[]"!==t.ctor;)n._1=c(t._0,k),t=t._1,n=n._1;return n._1=r,e}function f(t,r){return function(e){throw new Error("Ran into a `Debug.crash` in module `"+t+"` "+s(r)+"\nThe message provided by the code author is:\n\n "+e)}}function _(t,r,e){return function(n){throw new Error("Ran into a `Debug.crash` in module `"+t+"`\n\nThis was caused by the `case` expression "+s(r)+".\nOne of the branches ended with a crash and the following value got through:\n\n "+h(e)+"\n\nThe message provided by the code author is:\n\n "+n)}}function s(t){return t.start.line==t.end.line?"on line "+t.start.line:"between lines "+t.start.line+" and "+t.end.line}function h(t){var r=typeof t;if("function"===r){var e=t.func?t.func.name:t.name;return""}if("boolean"===r)return t?"True":"False";if("number"===r)return t+"";if(t instanceof String)return"'"+p(t,!0)+"'";if("string"===r)return'"'+p(t,!1)+'"';if(null===t)return"null";if("object"===r&&"ctor"in t){var n=t.ctor.substring(0,5);if("_Tupl"===n){var o=[];for(var a in t)"ctor"!==a&&o.push(h(t[a]));return"("+o.join(",")+")"}if("_Task"===n)return"";if("_Array"===t.ctor){var i=F(t);return"Array.fromList "+h(i)}if(""===t.ctor)return"";if("_Process"===t.ctor)return"";if("::"===t.ctor){var o="["+h(t._0);for(t=t._1;"::"===t.ctor;)o+=","+h(t._0),t=t._1;return o+"]"}if("[]"===t.ctor)return"[]";if("Set_elm_builtin"===t.ctor)return"Set.fromList "+h(_elm_lang$core$Set$toList(t));if("RBNode_elm_builtin"===t.ctor||"RBEmpty_elm_builtin"===t.ctor)return"Dict.fromList "+h(at(t));var o="";for(var u in t)if("ctor"!==u){var c=h(t[u]),l=c[0],f="{"===l||"("===l||"<"===l||'"'===l||c.indexOf(" ")<0;o+=" "+(f?c:"("+c+")")}return t.ctor+o}if("object"===r){if(t instanceof Date)return"<"+t.toString()+">";if(t.elm_web_socket)return"";var o=[];for(var a in t)o.push(a+" = "+h(t[a]));return 0===o.length?"{}":"{ "+o.join(", ")+" }"}return""}function p(t,r){var e=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return r?e.replace(/\'/g,"\\'"):e.replace(/\"/g,'\\"')}var g=-1,v=0,m=1,b={ctor:"_Tuple0"},y=0,k={ctor:"[]"};return{eq:t,cmp:n,Tuple0:b,Tuple2:o,chr:a,update:u,guid:i,append:r(l),crash:f,crashCase:_,toString:h}}(),g=(r(function(t,r){var e=r;return l(t,e._0,e._1)}),e(function(t,r,e){return t({ctor:"_Tuple2",_0:r,_1:e})}),e(function(t,r,e){return l(t,e,r)}),r(function(t,r){return t})),v=v||{};v["<|"]=r(function(t,r){return t(r)});var v=v||{};v["|>"]=r(function(t,r){return r(t)});var v=v||{};v[">>"]=e(function(t,r,e){return r(t(e))});var v=v||{};v["<<"]=e(function(t,r,e){return t(r(e))});var v=v||{};v["++"]=p.append;var m=p.toString,b=(h.isInfinite,h.isNaN,h.toFloat),y=h.ceiling,k=(h.floor,h.truncate,h.round,h.not),v=(h.xor,v||{});v["||"]=h.or;var v=v||{};v["&&"]=h.and;var T=(h.max,h.min,h.compare),v=v||{};v[">="]=h.ge;var v=v||{};v["<="]=h.le;var v=v||{};v[">"]=h.gt;var v=v||{};v["<"]=h.lt;var v=v||{};v["/="]=h.neq;var v=v||{};v["=="]=h.eq;var v=(h.e,h.pi,h.clamp,h.logBase,h.abs,h.negate,h.sqrt,h.atan2,h.atan,h.asin,h.acos,h.tan,h.sin,h.cos,v||{});v["^"]=h.exp;var v=v||{};v["%"]=h.mod;var v=(h.rem,v||{});v["//"]=h.div;var v=v||{};v["/"]=h.floatDiv;var v=v||{};v["*"]=h.mul;var v=v||{};v["-"]=h.sub;var v=v||{};v["+"]=h.add;var w=(h.toPolar,h.fromPolar,h.turns,h.degrees,r(function(t,r){var e=r;return"Just"===e.ctor?e._0:t})),B={ctor:"Nothing"},x=(r(function(t,r){var e=t;return"Just"===e.ctor?r(e._0):B}),function(t){return{ctor:"Just",_0:t}}),R=(r(function(t,r){var e=r;return"Just"===e.ctor?x(t(e._0)):B}),e(function(t,r,e){var n={ctor:"_Tuple2",_0:r,_1:e};return"_Tuple2"===n.ctor&&"Just"===n._0.ctor&&"Just"===n._1.ctor?x(l(t,n._0._0,n._1._0)):B}),n(function(t,r,e,n){var o={ctor:"_Tuple3",_0:r,_1:e,_2:n};return"_Tuple3"===o.ctor&&"Just"===o._0.ctor&&"Just"===o._1.ctor&&"Just"===o._2.ctor?x(f(t,o._0._0,o._1._0,o._2._0)):B}),o(function(t,r,e,n,o){var a={ctor:"_Tuple4",_0:r,_1:e,_2:n,_3:o};return"_Tuple4"===a.ctor&&"Just"===a._0.ctor&&"Just"===a._1.ctor&&"Just"===a._2.ctor&&"Just"===a._3.ctor?x(_(t,a._0._0,a._1._0,a._2._0,a._3._0)):B}),a(function(t,r,e,n,o,a){var i={ctor:"_Tuple5",_0:r,_1:e,_2:n,_3:o,_4:a};return"_Tuple5"===i.ctor&&"Just"===i._0.ctor&&"Just"===i._1.ctor&&"Just"===i._2.ctor&&"Just"===i._3.ctor&&"Just"===i._4.ctor?x(s(t,i._0._0,i._1._0,i._2._0,i._3._0,i._4._0)):B}),function(){function t(t,r){return{ctor:"::",_0:t,_1:r}}function i(r){for(var e=k,n=r.length;n--;)e=t(r[n],e);return e}function u(t){for(var r=[];"[]"!==t.ctor;)r.push(t._0),t=t._1;return r}function c(r,e){var n=k;if(r<=e)do n=t(e,n);while(e-- >r);return n}function d(t,r,e){for(var n=u(e),o=r,a=n.length;a--;)o=l(t,n[a],o);return o}function h(t,r,e){for(var n=[];"[]"!==r.ctor&&"[]"!==e.ctor;)n.push(l(t,r._0,e._0)),r=r._1,e=e._1;return i(n)}function g(t,r,e,n){for(var o=[];"[]"!==r.ctor&&"[]"!==e.ctor&&"[]"!==n.ctor;)o.push(f(t,r._0,e._0,n._0)),r=r._1,e=e._1,n=n._1;return i(o)}function v(t,r,e,n,o){for(var a=[];"[]"!==r.ctor&&"[]"!==e.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor;)a.push(_(t,r._0,e._0,n._0,o._0)),r=r._1,e=e._1,n=n._1,o=o._1;return i(a)}function m(t,r,e,n,o,a){for(var u=[];"[]"!==r.ctor&&"[]"!==e.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor;)u.push(s(t,r._0,e._0,n._0,o._0,a._0)),r=r._1,e=e._1,n=n._1,o=o._1,a=a._1;return i(u)}function b(t,r){return i(u(r).sort(function(r,e){return p.cmp(t(r),t(e))}))}function y(t,r){return i(u(r).sort(function(r,e){var n=t(r)(e).ctor;return"EQ"===n?0:"LT"===n?-1:1}))}var k={ctor:"[]"};return{Nil:k,Cons:t,cons:r(t),toArray:u,fromArray:i,range:c,foldr:e(d),map2:e(h),map3:n(g),map4:o(v),map5:a(m),sortBy:r(b),sortWith:r(y)}}()),N=(R.sortWith,R.sortBy,r(function(t,r){for(;;){if(p.cmp(t,0)<1)return r;var e=r;if("[]"===e.ctor)return r;var n=t-1,o=e._1;t=n,r=o}}),R.map5,R.map4,R.map3,R.map2),A=r(function(t,r){for(;;){var e=r;if("[]"===e.ctor)return!1;if(t(e._0))return!0;var n=t,o=e._1;t=n,r=o}}),E=(r(function(t,r){return k(l(A,function(r){return k(t(r))},r))}),R.foldr),S=e(function(t,r,e){for(;;){var n=e;if("[]"===n.ctor)return r;var o=t,a=l(t,n._0,r),i=n._1;t=o,r=a,e=i}}),O=function(t){return f(S,r(function(t,r){return r+1}),0,t)},L=(r(function(t,r){return f(N,t,R.range(0,O(r)-1),r)}),r(function(t,r){return l(A,function(r){return p.eq(r,t)},r)}),L||{});L["::"]=R.cons;var C=r(function(t,e){return f(E,r(function(r,e){return l(L["::"],t(r),e)}),R.fromArray([]),e)}),M=(r(function(t,e){var n=r(function(r,e){return t(r)?l(L["::"],r,e):e});return f(E,n,R.fromArray([]),e)}),e(function(t,r,e){var n=t(r);return"Just"===n.ctor?l(L["::"],n._0,e):e})),j=(r(function(t,r){return f(E,M(t),R.fromArray([]),r)}),function(t){return f(S,r(function(t,r){return l(L["::"],t,r)}),R.fromArray([]),t)}),P=(e(function(t,e,n){var o=r(function(r,e){var n=e;return"::"===n.ctor?l(L["::"],l(t,r,n._0),e):R.fromArray([])});return j(f(S,o,R.fromArray([e]),n))}),r(function(t,e){var n=e;return"[]"===n.ctor?t:f(E,r(function(t,r){return l(L["::"],t,r)}),e,t)})),J=function(t){return f(E,P,R.fromArray([]),t)},I=(r(function(t,r){return J(l(C,t,r))}),r(function(t,e){var n=r(function(r,e){var n=e,o=n._0,a=n._1;return t(r)?{ctor:"_Tuple2",_0:l(L["::"],r,o),_1:a}:{ctor:"_Tuple2",_0:o,_1:l(L["::"],r,a)}});return f(E,n,{ctor:"_Tuple2",_0:R.fromArray([]),_1:R.fromArray([])},e)}),r(function(t,e){var n=e;if("[]"===n.ctor)return R.fromArray([]);var o=r(function(r,e){return l(L["::"],t,l(L["::"],r,e))}),a=f(E,o,R.fromArray([]),n._1);return l(L["::"],n._0,a)}),e(function(t,r,e){for(;;){if(p.cmp(t,0)<1)return e;var n=r;if("[]"===n.ctor)return e;var o=t-1,a=n._1,i=l(L["::"],n._0,e);t=o,r=a,e=i}})),U=r(function(t,r){return j(f(I,t,r,R.fromArray([])))}),z=e(function(t,r,e){if(p.cmp(r,0)<1)return R.fromArray([]);var n={ctor:"_Tuple2",_0:r,_1:e};t:do{r:do{if("_Tuple2"!==n.ctor)break t;if("[]"===n._1.ctor)return e;if("::"!==n._1._1.ctor){if(1===n._0)break r;break t}switch(n._0){case 1:break r;case 2:return R.fromArray([n._1._0,n._1._1._0]);case 3:if("::"===n._1._1._1.ctor)return R.fromArray([n._1._0,n._1._1._0,n._1._1._1._0]);break t;default:if("::"===n._1._1._1.ctor&&"::"===n._1._1._1._1.ctor){var o=n._1._1._1._0,a=n._1._1._0,i=n._1._0,u=n._1._1._1._1._0,c=n._1._1._1._1._1;return p.cmp(t,1e3)>0?l(L["::"],i,l(L["::"],a,l(L["::"],o,l(L["::"],u,l(U,r-4,c))))):l(L["::"],i,l(L["::"],a,l(L["::"],o,l(L["::"],u,f(z,t+1,r-4,c)))))}break t}}while(!1);return R.fromArray([n._1._0])}while(!1);return e}),q=(r(function(t,r){return f(z,0,t,r)}),e(function(t,r,e){for(;;){if(p.cmp(r,0)<1)return t;var n=l(L["::"],e,t),o=r-1,a=e;t=n,r=o,e=a}})),F=(r(function(t,r){return f(q,R.fromArray([]),t,r)}),d.append,d.length,d.slice,d.set,r(function(t,r){return p.cmp(0,t)<1&&p.cmp(t,d.length(r))<0?x(l(d.get,t,r)):B}),d.push,d.empty,r(function(t,e){var n=r(function(r,e){return t(r)?l(d.push,r,e):e});return f(d.foldl,n,d.empty,e)}),d.foldr,d.foldl,d.indexedMap,d.map,d.toList),D=(d.fromList,d.initialize),H=(r(function(t,r){return l(D,t,g(r))}),function(){return{fromCode:function(t){return p.chr(String.fromCharCode(t))},toCode:function(t){return t.charCodeAt(0)},toUpper:function(t){return p.chr(t.toUpperCase())},toLower:function(t){return p.chr(t.toLowerCase())},toLocaleUpper:function(t){return p.chr(t.toLocaleUpperCase())},toLocaleLower:function(t){return p.chr(t.toLocaleLowerCase())}}}()),Q=(H.fromCode,H.toCode),W=(H.toLocaleLower,H.toLocaleUpper,H.toLower,H.toUpper,e(function(t,r,e){var n=Q(e);return p.cmp(n,Q(t))>-1&&p.cmp(n,Q(r))<1})),$=(l(W,p.chr("A"),p.chr("Z")),l(W,p.chr("a"),p.chr("z")),l(W,p.chr("0"),p.chr("9")),l(W,p.chr("0"),p.chr("7")),function(){function t(t){return{ctor:"_Task_succeed",value:t}}function e(t){return{ctor:"_Task_fail",value:t}}function n(t){return{ctor:"_Task_nativeBinding",callback:t,cancel:null}}function o(t,r){return{ctor:"_Task_andThen",task:t,callback:r}}function a(t,r){return{ctor:"_Task_onError",task:t,callback:r}}function i(t){return{ctor:"_Task_receive",callback:t}}function u(t){var r={ctor:"_Process",id:p.guid(),root:t,stack:null,mailbox:[]};return h(r),r}function c(r){return n(function(e){var n=u(r);e(t(n))})}function l(t,r){t.mailbox.push(r),h(t)}function f(r,e){return n(function(n){l(r,e),n(t(p.Tuple0))})}function _(r){return n(function(e){var n=r.root;"_Task_nativeBinding"===n.ctor&&n.cancel&&n.cancel(),r.root=null,e(t(p.Tuple0))})}function s(r){return n(function(e){var n=setTimeout(function(){e(t(p.Tuple0))},r);return function(){clearTimeout(n)}})}function d(t,r){for(;t
Oops! Something went wrong when starting your Elm program.
'+t+"
"}function a(t,r){return function(e,n,a){try{var c=u(t,r);return a||(c.renderer=i),d(t,c,e,n)}catch(l){throw e.innerHTML=o(l.message),l}}}function i(){return{update:function(){}}}function u(t,e){var n=e.main;if("undefined"==typeof n.init){var o=k(R.Nil),a=p.Tuple2(p.Tuple0,o);return Zt({init:function(){return a},view:function(){return n},update:r(function(){return a}),subscriptions:function(){return o}})}var i=e.flags,u=i?s(t,n.init,i):c(t,n.init);return Zt({init:u,view:n.view,update:n.update,subscriptions:n.subscriptions})}function c(t,r){return function(e){if("undefined"!=typeof e)throw new Error("You are giving module `"+t+"` an argument in JavaScript.\nThis module does not take arguments though! You probably need to change the\ninitialization code to something like `Elm."+t+".fullscreen()`");
2 | return r()}}function s(t,r,e){return function(n){var o=l(Ht.run,e,n);if("Err"===o.ctor)throw new Error("You are trying to initialize module `"+t+"` with an unexpected argument.\nWhen trying to convert it to a usable Elm value, I run into this problem:\n\n"+o._0);return r(o._0)}}function d(t,r,e,n){function o(t,r){return $.nativeBinding(function(e){var n=l(c,t,r);r=n._0,i.update(_(r));var o=n._1,a=f(r);w(d,o,a),e($.succeed(r))})}function a(t){$.rawSend(g,t)}var i,u=r.init,c=r.update,f=r.subscriptions,_=r.view,s=r.renderer,d={},p=$.nativeBinding(function(t){var r=u(n),o=r._0;i=s(e,a,_(o));var c=r._1,l=f(o);w(d,c,l),t($.succeed(o))}),g=b(p,o),v=h(d,a);return v?{ports:v}:{}}function h(t,r){var e;for(var n in C){var o=C[n];o.isForeign&&(e=e||{},e[n]="cmd"===o.tag?S(n):L(n,r)),t[n]=g(o,r)}return e}function g(t,r){function e(t,r){if("self"===t.ctor)return f(i,n,t._0,r);var e=t._0;switch(o){case"cmd":return f(a,n,e.cmds,r);case"sub":return f(a,n,e.subs,r);case"fx":return _(a,n,e.cmds,e.subs,r)}}var n={main:r,self:void 0},o=t.tag,a=t.onEffects,i=t.onSelfMsg,u=b(t.init,e);return n.self=u,u}function v(t,r){return $.nativeBinding(function(e){t.main(r),e($.succeed(p.Tuple0))})}function m(t,r){return l($.send,t.self,{ctor:"self",_0:r})}function b(t,r){function e(t){var o=$.receive(function(e){return r(e,t)});return l(n,o,e)}var n=$.andThen,o=l(n,t,e);return $.rawSpawn(o)}function y(t){return function(r){return{type:"leaf",home:t,value:r}}}function k(t){return{type:"node",branches:t}}function T(t,r){return{type:"map",tagger:t,tree:r}}function w(t,r,e){var n={};B(!0,r,n,null),B(!1,e,n,null);for(var o in t){var a=o in n?n[o]:{cmds:R.Nil,subs:R.Nil};$.rawSend(t[o],{ctor:"fx",_0:a})}}function B(t,r,e,n){switch(r.type){case"leaf":var o=r.home,a=x(t,o,n,r.value);return void(e[o]=N(t,a,e[o]));case"node":for(var i=r.branches;"[]"!==i.ctor;)B(t,i._0,e,n),i=i._1;return;case"map":return void B(t,r.tree,e,{tagger:r.tagger,rest:n})}}function x(t,r,e,n){function o(t){for(var r=e;r;)t=r.tagger(t),r=r.rest;return t}var a=t?C[r].cmdMap:C[r].subMap;return l(a,o,n)}function N(t,r,e){return e=e||{cmds:R.Nil,subs:R.Nil},t?(e.cmds=R.Cons(r,e.cmds),e):(e.subs=R.Cons(r,e.subs),e)}function A(t){if(t in C)throw new Error("There can only be one port named `"+t+"`, but your program has multiple.")}function E(t,r){return A(t),C[t]={tag:"cmd",cmdMap:M,converter:r,isForeign:!0},y(t)}function S(t){function r(t,r,e){for(;"[]"!==r.ctor;){for(var n=i(r._0),o=0;o=0&&a.splice(r,1)}var a=[],i=C[t].converter,u=$.succeed(null);return C[t].init=u,C[t].onEffects=e(r),{subscribe:n,unsubscribe:o}}function O(t,r){return A(t),C[t]={tag:"sub",subMap:j,converter:r,isForeign:!0},y(t)}function L(t,r){function n(t,r,e){for(var n=o(t,r,e),a=0;a0;)1&t&&(e+=r),t>>=1,r+=r;return e}function m(t,r,e){return e.slice(t,r)}function b(t,r){return t<1?"":r.slice(0,t)}function y(t,r){return t<1?"":r.slice(-t)}function k(t,r){return t<1?r:r.slice(t)}function T(t,r){return t<1?r:r.slice(0,-t)}function w(t,r,e){var n=(t-e.length)/2;return v(Math.ceil(n),r)+e+v(0|n,r)}function N(t,r,e){return e+v(t-e.length,r)}function A(t,r,e){return v(t-e.length,r)+e}function E(t){return t.trim()}function S(t){return t.replace(/^\s+/,"")}function O(t){return t.replace(/\s+$/,"")}function L(t){return R.fromArray(t.trim().split(/\s+/g))}function C(t){return R.fromArray(t.split(/\r\n|\r|\n/g))}function M(t){return t.toUpperCase()}function j(t){return t.toLowerCase()}function P(t,r){for(var e=r.length;e--;)if(t(p.chr(r[e])))return!0;return!1}function J(t,r){for(var e=r.length;e--;)if(!t(p.chr(r[e])))return!1;return!0}function I(t,r){return r.indexOf(t)>-1}function U(t,r){return 0===r.indexOf(t)}function z(t,r){return r.length>=t.length&&r.lastIndexOf(t)===r.length-t.length}function q(t,r){var e=t.length;if(e<1)return R.Nil;for(var n=0,o=[];(n=r.indexOf(t,n))>-1;)o.push(n),n+=e;return R.fromArray(o)}function F(t){var r=t.length;if(0===r)return Z("could not convert string '"+t+"' to an Int");var e=0;if("-"===t[0]){if(1===r)return Z("could not convert string '"+t+"' to an Int");e=1}for(var n=e;n0?{ctor:"_Tuple2",_0:c,_1:f(o,r,e,u)}:{ctor:"_Tuple2",_0:s,_1:_(n,h,d,e,u)};var g=r,v=e,m={ctor:"_Tuple2",_0:s,_1:f(t,h,d,u)};r=g,e=v,a=m}}),l=f(it,c,{ctor:"_Tuple2",_0:at(a),_1:u},i),s=l._0,d=l._1;return f(S,r(function(r,e){var n=r;return f(t,n._0,n._1,e)}),d,s)}),n(function(t,r,e,n){return rt.crash(nt(R.fromArray(["Internal red-black tree invariant violated, expected ",t," and got ",m(r),"/",e,"/",n,"\nPlease report this bug to "])))})),ct=function(t){var r=t;t:do{if("RBNode_elm_builtin"===r.ctor){if("BBlack"===r._0.ctor)return!0;break t}if("LBBlack"===r._0.ctor)return!0;break t}while(!1);return!1},lt=r(function(t,r){for(;;){var e=r;if("RBEmpty_elm_builtin"===e.ctor)return t;var n=l(lt,t+1,e._4),o=e._3;t=n,r=o}}),ft=r(function(t,r){t:for(;;){var e=r;if("RBEmpty_elm_builtin"===e.ctor)return B;var n=l(T,t,e._1);switch(n.ctor){case"LT":var o=t,a=e._3;t=o,r=a;continue t;case"EQ":return x(e._2);default:var i=t,u=e._4;t=i,r=u;continue t}}}),_t=r(function(t,r){var e=l(ft,t,r);return"Just"===e.ctor}),st=e(function(t,r,e){for(;;){var n=e;if("RBEmpty_elm_builtin"===n.ctor)return{ctor:"_Tuple2",_0:t,_1:r};var o=n._1,a=n._2,i=n._4;t=o,r=a,e=i}}),dt={ctor:"NBlack"},ht={ctor:"BBlack"},pt={ctor:"Black"},gt=function(t){var r=t;if("RBNode_elm_builtin"===r.ctor){var e=r._0;return p.eq(e,pt)||p.eq(e,ht)}return!0},vt={ctor:"Red"},mt=function(t){var r=t;switch(r.ctor){case"Black":return ht;case"Red":return pt;case"NBlack":return vt;default:return rt.crash("Can't make a double black node more black!")}},bt=function(t){var r=t;switch(r.ctor){case"BBlack":return pt;case"Black":return vt;case"Red":return dt;default:return rt.crash("Can't make a negative black node less black!")}},yt={ctor:"LBBlack"},kt={ctor:"LBlack"},Tt=function(t){return{ctor:"RBEmpty_elm_builtin",_0:t}},wt=Tt(kt),Bt=o(function(t,r,e,n,o){return{ctor:"RBNode_elm_builtin",_0:t,_1:r,_2:e,_3:n,_4:o}}),xt=function(t){var r=t;return"RBNode_elm_builtin"===r.ctor&&"Red"===r._0.ctor?s(Bt,pt,r._1,r._2,r._3,r._4):t},Rt=function(t){var r=t;return"RBNode_elm_builtin"===r.ctor?s(Bt,bt(r._0),r._1,r._2,r._3,r._4):Tt(kt)},Nt=function(t){return function(r){return function(e){return function(n){return function(o){return function(a){return function(i){return function(u){return function(c){return function(l){return function(f){return s(Bt,bt(t),n,o,s(Bt,pt,r,e,u,c),s(Bt,pt,a,i,l,f))}}}}}}}}}}},At=function(t){var r=t;return"RBEmpty_elm_builtin"===r.ctor?Tt(kt):s(Bt,pt,r._1,r._2,r._3,r._4)},Et=function(t){var r=t;return"RBEmpty_elm_builtin"===r.ctor?rt.crash("can't make a Leaf red"):s(Bt,vt,r._1,r._2,r._3,r._4)},St=function(t){var r=t;t:do{r:do{e:do{n:do{o:do{a:do{i:do{if("RBNode_elm_builtin"!==r.ctor)break t;if("RBNode_elm_builtin"===r._3.ctor)if("RBNode_elm_builtin"===r._4.ctor)switch(r._3._0.ctor){case"Red":switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;break t;case"NBlack":if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;break t;default:if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;break t}case"NBlack":switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t;case"NBlack":if("BBlack"===r._0.ctor){if("RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;if("RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t}break t;default:if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t}default:switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;break t;case"NBlack":if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;break t;default:break t}}else switch(r._3._0.ctor){case"Red":if("RBNode_elm_builtin"===r._3._3.ctor&&"Red"===r._3._3._0.ctor)break i;if("RBNode_elm_builtin"===r._3._4.ctor&&"Red"===r._3._4._0.ctor)break a;break t;case"NBlack":if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._3._3.ctor&&"Black"===r._3._3._0.ctor&&"RBNode_elm_builtin"===r._3._4.ctor&&"Black"===r._3._4._0.ctor)break r;break t;default:break t}else{if("RBNode_elm_builtin"!==r._4.ctor)break t;switch(r._4._0.ctor){case"Red":if("RBNode_elm_builtin"===r._4._3.ctor&&"Red"===r._4._3._0.ctor)break o;if("RBNode_elm_builtin"===r._4._4.ctor&&"Red"===r._4._4._0.ctor)break n;break t;case"NBlack":if("BBlack"===r._0.ctor&&"RBNode_elm_builtin"===r._4._3.ctor&&"Black"===r._4._3._0.ctor&&"RBNode_elm_builtin"===r._4._4.ctor&&"Black"===r._4._4._0.ctor)break e;break t;default:break t}}}while(!1);return Nt(r._0)(r._3._3._1)(r._3._3._2)(r._3._1)(r._3._2)(r._1)(r._2)(r._3._3._3)(r._3._3._4)(r._3._4)(r._4)}while(!1);return Nt(r._0)(r._3._1)(r._3._2)(r._3._4._1)(r._3._4._2)(r._1)(r._2)(r._3._3)(r._3._4._3)(r._3._4._4)(r._4)}while(!1);return Nt(r._0)(r._1)(r._2)(r._4._3._1)(r._4._3._2)(r._4._1)(r._4._2)(r._3)(r._4._3._3)(r._4._3._4)(r._4._4)}while(!1);return Nt(r._0)(r._1)(r._2)(r._4._1)(r._4._2)(r._4._4._1)(r._4._4._2)(r._3)(r._4._3)(r._4._4._3)(r._4._4._4)}while(!1);return s(Bt,pt,r._4._3._1,r._4._3._2,s(Bt,pt,r._1,r._2,r._3,r._4._3._3),s(Ot,pt,r._4._1,r._4._2,r._4._3._4,Et(r._4._4)))}while(!1);return s(Bt,pt,r._3._4._1,r._3._4._2,s(Ot,pt,r._3._1,r._3._2,Et(r._3._3),r._3._4._3),s(Bt,pt,r._1,r._2,r._3._4._4,r._4))}while(!1);return t},Ot=o(function(t,r,e,n,o){var a=s(Bt,t,r,e,n,o);return gt(a)?St(a):a}),Lt=o(function(t,r,e,n,o){return ct(n)||ct(o)?s(Ot,mt(t),r,e,Rt(n),Rt(o)):s(Bt,t,r,e,n,o)}),Ct=o(function(t,r,e,n,o){var a=o;return"RBEmpty_elm_builtin"===a.ctor?f(Mt,t,n,o):s(Lt,t,r,e,n,s(Ct,a._0,a._1,a._2,a._3,a._4))}),Mt=e(function(t,r,e){var n={ctor:"_Tuple2",_0:r,_1:e};if("RBEmpty_elm_builtin"!==n._0.ctor){if("RBEmpty_elm_builtin"===n._1.ctor){var o=n._1._0,a=n._0._0,i={ctor:"_Tuple3",_0:t,_1:a,_2:o};return"_Tuple3"===i.ctor&&"Black"===i._0.ctor&&"Red"===i._1.ctor&&"LBlack"===i._2.ctor?s(Bt,pt,n._0._1,n._0._2,n._0._3,n._0._4):_(ut,"Black/Red/LBlack",t,m(a),m(o))}var u=n._0._2,c=n._0._4,l=n._0._1,d=s(Ct,n._0._0,l,u,n._0._3,c),h=f(st,l,u,c),p=h._0,g=h._1;return s(Lt,t,p,g,d,e)}if("RBEmpty_elm_builtin"!==n._1.ctor){var v=n._1._0,b=n._0._0,y={ctor:"_Tuple3",_0:t,_1:b,_2:v};return"_Tuple3"===y.ctor&&"Black"===y._0.ctor&&"LBlack"===y._1.ctor&&"Red"===y._2.ctor?s(Bt,pt,n._1._1,n._1._2,n._1._3,n._1._4):_(ut,"Black/LBlack/Red",t,m(b),m(v))}var k=t;switch(k.ctor){case"Red":return Tt(kt);case"Black":return Tt(yt);default:return rt.crash("cannot have bblack or nblack nodes at this point")}}),jt=r(function(t,r){var e=r;if("RBEmpty_elm_builtin"===e.ctor)return Tt(kt);var n=e._1;return s(Bt,e._0,n,l(t,n,e._2),l(jt,t,e._3),l(jt,t,e._4))}),Pt={ctor:"Same"},Jt={ctor:"Remove"},It={ctor:"Insert"},Ut=e(function(t,r,e){var n=function(e){var o=e;if("RBEmpty_elm_builtin"===o.ctor){var a=r(B);return"Nothing"===a.ctor?{ctor:"_Tuple2",_0:Pt,_1:wt}:{ctor:"_Tuple2",_0:It,_1:s(Bt,vt,t,a._0,wt,wt)}}var i=o._2,u=o._4,c=o._3,_=o._1,d=o._0,h=l(T,t,_);switch(h.ctor){case"EQ":var p=r(x(i));return"Nothing"===p.ctor?{ctor:"_Tuple2",_0:Jt,_1:f(Mt,d,c,u)}:{ctor:"_Tuple2",_0:Pt,_1:s(Bt,d,_,p._0,c,u)};case"LT":var g=n(c),v=g._0,m=g._1,b=v;switch(b.ctor){case"Same":return{ctor:"_Tuple2",_0:Pt,_1:s(Bt,d,_,i,m,u)};case"Insert":return{ctor:"_Tuple2",_0:It,_1:s(Ot,d,_,i,m,u)};default:return{ctor:"_Tuple2",_0:Jt,_1:s(Lt,d,_,i,m,u)}}default:var y=n(u),v=y._0,k=y._1,w=v;switch(w.ctor){case"Same":return{ctor:"_Tuple2",_0:Pt,_1:s(Bt,d,_,i,c,k)};case"Insert":return{ctor:"_Tuple2",_0:It,_1:s(Ot,d,_,i,c,k)};default:return{ctor:"_Tuple2",_0:Jt,_1:s(Lt,d,_,i,c,k)}}}},o=n(e),a=o._0,i=o._1,u=a;switch(u.ctor){case"Same":return i;case"Insert":return xt(i);default:return At(i)}}),zt=e(function(t,r,e){return f(Ut,t,g(x(r)),e)}),qt=(r(function(t,r){return f(zt,t,r,wt)}),r(function(t,r){return f(it,zt,r,t)}),r(function(t,r){var n=e(function(r,e,n){return l(t,r,e)?f(zt,r,e,n):n});return f(it,n,wt,r)})),Ft=(r(function(t,e){return l(qt,r(function(t,r){return l(_t,t,e)}),t)}),r(function(t,r){var n=e(function(r,e,n){var o=n,a=o._1,i=o._0;return l(t,r,e)?{ctor:"_Tuple2",_0:f(zt,r,e,i),_1:a}:{ctor:"_Tuple2",_0:i,_1:f(zt,r,e,a)}});return f(it,n,{ctor:"_Tuple2",_0:wt,_1:wt},r)}),r(function(t,r){return f(Ut,t,g(B),r)})),Dt=(r(function(t,r){return f(it,e(function(t,r,e){return l(Ft,t,e)}),t,r)}),K.batch),Ht=(Dt(R.fromArray([])),K.map,rt.crash,rt.log,function(){function t(t){return{ctor:"",tag:"succeed",msg:t}}function l(t){return{ctor:"",tag:"fail",msg:t}}function f(t){return{ctor:"",tag:t}}function _(t,r){return{ctor:"",tag:t,decoder:r}}function s(t){return{ctor:"",tag:"null",value:t}}function h(t,r){return{ctor:"",tag:"field",field:t,decoder:r}}function g(t){return{ctor:"",tag:"key-value",decoder:t}}function v(t,r){return{ctor:"",tag:"map-many",func:t,decoders:r}}function m(t,r){return{ctor:"",tag:"tuple",func:t,decoders:r}}function b(t,r){return{ctor:"",tag:"andThen",decoder:t,callback:r}}function y(t,r){return{ctor:"",tag:"customAndThen",decoder:t,callback:r}}function k(t){return{ctor:"",tag:"oneOf",decoders:t}}function T(t,r){return v(t,[r])}function w(t,r,e){return v(t,[r,e])}function N(t,r,e,n){return v(t,[r,e,n])}function A(t,r,e,n,o){return v(t,[r,e,n,o])}function E(t,r,e,n,o,a){return v(t,[r,e,n,o,a])}function S(t,r,e,n,o,a,i){return v(t,[r,e,n,o,a,i])}function O(t,r,e,n,o,a,i,u){return v(t,[r,e,n,o,a,i,u])}function L(t,r,e,n,o,a,i,u,c){return v(t,[r,e,n,o,a,i,u,c])}function C(t,r){return m(t,[r])}function M(t,r,e){return m(t,[r,e])}function j(t,r,e,n){return m(t,[r,e,n])}function P(t,r,e,n,o){return m(t,[r,e,n,o])}function J(t,r,e,n,o,a){return m(t,[r,e,n,o,a])}function I(t,r,e,n,o,a,i){return m(t,[r,e,n,o,a,i])}function U(t,r,e,n,o,a,i,u){return m(t,[r,e,n,o,a,i,u])}function z(t,r,e,n,o,a,i,u,c){return m(t,[r,e,n,o,a,i,u,c])}function q(t){return{tag:"ok",value:t}}function F(t,r){return{tag:"primitive",type:t,value:r}}function D(t,r){return{tag:"index",index:t,rest:r}}function H(t,r){return{tag:"field",field:t,rest:r}}function Q(t){return{tag:"oneOf",problems:t}}function W(t){return{tag:"custom",msg:t}}function $(t){return{tag:"fail",msg:t}}function K(t){for(var r="_";t;)switch(t.tag){case"primitive":return"Expecting "+t.type+("_"===r?"":" at "+r)+" but instead got: "+G(t.value);case"index":r+="["+t.index+"]",t=t.rest;break;case"field":r+="."+t.field,t=t.rest;break;case"oneOf":for(var e=t.problems,n=0;n.");case"PENDING_REQUEST":X(o),u="EXTRA_REQUEST";var t=S(c,l);return i=q(i,c,t,a),void(c=l);case"EXTRA_REQUEST":return void(u="NO_REQUEST")}}var a={tagger:r,parent:void 0},i=w(e,a);t.appendChild(i);var u="NO_REQUEST",c=e,l=e;return{update:n}}function w(t,r){switch(t.type){case"thunk":return t.node||(t.node=t.thunk()),w(t.node,r);case"tagger":for(var e=t.node,n=t.tagger;"tagger"===e.type;)"object"!=typeof n?n=[n,e.tagger]:n.push(e.tagger),e=e.node;var o={tagger:n,parent:r},a=w(e,o);return a.elm_event_node_ref=o,a;case"text":return document.createTextNode(t.text);case"node":var a=t.namespace?document.createElementNS(t.namespace,t.tag):document.createElement(t.tag);B(a,r,t.facts);for(var i=t.children,u=0;u0&&e.push(O("p-thunk",n,f)));case"tagger":for(var _=t.tagger,s=r.tagger,d=!1,h=t.node;"tagger"===h.type;)d=!0,"object"!=typeof _?_=[_,h.tagger]:_.push(h.tagger),h=h.node;for(var p=r.node;"tagger"===p.type;)d=!0,"object"!=typeof s?s=[s,p.tagger]:s.push(p.tagger),p=p.node;return d&&_.length!==s.length?void e.push(O("p-redraw",n,r)):((d?C(_,s):_===s)||e.push(O("p-tagger",n,s)),void L(h,p,e,n+1));case"text":if(t.text!==r.text)return void e.push(O("p-text",n,r.text));return;case"node":if(t.tag!==r.tag||t.namespace!==r.namespace)return void e.push(O("p-redraw",n,r));var g=M(t.facts,r.facts);return"undefined"!=typeof g&&e.push(O("p-facts",n,g)),void j(t,r,e,n);case"keyed-node":if(t.tag!==r.tag||t.namespace!==r.namespace)return void e.push(O("p-redraw",n,r));var g=M(t.facts,r.facts);return"undefined"!=typeof g&&e.push(O("p-facts",n,g)),void P(t,r,e,n);case"custom":if(t.impl!==r.impl)return void e.push(O("p-redraw",n,r));var g=M(t.facts,r.facts);"undefined"!=typeof g&&e.push(O("p-facts",n,g));var v=r.impl.diff(t,r);if(v)return void e.push(O("p-custom",n,v));return}}}function C(t,r){for(var e=0;eu?e.push(O("p-remove-last",n,i-u)):i0||i.length>0||"undefined"!=typeof S)&&e.push(O("p-reorder",n,{patches:o,inserts:i,endInserts:S}))}function J(t,r,e,n,o,a){var i=t[e];if("undefined"==typeof i)return i={tag:"insert",vnode:n,index:o,data:void 0},a.push({index:o,entry:i}),void(t[e]=i);if("remove"===i.tag){a.push({index:o,entry:i}),i.tag="move";var u=[];return L(i.vnode,n,u,i.index),i.index=o,void(i.data.data={patches:u,entry:i})}J(t,r,e+Z,n,o,a)}function I(t,r,e,n,o){var a=t[e];if("undefined"==typeof a){var i=O("p-remove",o,void 0);return r.push(i),void(t[e]={tag:"remove",vnode:n,index:o,data:i})}if("insert"===a.tag){a.tag="move";var u=[];L(n,a.vnode,u,o);var i=O("p-remove",o,{patches:u,entry:a});return void r.push(i)}I(t,r,e+Z,n,o)}function U(t,r,e,n){z(t,r,e,0,0,r.descendantsCount,n)}function z(t,r,e,n,o,a,i){for(var u=e[n],c=u.index;c===o;){var l=u.type;if("p-thunk"===l)U(t,r.node,u.data,i);else if("p-reorder"===l){u.domNode=t,u.eventNode=i;var f=u.data.patches;f.length>0&&z(t,r,f,0,o,a,i)}else if("p-remove"===l){u.domNode=t,u.eventNode=i;var _=u.data;if("undefined"!=typeof _){_.entry.data=t;var f=_.patches;f.length>0&&z(t,r,f,0,o,a,i)}}else u.domNode=t,u.eventNode=i;if(n++,!(u=e[n])||(c=u.index)>a)return n}switch(r.type){case"tagger":for(var s=r.node;"tagger"===s.type;)s=s.node;return z(t,s,e,n,o+1,a,t.elm_event_node_ref);case"node":for(var d=r.children,h=t.childNodes,p=0;pa))return n;o=v}return n;case"keyed-node":for(var d=r.children,h=t.childNodes,p=0;pa))return n;o=v}return n;case"text":case"thunk":throw new Error("should never traverse `text` or `thunk` nodes like this")}}function q(t,r,e,n){return 0===e.length?t:(U(t,r,e,n),F(t,e))}function F(t,r){for(var e=0;e0?100:p.cmp(o,0)<0?0:o},vr=r(function(t,r){var e=t;return{ctor:"_Tuple2",_0:p.update(r,{progress:gr(e._0)}),_1:Y}}),mr=({progress:0,color:x("red"),from:B,to:B},n(function(t,r,e,n){return{progress:t,color:r,from:e,to:n}}),e(function(t,r,e){return{scrollTop:t,targetScrollHeight:r,clientHeight:e}}),function(t){return{ctor:"Progress",_0:t}}),br=K.incomingPort("onScroll",l(Kt,l(Vt[":="],"scrollTop",Yt),function(t){return l(Kt,l(Vt[":="],"targetScrollHeight",Yt),function(r){return l(Kt,l(Vt[":="],"clientHeight",Yt),function(e){return $t({scrollTop:t,targetScrollHeight:r,clientHeight:e})})})})),yr={progress:0,color:B,to:x("lightsalmon"),from:x("lightseagreen")},kr={progressModel:yr},Tr={ctor:"_Tuple2",_0:kr,_1:Y},wr=function(t){return{ctor:"ProgressMsg",_0:t}},Br=function(t){return l(ur,R.fromArray([]),R.fromArray([l(fr,wr,pr(t.progressModel))]))},xr=r(function(t,r){var e=t,n=l(vr,e._0,r.progressModel),o=n._0,a=n._1;return{ctor:"_Tuple2",_0:p.update(r,{progressModel:o}),_1:l(X,wr,a)}}),Rr=function(t){return br(function(t){return wr(mr(t))})},Nr={main:lr({init:Tr,view:Br,update:xr,subscriptions:Rr})},Ar={};if(Ar.Main=Ar.Main||{},K.addPublicModule(Ar.Main,"Main","undefined"==typeof Nr?null:Nr),"function"==typeof define&&define.amd)return void define([],function(){return Ar});if("object"==typeof t)return void(t.exports=Ar);var Er=this.Elm;if("undefined"==typeof Er)return void(this.Elm=Ar);for(var Sr in Ar){if(Sr in Er)throw new Error("There are two Elm modules called `"+Sr+"` on this page! Rename one of them.");Er[Sr]=Ar[Sr]}}).call(this)}]);
--------------------------------------------------------------------------------