<script>
    import {onMount} from 'svelte'

    export let status;
    export let error;

    const dev = process.env.NODE_ENV === 'development';


    var appa = `             .,-:;//;:=,
         . :H@@@MM@M#H/.,+%;,
      ,/X+ +M@@M@MM%=,-%HMMM@X/,
     -+@MM; $M@@MH+-,;XMMMM@MMMM@+-
    ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/.
  ,%MM@@MH ,@%=            .---=-=:=,.
  -@#@@@MX .,              -%HX$$%%%+;
 =-./@M@M$                  .;@MMMM@MM:
 X@/ -$MM/                    .+MM@@@M$
,@M@H: :@:                    . -X#@@@@-
,@@@MMX, .                    /H- ;@M@M=
.H@@@@M@+,                    %MM+..%#$.
 /MMMM@MMH/.                  XM@MH; -;
  /%+%$XHH@$=              , .H@@@@MX,
   .=--------.           -%H.,@@@@@MX,
   .%MM@@@HHHXX$$$%+- .:$MMX -M@@MM%.
     =XMMM@MM@MM#H;,-+HMM@M+ /MMMX=
       =%@M@M#@$-.=$@MM@@@M; %M%=
         ,:+$+-,/H#MMMMMMM@- -,
               =++%%%%+/:-.`;

    var nuke = `             =+$HM####@H%;,
          /H###############M$,
          ,@################+
           .H##############+
             X############/
              $##########/
               %########/
                /X/;;+X/

                 -XHHX-
                ,######,
#############X  .M####M.  X#############
##############-   -//-   -##############
X##############%,      ,+##############X
-##############X        X##############-
 %############%          %############%
  %##########;            ;##########%
   ;#######M=              =M#######;
    .+M###@,                ,@###M+.
       :XH.                  .HX:`;

    var atom = `                 =/;;/-
                +:    //
               /;      /;
              -X        H.
.//;;;:;;-,   X=        :+   .-;:=;:;%;.
M-       ,=;;;#:,      ,:#;;:=,       ,@
:%           :%.=/++++/=.$=           %=
 ,%;         %/:+/;,,/++:+/         ;+.
   ,+/.    ,;@+,        ,%H;,    ,/+,
      ;+;;/= @.  .H##X   -X :///+;
      ;+=;;;.@,  .XM@$.  =X.//;=%/.
   ,;:      :@%=        =$H:     .+%-
 ,%=         %;-///==///-//         =%,
;+           :%-;;;;;;;;-X-           +:
@-      .-;;;;M-        =M/;;;-.      -X
 :;;::;;-.    %-        :+    ,-;;-;:==
              ,X        H.
               ;/      %=
                //    +;
                 ,////,`;

    var heart = `                          .,---.
                        ,/XM#MMMX;,
                      -%##########M%,
                     -@######%  $###@=
      .,--,         -H#######$   $###M:
   ,;$M###MMX;     .;##########$;HM###X=
,/@###########H=      ;################+
-+#############M/,      %##############+
%M###############=      /##############:
H################      .M#############;.
@###############M      ,@###########M:.
X################,      -$=X#######@:
/@##################%-     +######$-
.;##################X     .X#####+,
 .;H################/     -X####+.
   ,;X##############,       .MM/
      ,:+$H@M#######M#$-    .$$=
           .,-=;+$@###X:    ;/=.
                  .,/X$;   .::,
                      .,    ..`;

    var fire = `                     -$-
                    .H##H,
                   +######+
                .+#########H.
              -$############@.
            =H###############@  -X:
          .$##################:  @#@-
     ,;  .M###################;  H###;
   ;@#:  @###################@  ,#####:
 -M###.  M#################@.  ;######H
 M####-  +###############$   =@#######X
 H####$   -M###########+   :#########M,
  /####X-   =########%   :M########@/.
    ,;%H@X;   .$###X   :##MM@%+;:-
                 ..
  -/;:-,.              ,,-==+M########H
 -##################@HX%%+%%$%%%+:,,
    .-/H%%%+%%$H@###############M@+=:/+:
/XHX%:#####MH%=    ,---:;;;;/&&XHM,:###$
$@#MX %+;-                           .`;

    var tick = `                                     :X-
                                  :X###
                                ;@####@
                              ;M######X
                            -@########$
                          .$##########@
                         =M############-
                        +##############$
                      .H############$=.
         ,/:         ,M##########M;.
      -+@###;       =##########M;
   =%M#######;     :#########M/
-$M###########;   :########/
 ,;X###########; =#######$.
     ;H#########+######M=
       ,+#############+
          /M########@-
            ;M#####%
              +####:
               ,$M-`;

    var bang = `            .+
             /M;
              H#@:              ;,
              -###H-          -@/
               %####$.  -;  .%#X
                M#####+;#H :M#M.
..          .+/;%#############-
 -/%H%+;-,    +##############/
    .:$M###MH$%+############X  ,--=;-
        -/H#####################H+=.
           .+#################X.
         =%M####################H;.
            /@###############+;;/%%;,
         -%###################$
       ;H######################M=
    ,%#####MH$%;+#####M###-/@####%
  :$H%+;=-      -####X.,H#   -+M##@-
 .              ,###;    ;      =$##+
                .#H,               :XH,
                 +                   .;-`;

    var mesa = `           .-;+$XHHHHHHX$+;-.
        ,;X@@X%/;=----=:/%X@@X/,
      =$@@%=.              .=+H@X:
    -XMX:                      =XMX=
   /@@:                          =H@+
  %@X,                            .$@$
 +@X.                               $@%
-@@,                                .@@=
%@%                                  +@$
H@:                                  :@H
H@:         :HHHHHHHHHHHHHHHHHHX,    =@H
%@%         ;@M@@@@@@@@@@@@@@@@@H-   +@$
=@@,        :@@@@@@@@@@@@@@@@@@@@@= .@@:
 +@X        :@@@@@@@@@@@@@@@M@@@@@@:%@%
  $@$,      ;@@@@@@@@@@@@@@@@@M@@@@@@$.
   +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
    =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
      :$@@@@@@@@@@@@@@@@@@@M@@@@$:
        ,;$@@@@@@@@@@@@@@@@@@X/-
           .-;+$XXHHHHHX$+;-.`;

    var cube = `       #+ @      # #              M#@
 .    .X  X.%##@;# #   +@#######X. @H%
   ,==.   ,######M+  -#####%M####M-    #
  :H##M%:=##+ .M##M,;#####/+#######% ,M#
 .M########=  =@#@.=#####M=M#######=  X#
 :@@MMM##M.  -##M.,#######M#######. =  M
             @##..###:.    .H####. @@ X,
   ############: ###,/####;  /##= @#. M
           ,M## ;##,@#M;/M#M  @# X#% X#
.%=   ######M## ##.M#:   ./#M ,M #M ,#$
##/         $## #+;#: #### ;#/ M M- @# :
#+ #M@MM###M-;M #:$#-##$H# .#X @ + $#. #
      ######/.: #%=# M#:MM./#.-#  @#: H#
+,.=   @###: /@ %#,@  ##@X #,-#@.##% .@#
#####+;/##/ @##  @#,+       /#M    . X,
   ;###M#@ M###H .#M-     ,##M  ;@@; ###
   .M#M##H ;####X ,@#######M/ -M###$  -H
    .M###%  X####H  .@@MM@;  ;@#M@
      H#M    /@####/      ,++.  / ==-,
               ,=/:, .+X@MMH@#H  #####$=`;

    var cake = `  ,:/+/-
              /M/              .,-=;//;-
        .:/= ;MH/,    ,=/+%$XH@MM#@:
        -$##@+$###@H@MMM#######H:.    -/H#
  .,H@H@ X######@ -H#####@+-     -+H###@X
    .,@##H;      +XM##M/,     =%@###@X;-
  X%-  :M##########$.    .:%M###@%:
  M##H,   +H@@@$/-.  ,;$M###@%,          -
  M####M=,,---,.-%%H####M$:          ,+@##
  @##################@/.         :%H##@$-
  M###############H,         ;HM##M$=
  #################.    .=$M##M$=
  ################H..;XM##M$=          .:+
  M###################@%=           =+@MH%
  @#################M/.         =+H#X%=
  =+M###############M,      ,/X#H+:,
    .;XM###########H=   ,/X#H+:;
      .=+HM#######M+/+HM@+=.
          ,:/%XM####H/.
                ,.:=-.`;

    //appa
    //atom
    //nuke
    var options = [cake, heart, fire, tick, bang, mesa, cube];

    let active = cake

    function updateView() {
        active = options[Math.floor((Math.random() * options.length))];
        setTimeout(updateView, 5000);
    }

    onMount(() => updateView());

</script>

<style>
    * {
        all: unset;
        font-family: monospace;
        white-space: pre;
    }


    div {
        text-align: center;
    }


    h1, p {
        margin: 0 auto;
    }

    h1 {
        font-size: 2.8em;
        font-weight: 700;
        margin: 0 0 0.5em 0;
    }

    p {
        margin: 1em auto;
    }

    pre {
        display: inline-block;
        margin: 0 auto;
        position: center;
        text-align: left;
        font-family: monospace;
        white-space: pre;
    }

    @media (min-width: 480px) {
        h1 {
            font-size: 4em;
        }
    }
</style>

<svelte:head>
    <title>{status}</title>
</svelte:head>

<h1>{status}</h1>

<p>{error.message}</p>

{#if dev && error.stack}
    <pre>{error.stack}</pre>
{:else}
    <audio controls autoplay>
        <track kind="captions"/>
        <source src="http://quartznet.info/alive.ogg" type="audio/wav">
    </audio>
    <div style="text-align: center; width: 100%; display: inline-block">
        <br>
        <div style="">
    <pre>
        <br>{active}</pre>
        </div>
        <br>
        This was a triumph!
        I'm making a note here:
        Huge success!

        It's hard to overstate
        my satisfaction.

        Aperture Science:
        We do what we must
        because we can
        For the good of all of us.
        Except the ones who are dead.

        But there's no sense crying
        over every mistake.
        You just keep on trying
        'til you run out of cake.
        And the science gets done.
        And you make a neat gun
        for the people who are
        still alive.

        I'm not even angry...
        I'm being so sincere right now.
        Even though you broke my heart,
        and killed me.

        And tore me to pieces.
        And threw every piece into a fire.
        As they burned it hurt because
        I was so happy for you!

        Now, these points of data
        make a beautiful line.
        And we're out of beta.
        We're releasing on time!
        So I'm GLaD I got burned!
        Think of all the things we learned!
        for the people who are
        still alive.

        Go ahead and leave me...
        I think I'd prefer to stay inside...
        Maybe you'll find someone else
        to help you.
        Maybe Black Mesa?
        That was a joke. Ha Ha. Fat Chance!

        Anyway this cake is great!
        It's so delicious and moist!

        Look at me: still talking
        when there's science to do!
        When I look out there,
        it makes me glad I'm not you.

        I've experiments to run.
        There is research to be done.
        On the people who are
        still alive.
        And believe me I am
        still alive.
        I'm doing science and I'm
        still alive.
        I feel fantastic and I'm
        still alive.
        While you're dying I'll be
        still alive.
        And when you're dead I will be
        still alive

        Still alive.

        Still alive.
    </div>
{/if}
