~tomupom/portfolio-redux

51fcde237e4cac307b9c58699b4e545d22e78fa3 — Tom 6 months ago 30ffed3
Added 11ty files
77 files changed, 6780 insertions(+), 0 deletions(-)

A LICENSE
A _includes/layouts/base.njk
A _includes/layouts/error.njk
A _includes/layouts/feed.njk
A _includes/layouts/home.njk
A _includes/layouts/page.njk
A _includes/layouts/post.njk
A _includes/layouts/posts.njk
A _includes/layouts/project.njk
A _includes/snippets/media.njk
A _includes/snippets/meta.njk
A content/404.md
A content/_data/global.json
A content/index.md
A content/media/an-idea-for-a-performance.png
A content/media/aotearoa-artist-ephemera.jpg
A content/media/artists-from-asia.jpg
A content/media/atlas.png
A content/media/church-yard.jpg
A content/media/derridata.jpg
A content/media/e-portfolio.png
A content/media/hyperjam.png
A content/media/index.svg
A content/media/markono.png
A content/media/merveilles.jpg
A content/media/microme.jpg
A content/media/old-site.jpg
A content/media/performa.jpg
A content/media/philemon.jpg
A content/media/praise-of-shadows.jpg
A content/media/the-language-of-art.jpg
A content/media/the-museum-without-walls.png
A content/media/whitecubes.png
A content/pages/about.md
A content/pages/accessibility.md
A content/pages/arena.md
A content/pages/manifesto.md
A content/pages/merveilles.md
A content/pages/siteinfo.md
A content/pages/webring.md
A content/posts.md
A content/posts/and-we-are-off.md
A content/posts/new-stack.md
A content/posts/on-accessibility.md
A content/posts/progression.md
A content/posts/status-update.md
A content/posts/them-tunes.md
A content/projects.md
A content/projects/an-idea-for-a-performance.md
A content/projects/aotearoa-artist-ephemera.md
A content/projects/artists-from-asia.md
A content/projects/atlas.md
A content/projects/church-yard.md
A content/projects/derridata.md
A content/projects/e-portfolio.md
A content/projects/eda.md
A content/projects/future-asian-community.md
A content/projects/hyperjam.md
A content/projects/markono.md
A content/projects/mera.md
A content/projects/merveilles.md
A content/projects/microme.md
A content/projects/museum-without-walls.md
A content/projects/performa.md
A content/projects/philemon.md
A content/projects/praise-of-shadows.md
A content/projects/some-quiet-tips.md
A content/projects/the-language-of-art.md
A content/projects/whitecubes.md
A content/rss.md
A css/index.css
A fonts/Inter-Bold.woff2
A fonts/Inter-BoldItalic.woff2
A fonts/Inter-Italic.woff2
A fonts/Inter-Regular.woff2
A package-lock.json
A package.json
A LICENSE => LICENSE +21 -0
@@ 0,0 1,21 @@
MIT License

Copyright (c) 2020 SB-PH

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

A _includes/layouts/base.njk => _includes/layouts/base.njk +32 -0
@@ 0,0 1,32 @@
<!doctype html>
<html lang="{{ global.lang }}">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{ title ~ ' – ' ~ global.title if title else global.title }}</title>
    <link rel="stylesheet" href="{{ '/css/index.css' | url }}">
    {% include 'snippets/meta.njk' %}
  </head>
  <body>
  
    <header class="site-header">
      <h1 class="site-name">
        <a href="{{ '/' | url }}">{{ global.title }}</a>
      </h1>
      <nav class="site-nav">
        {{ collections.all | eleventyNavigation | eleventyNavigationToHtml | safe }}
      </nav>
    </header>

    <main class="site-main">
      {{ content | safe }}
    </main>

    {% if global.footer %}
      <footer class="site-footer">
        <p>{{ global.footer | markdownifyInline | safe }}</p>
      </footer>
    {% endif %}

  </body>
</html>

A _includes/layouts/error.njk => _includes/layouts/error.njk +7 -0
@@ 0,0 1,7 @@
---
layout: page
permalink: 404.html
eleventyExcludeFromCollections: true
---

{{ content | safe }}

A _includes/layouts/feed.njk => _includes/layouts/feed.njk +32 -0
@@ 0,0 1,32 @@
---json
{
  "permalink": "feed.xml",
  "eleventyExcludeFromCollections": true
}
---
{% if collections.posts.length %}
  <?xml version="1.0" encoding="utf-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
    <title>{{ title }}</title>
    <link href="{{ global.url }}/feed.xml" rel="self"/>
    <link href="{{ global.url }}"/>
    <updated>{{ collections.posts | rssLastUpdatedDate }}</updated>
    <id>{{ global.url }}</id>
    {% if global.author %}
      <author>
        <name>{{ global.author.name }}</name>
        <email>{{ global.author.email }}</email>
      </author>
    {% endif %}
    {%- for post in collections.posts %}
    {% set absolutePostUrl %}{{ post.url | url | absoluteUrl(global.url) }}{% endset %}
    <entry>
      <title>{{ post.data.title }}</title>
      <link href="{{ absolutePostUrl }}"/>
      <updated>{{ post.date | rssDate }}</updated>
      <id>{{ absolutePostUrl }}</id>
      <content type="html">{{ post.templateContent | htmlToAbsoluteUrls(absolutePostUrl) }}</content>
    </entry>
    {%- endfor %}
  </feed>
{% endif %}
\ No newline at end of file

A _includes/layouts/home.njk => _includes/layouts/home.njk +4 -0
@@ 0,0 1,4 @@
---
layout: base
permalink: "/"
---
\ No newline at end of file

A _includes/layouts/page.njk => _includes/layouts/page.njk +11 -0
@@ 0,0 1,11 @@
---
layout: base
permalink: "/{{ page.fileSlug }}/index.html"
---

<article class="page">
  <header class="page-header">
    <h1 class="page-title">{{ title | safe }}</h1>
  </header>
  {{ content | safe }}
</article>

A _includes/layouts/post.njk => _includes/layouts/post.njk +30 -0
@@ 0,0 1,30 @@
---
layout: base
permalink: "/posts/{{ page.fileSlug }}/index.html"
---

<article class="post">
  <header class="post-header">
    <h1 class="post-title">{{ title | safe }}</h1>
    <time class="post-date" datetime="{{ date | dateToFormat('yyyy-LL-dd') }}">{{ date | dateToFormat('d LLL y') }}</time>
  </header>
  {{ content | safe }}
</article>

{% set next = collections.posts | nextInCollection(page.fileSlug) %}
{% set previous = collections.posts | prevInCollection(page.fileSlug) %}

{% if next or previous%}
  <div class="pagination">
    {% if next %}
      <p class="pagination-item pagination-item-next">
        <a href="{{ next.url }}">Next post</a>
      </p>
    {% endif %}
    {% if previous %}
      <p class="pagination-item pagination-item-prev">
        <a href="{{ previous.url }}">Previous post</a>
      </p>
    {% endif %}
  </div>
{% endif %}
\ No newline at end of file

A _includes/layouts/posts.njk => _includes/layouts/posts.njk +49 -0
@@ 0,0 1,49 @@
---
layout: base
pagination:
  data: collections.posts
  size: 10
  alias: postslist
permalink: "posts/{% if pagination.pageNumber > 0 %}{{ pagination.pageNumber + 1 }}/{% endif %}"
---

<div class="posts">
  {% for post in postslist %}
    <article class="post">
      <header class="post-header">
        <h2 class="post-title">
          <a href="{{ post.url }}">{{ post.data.title | safe }}</a>
        </h2>
        <time class="post-date" datetime="{{ post.date | dateToFormat('yyyy-LL-dd') }}">{{ post.date | dateToFormat('d LLL y') }}</time>
      </header>
      {% if post.data.page.excerpt %}
        {{ post.data.page.excerpt | markdownify | safe }}
        <p><a href="{{ post.url }}" aria-label="Continue reading “{{ post.data.title }}”">Read more…</a></p>
      {% else %}
        {{ post.templateContent | safe }}
      {% endif %}
    </article>
  {% endfor %}
</div>

{% if pagination.pages and pagination.pages.length > 1 %}
  <nav class="pagination" aria-labelledby="pagination">
    <ol class="pagination-item pagination-list">
      {%- for pageEntry in pagination.pages %}
        <li>
          <a href="{{ pagination.hrefs[ loop.index0 ] }}"{% if page.url == pagination.hrefs[ loop.index0 ] %} aria-current="page"{% endif %} aria-label="Page {{ loop.index }}">{{ loop.index }}</a>
        </li>
      {%- endfor %}
    </ol>
  {% if pagination.page.next %}
    <p class="pagination-item">
      <a href="{{ pagination.href.next }}" aria-label="Next page">Next</a>
    </p>
  {% endif %}
  {% if pagination.page.previous %}
    <p class="pagination-item">
      <a href="{{ pagination.href.previous }}" aria-label="Previous page">Previous</a>
    </p>
  {% endif %}
  </nav>
{% endif %}

A _includes/layouts/project.njk => _includes/layouts/project.njk +44 -0
@@ 0,0 1,44 @@
---
layout: base
permalink: "/projects/{{ page.fileSlug }}/index.html"
---

<article class="project">
  <header class="project-header">
    <h1 class="project-title">{{ title | safe }}</h1>
    {% if dateStart or dateEnd %}
      <p class="project-details">{{ dateStart | yearRange(dateEnd) | safe }}</p>
    {% endif %}
    {% if content %}
      <div class="project-text">
        {{ content | safe }}
      </div>
    {% endif %}
  </header>
  {% if media %}
    {% for block in media %}
      <div class="project-block">
        {% set caption = block.caption %}
        {% include 'snippets/media.njk' %}
      </div>
    {% endfor %}
  {% endif %}
</article>

{% set next = collections.projects | nextInCollection(page.fileSlug) %}
{% set previous = collections.projects | prevInCollection(page.fileSlug) %}

{% if next or previous%}
  <div class="pagination">
    {% if next %}
      <p class="pagination-item pagination-item-next">
        <a href="{{ next.url }}"></a>
      </p>
    {% endif %}
    {% if previous %}
      <p class="pagination-item pagination-item-prev">
        <a href="{{ previous.url }}"></a>
      </p>
    {% endif %}
  </div>
{% endif %}
\ No newline at end of file

A _includes/snippets/media.njk => _includes/snippets/media.njk +27 -0
@@ 0,0 1,27 @@
{% set blockClasses = block.size if block.size else 'md' %}
<figure class="{{ blockClasses }}">
  {% if block.type == 'image' %}
    {% set image = block.filename | urlencode %}
    <img
      loading="lazy"
      src="/media/{{ image }}"
      {% if block.alt %}alt="{{ block.alt }}"{% endif %}
      {% if block.width %}width="{{ block.width }}"{% endif %}
      {% if block.height %}height="{{ block.height }}"{% endif %}
    >
  {% elif block.type == 'video' %}
    <video
      src="/media/{{ block.filename }}"
      playsinline
      {% if block.autoplay %}autoplay{% endif %}
      {% if block.loop %}loop{% endif %}
      {% if block.muted %}muted{% endif %}
      {% if block.controls %}controls{% endif %}
      {% if block.width %}width="{{ block.width }}"{% endif %}
      {% if block.height %}height="{{ block.height }}"{% endif %}
    ></video>
  {% endif %}
  {% if caption %}
    <figcaption>{{ caption | markdownifyInline | safe }}</figcaption>
  {% endif %}
</figure>
\ No newline at end of file

A _includes/snippets/meta.njk => _includes/snippets/meta.njk +19 -0
@@ 0,0 1,19 @@

{%- set absolutePageUrl -%}{{ page.url | url | absoluteUrl(meta.url) }}{%- endset -%}

{# Meta Tags #}
<meta property="og:site_name" content="{{ global.title }}">
<meta property="og:title" content="{{ title }}">
<meta property="og:url" content="{{ global.url }}{{ absolutePageUrl }}">
{% if description %}
<meta name="description" content="{{ description }}">
<meta property="og:description" content="{{ description }}">
{% endif %}
{% if image %}
  <meta property="og:image" content="/media/{{ image }}">
{% endif %}

{# RSS Feed #}
{% if collections.posts.length %}
<link type="application/atom+xml" rel="alternate" href="{{ global.url }}/feed.xml" title="{{ global.title }}">
{% endif %}
\ No newline at end of file

A content/404.md => content/404.md +6 -0
@@ 0,0 1,6 @@
---
layout: error
title: "Page not found (404 sorry!)"
---

[Return to homepage](/)

A content/_data/global.json => content/_data/global.json +10 -0
@@ 0,0 1,10 @@
{
  "title": "Tom Hackshaw",
  "lang": "en-gb",
  "footer": "© Nothing Market 2020 <a href='/about' alt='Link to About page' />About</a> <a href='/manifesto' alt='Manifesto for making and being' />Manifesto</a> <a href='/accessibility' alt='Accessibility information of this site' />Accessibility</a> <a href='https://github.com/et0and/portfolio-redux/blob/master/LICENSE' alt='GitHub link to license of site' />License</a>",
  "url": "https://portfolio-starter.sb-ph.com",
  "author": {
    "name": "Tom Hackshaw",
    "email": "tom@tomhackshaw.com"
  }
}

A content/index.md => content/index.md +3 -0
@@ 0,0 1,3 @@
---
layout: home
---
\ No newline at end of file

A content/media/an-idea-for-a-performance.png => content/media/an-idea-for-a-performance.png +0 -0

A content/media/aotearoa-artist-ephemera.jpg => content/media/aotearoa-artist-ephemera.jpg +0 -0

A content/media/artists-from-asia.jpg => content/media/artists-from-asia.jpg +0 -0

A content/media/atlas.png => content/media/atlas.png +0 -0

A content/media/church-yard.jpg => content/media/church-yard.jpg +0 -0

A content/media/derridata.jpg => content/media/derridata.jpg +0 -0

A content/media/e-portfolio.png => content/media/e-portfolio.png +0 -0

A content/media/hyperjam.png => content/media/hyperjam.png +0 -0

A content/media/index.svg => content/media/index.svg +1 -0
@@ 0,0 1,1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 516 385" width="516" height="385"><style>tspan { white-space:pre }.shp0 { fill: none;stroke: #444444;stroke-linecap:round;stroke-linejoin:round;stroke-width: 15 } .shp1 { fill: none;stroke: #777777;stroke-linecap:round;stroke-linejoin:round;stroke-width: 15 } .shp2 { fill: none;stroke: #000000;stroke-linecap:round;stroke-linejoin:round;stroke-width: 4 } </style><path class="shp0" d="" /><path class="shp1" d="" /><g ><path fill-rule="evenodd" class="shp2" d="M435 195C435 294.41 354.41 375 255 375C155.59 375 75 294.41 75 195M255 345C337.84 345 405 277.84 405 195M75 195C174.41 195 255 114.41 255 15L75 195ZM435 195C335.59 195 255 114.41 255 15M435 195C435 95.59 354.41 15 255 15M75 195C75 95.59 155.59 15 255 15M120 225C111.72 225 105 231.72 105 240C105 248.28 111.72 255 120 255C128.28 255 135 248.28 135 240C135 231.72 128.28 225 120 225ZM285 180C276.72 180 270 173.28 270 165C270 156.72 276.72 150 285 150M285 150C293.28 150 300 156.72 300 165M300 165C300 173.28 293.28 180 285 180M360 90C360 98.28 353.28 105 345 105C336.72 105 330 98.28 330 90C330 81.72 336.72 75 345 75C353.28 75 360 81.72 360 90ZM210 60C210 51.72 187.44 41.78 162.58 41.78M180 90C180 81.72 154.35 75.4 121.21 75.4M150 120C150 111.72 124.61 104.19 99.76 104.19M120 150C120 141.72 103.35 137.01 86.78 137.01M255 195L255 195L255 375M75 195L75 195L435 195M255 195L255 195L127.72 321.07M255 195L255 195L384.27 320.24" /></g></svg>
\ No newline at end of file

A content/media/markono.png => content/media/markono.png +0 -0

A content/media/merveilles.jpg => content/media/merveilles.jpg +0 -0

A content/media/microme.jpg => content/media/microme.jpg +0 -0

A content/media/old-site.jpg => content/media/old-site.jpg +0 -0

A content/media/performa.jpg => content/media/performa.jpg +0 -0

A content/media/philemon.jpg => content/media/philemon.jpg +0 -0

A content/media/praise-of-shadows.jpg => content/media/praise-of-shadows.jpg +0 -0

A content/media/the-language-of-art.jpg => content/media/the-language-of-art.jpg +0 -0

A content/media/the-museum-without-walls.png => content/media/the-museum-without-walls.png +0 -0

A content/media/whitecubes.png => content/media/whitecubes.png +0 -0

A content/pages/about.md => content/pages/about.md +43 -0
@@ 0,0 1,43 @@
---
layout: page
title: About
---

Kia ora, tēnā koutou katoa
Ko Hakodate-yama rāua ko Ōwairaka ōku maunga
Ko Matsukura te awa
Ko Waitangi tōku waka
Ko Ngāti Japanese rāua ko Pākeha ōku iwi
Ko Te Aka Matua o Te Pou Hawaiki tōku marae
Ko Iwāo Yufu rāua ko Desmond Hackshaw ōku tipuna
Ko Ross Hackshaw rāua ko Chiaki Yufu ōku mātua
No Hakodate rāua ko Tāmaki Makaurau ōku ahau
Ko Hackshaw rāua ko Yufu ōku whānau
Ko Tom tōku ingoa

This is my humble website of projects and resources.
This site is always under construction. It was last updated on Monday 27 April, 2020 in Tāmaki Makaurau, Aotearoa.

Prior to working in education I came from an art and design background. This is important.

I’ve had a fascination with the Web and technology from a young age, and got to know all kinds of different people through IRC and Usenet channels. I feel as though I grew up on the Internet, and that it has taught me a lot of what I know.

I am of the belief that the World Wide Web is a genuine social accomplishment and that we, as custodians of the Internet, should take care of it. I am reluctant to use monolithic platforms, particularly social media, as I feel these are walled gardens or closed silos.

This site is a labour of love. While it isn’t the most flash or professional looking, it is something that I tend to often. I can continually add to it, change things, and watch it grow. I consider it to be akin to a house or garden, one I will upkeep to make it beautiful.

If what I see in or express of myself reminds you of your own actions, then together we’ve made something and that’s awesome!

Sincerely,
Tom Hackshaw

If you ever want to contact me, chat with me on the following:

Email `tom@tomhackshaw.com`

Urbit `~falsef-nostyp`

Delta `tom@tomhackshaw.com`

SSB @7Ulofc/0mv0X057xiu2Lr/Is
AYKDhZoB2nBN6QF4wnQ=.ed25519
\ No newline at end of file

A content/pages/accessibility.md => content/pages/accessibility.md +12 -0
@@ 0,0 1,12 @@
---
layout: page
title: Accessibility
---

I am committed to providing a website that is accessible to the widest possible audience in accordance with the New Zealand Web Accessibility standards and WCAG guidelines, and am committed to providing a positive experience to all users as I strive to promote accessibility and inclusion.

I am actively working to increase accessibility and usability of my website to everyone. At present, I am working on adding alt text to all images on my website. If you are using a screen reader or other auxiliary aid and are having problems using this website, please contact me at [access@tomhackshaw.com](mailto:access@tomhackshaw.com). Whether you are using assistive technologies like a screen reader, a magnifier, voice recognition software, or captions for videos, my goal is to make your visit to this website a successful and enjoyable experience.

If you have difficulty using or accessing any element of this website, please feel free to email me at the above email and I will work with you to provide the information, item, or element you seek through a communication method that is accessible for you consistent with applicable law. If you would like to ask a question about my work and projects please send queries to [tom@tomhackshaw.com](mailto:tom@tomhackshaw.com).

I am currently taking a variety of steps and devoting resources to further enhance the accessibility of my website. Using tools such as WAVE and Lighthouse I am working towards greater accessibility of this website, and hope to work with an independent experienced accessibility consultant sometime in the future to conduct a deeper audit.

A content/pages/arena.md => content/pages/arena.md +7 -0
@@ 0,0 1,7 @@
---
eleventyNavigation:
  key: Are.na &nearr;
  order: 4
  url: https://are.na/tom-y
permalink: false
---
\ No newline at end of file

A content/pages/manifesto.md => content/pages/manifesto.md +29 -0
@@ 0,0 1,29 @@
---
layout: page
title: Manifesto
---

*Tools should be open and adaptable*
If a tool does not fit my needs, I should be able to freely change, modify or personalise its parts.

*Technology should not be used as a substitute for things*
If a piece of technology does not augment, modify or redefine an existing paradigm then it is not necessary.

*Protocols over platforms*
Technology, software and the web should be decentralised + accessible by design, and not siloed into platforms or islands that hold the user and their data hostage.

*Sustainability, longevity, and balance should take precedence*
Any project or action that I undertake should be oriented around these values.

*Economic, social, and ecological injustices are all interconnected*
Anything that I do, particularly things that concern other people directly or indirectly, should be done in relation to this

*Collaboration should be encouraged*
Always strive towards working with others so together we can achieve more, and develop a greater sense of our own individuality.

*Alignment with Te Tiriti o Waitangi*
Understand the importance of tikanga Māori, taonga, and the principles of partnership, participation and protection that make up the Treaty.

*Contributing to the establishment of a One Asia*
Work on and support the efforts of others to promote the formation of an Asian Community of the future (see [here](/projects/future-asian-community))


A content/pages/merveilles.md => content/pages/merveilles.md +7 -0
@@ 0,0 1,7 @@
---
eleventyNavigation:
  key: Merveilles &nearr;
  order: 5
  url: https://merveilles.town/@tomupom
permalink: false
---
\ No newline at end of file

A content/pages/siteinfo.md => content/pages/siteinfo.md +10 -0
@@ 0,0 1,10 @@
---
layout: page
title: About this site
---

This is a fully static site built with Eleventy. It is optimised for speed, reliability and accessibility. The original code for this website was developed by Piper Haywood and Sam Baldwin for their [Portfolio Starter]() theme (thanks guys!). You can see the changes that I have made to this version [here]().

It features the Inter typeset, serverless deployment by Now, a security certificate issued through Let's Encrypt, and is published on the decentralised web via Dat.

The site is made to operate on low power, generating 0.23g of carbon with each page view, and runs on clean renewable energy. I am working towards making this site even more efficient and lightweight, with the hopes of bringing each page view to < 0.10g of carbon emission.

A content/pages/webring.md => content/pages/webring.md +7 -0
@@ 0,0 1,7 @@
---
eleventyNavigation:
  key: Webring &nearr;
  order: 6
  url: https://webring.xxiivv.com/#wiki.xxiivv
permalink: false
---
\ No newline at end of file

A content/posts.md => content/posts.md +7 -0
@@ 0,0 1,7 @@
---
layout: posts
title: Blog
eleventyNavigation:
  key: Blog
  order: 3
---

A content/posts/and-we-are-off.md => content/posts/and-we-are-off.md +21 -0
@@ 0,0 1,21 @@
---
layout: post
title: And we are off!
date: 2020-04-23 15:00:00
---

I had no idea the true power and depth of CSS until today - the possibilities seem endless!

text: While my prior understanding of CSS had been centred on navigating stylesheets and things related to HTML formatting, I had no idea about how it can actively draw, manipulate and animate elements on a webpage. 

When I think of things that move or do anything fancy on a webpage I immediately think of Javascript or jQuery. However, given just how powerful CSS is it's made me realise that a lot of that is not actually necessary. In fact, there are probably a few web projects that I have made in the past which don't need the JS that I've included. It'll be one less thing to worry about, and will likely run a lot faster too!

I am still getting my head around how to "draw" things using CSS. Pseudo classes are a great concept, but I have only just managed to grasp the basic use of them. I also still haven't quite figured out how content strings in CSS work - what do they actually do and why do I need them?

It's clear that the relationship between HTML and CSS is truly intertwined and layered. With a creative mindset and hardwork one could make some really cool shit with just these two things alone.

I'm now partway through the Response Web Design course on FreeCodeCamp (what I am using to structure my studies). It'll be all about applied accessibility in web design tomorrow, so I'm looking forward to it! I have a very small understanding of the WCAG and ARIA tags for HTML but definitely need to brush up here.

See you all tomorrow and stay safe,

T. 
\ No newline at end of file

A content/posts/new-stack.md => content/posts/new-stack.md +22 -0
@@ 0,0 1,22 @@
---
layout: post
title: New stack
date: 2020-04-29 10:14:00
---

Over the past few days I've completely rewritten my website and have switched to a new static site generator ([Eleventy](https://11ty.dev)).

My previous site was a fork of [Hunor Karamán's website](https://hex22.org), built with [Choo](https://choo.io) and [Enoki](https://enoki.site). I really liked the flat-file structure of the site, but began feeling like things were too abstracted and limited. For example, posts on the site didn't always play well with screen readers which created an accessibility issue. The site also didn't scale well to desktop screens, with a massive amount of unused whitespace squishing all content to the lefthand side.

<figure>
    <img src="/media/old-site.jpg" alt="Screenshot of my old site, with massive whitespace on the righthand side" />
    <figcaption>My old website - look at all that unused space!</figcaption>
</figure>

I decided to shop around for different static site generators as potential replacements. There was Jekyll, Hugo, Middleman, Pelican, Zola, Hakyll et al., all of which I have had some prior exposure to. Of all of these, Eleventy seemed like the most "logical" choice - the codebase is easy to read and understand, plus building and serving pages only takes a few seconds. I then paired this with [Sam Baldwin and Piper Haywood's](https://sb-ph.com) fantastic [Portfolio Starter](https://github.com/sb-ph/portfolio-starter) theme, customised to suit my liking (more navigation links, tree-style project pages, and so on). The end result is a site that is cleaner, easier to navigate and scale across different devices.

Otherwise all other infrastructure related to the site remains unchanged. The site is hosted using [Vercel](https://vercel.com) (formerly known as ZEIT), with a security certificate issued by [Let's Encrypt](https://letsencrypt.org) and completely serverless. All pages and posts are in Markdown which is rendered into plain HTML, so I can work on the site either on my computer using [micro](https://micro-editor.github.io) or on my phone using [Working Copy](https://workingcopyapp.com).

This process has been a great learning exercise for me. I have been working on the FreeCodeCamp web development course over the past few weeks, so it has been a great opportunity to test my newfound knowledge of HTML, CSS and JS. An area that I am working on further is developing ARIA tags on the site to gain further accessibility for users.

T.
\ No newline at end of file

A content/posts/on-accessibility.md => content/posts/on-accessibility.md +15 -0
@@ 0,0 1,15 @@
---
layout: post
title: On Accessibility
date: 2020-04-25 15:00:00
---

As it turns out, accessibility on the web means much more than simply adding alt text to things

Today I completed the "Applied Accessibility" section on FreeCodeCamp. I had very little prior understanding of accessibility despite having an entire section on this website dedicated to it. While I personally think it is fairly legible and easy to navigate, there are many aspects of this site that are too abstracted for users of screen readers.

I had no idea that semantic HTML was a thing! Now upon having studied this it makes complete sense - looking through the source code of a webpage and seeing div tags everywhere makes difficult to read even from a development standpoint. It is logical for accessibility to extend to things like labels for forms, buttons, and even using CSS to display graphical information to screen-readers as a table.

This course has now made me seriously reconsider how I approach web development. I don't want to exclude users from navigating and using my site, especially if it's because I've cut corners in how I am writing my HTML + CSS. The WCAG is very comprehensive in this regard, and I think it is best for me to make this approach of making with accessibility in mind as standard practice from now on.

T.

A content/posts/progression.md => content/posts/progression.md +15 -0
@@ 0,0 1,15 @@
---
layout: post
title: Progression
date: 2020-04-22 15:00:00
---

My last blog post talked about how I wish to learn how to crawl before attempting to run with regards to front end development. I have gained a very rough knowledge of HTML, CSS and JS over the years through tinkering, but have never learnt the fundamental concepts and terms associated with these technologies. No structure or formal training whatsoever. 

There are two things I plan on doing to rectify this. The first is going through the full stack development course on [FreeCodeCamp](https://freecodecamp.org), one that has been recommended and mentioned by many on the web including designer [Eduoard Urcades](https://urcad.es). The second is going through the basics on [MDN](https://developer.mozilla.org), using this to create my own cookbook or glossary of concepts and terms that are fundamental to web development. 

I realise that much of this is going to be fairly standard rote learning and memorising. Because of this, I intend on treating the learn like a school course with set hours throughout the day. And just like a school, I will be using a physical book to build my glossary as I am progressing through the FCC course. 

With lockdown here in New Zealand extended until at least mid-May, it’s all the more reason for me to spend my time productively. Tomorrow I will set everything up and work for two hours (typical of a university lecture). 

T. 
\ No newline at end of file

A content/posts/status-update.md => content/posts/status-update.md +19 -0
@@ 0,0 1,19 @@
---
layout: post
title: Status update
date: 2020-04-21 15:00:00
---

Yesterday I had the opportunity to speak with [Piper Haywood](https://piperhaywood.com), a designer and front-end developer based in the UK who makes up one half of the design studio [SB-PH](https://sb-ph.com). Piper has been running digital coffee sessions for the past month as people across the globe are isolated and affected by Covid-19. Having come across her work with [Sam Baldwin](https://sambaldwin.info) before and wanted to get some advice on how a creative might start learning to program, I signed up for a session!

My conversation with Piper was awesome. Talking to someone who also came from a visual arts background was especially helpful insofar as the conversation was not solely centred on the technical aspects of programming. I have spoken to CS graduates before for advice on how someone like myself can get started, what resources I should look into and books to read etc. While this was helpful in its own way, much of what I was trying to do in taking this approach felt a bit pedestrian and prescribed. At the same time I have been  trying to run before I knew how to crawl - I don't know the proper terminology surrounding many things like HTML, CSS and JS, nor do I understand how certain things function or perform. I have been trying to build fully polished things having had little foundational knowledge.

However, despite not having the technical knowledge that a fresh CS graduate might possess, there was one asset that I did have and they lacked. Piper remarked on how having a creative background can be a huge strength when programming and building things, particularly when it comes to problem solving. Where the typical CS approach might be more of a linear A-to-B method, being able to think creatively can start to open up some truly unique ways of working. The technical know-how, while also important, is what Piper described as rote-knowledge - something black and white that just takes continued practice to build up.

Having had this discussion and reflection, it has given me a renewed push towards learning and making. The first step for me is picking up the terms and concepts associated with programming, particularly in front-end technologies, and consistent practice + play!

Part of this consistency is writing down and keeping a record of whatever I am doing. I used to do this religiously in art school and it really worked well for me, so I think it's about time to pick that up again.

See you tomorrow,

T.
\ No newline at end of file

A content/posts/them-tunes.md => content/posts/them-tunes.md +17 -0
@@ 0,0 1,17 @@
---
layout: post
title: Them tunes
date: 2020-04-24 15:00:00
---

The lockdown has meant that I've been able to dig deeper into the discography of a few artists lately.

One artist in particular that I've been listening to a lot is JPEGMAFIA. I've been a big listener of his for the past few years and his last album *All My Heroes Are Cornballs* was my AOTY in 2019. His level of production is truly off the wall, like a scratched Playstation One disc that's been uploaded via Tor and spat out the other side. His use of a Ridge Racer 4 sample in BALD! is one such example, and results in songs that are like nothing else ever done before in my opinion.

[![JPEGMAFIA - BALD!](https://img.youtube.com/vi/RBlRmwRVBpM/0.jpg)](https://www.youtube.com/watch?v=RBlRmwRVBpM "BALD!")

I don't think his comparison to Death Grips is fair. While I understand that his earlier work had production that sounds somewhat like a Death Grips record (the song Baby I'm Bleeding is a good example), JPEGMAFIA's lyrics are highly political, full of clever wordplay and excellent delivery. You get the impression that this is a person who truly cares about his craft, but doesn't give a fuck at the same time. He is genuinely doing it for the music and is making it how he wants - just looking at some of his song titles is a testament to this.

Personally I find his music and artistry incredibly refreshing and inspiring. I think this kind of mindset translates into all arenas of life, and it gives me a renewed sense of motivation towards my own ongoing projects.

T.
\ No newline at end of file

A content/projects.md => content/projects.md +70 -0
@@ 0,0 1,70 @@
---
layout: page
title: Projects
eleventyNavigation:
  key: Projects
  order: 2
---

[An Idea for a Performance](/projects/an-idea-for-a-performance)
↳ A tool for generating ideas

[Aotearoa Artist Ephemera](/projects/aotearoa-artist-ephemera)
↳ An artist and gallery ephemera archive

[Artists from Asia](/projects/artists-from-asia)
↳ A database of artists from Asia

[Atlas](/projects/atlas)
↳ A growing hybrid archive of reference material

[Church Yard](/projects/church-yard)
↳ A research archive on Søren Kierkegaard

[Derridata](/projects/derridata)
↳ A research archive dedicated to the work of Jacques Derrida

[e-Portfolio](/projects/e-portfolio)
↳ A portfolio of my teaching

[Eda](/projects/eda)
↳ An SRI fund for investing in community projects

[Future Asian Community](/projects/future-asian-community)
↳ A vision for a united global Asian community

[Hyperjam](/projects/hyperjam)
↳ An interactive art festival hosted by Merveilles

[Markono](/projects/markono)
↳ A program for generating performance instructions

[Mera](/projects/mera)
↳ A modified Canon 600D

[Merveilles](/projects/merveilles)
↳ A community of artists and developers

[Microme](/projects/microme)
↳ An indoor garden

[Performa](/projects/performa)
↳ A performance art archive

[Philemon](/projects/philemon)
↳ A Jungian research archive

[Praise of Shadows](/projects/praise-of-shadows)
↳ A research archive on shadows

[Some Quiet Tips](/projects/some-quiet-tips)
↳ A mental health resource

[The Language of Art](/projects/the-language-of-art)
↳ An art history resource

[The Museum Without Walls](/projects/museum-without-walls)
↳ A Macintosh Hypercard project

[Whitecub.es](/projects/whitecubes)
↳ An interactive art map
\ No newline at end of file

A content/projects/an-idea-for-a-performance.md => content/projects/an-idea-for-a-performance.md +13 -0
@@ 0,0 1,13 @@
---
layout: project
title: An Idea For A Performance
dateEnd: 2020-04-05
media:
  - type: image
    filename: an-idea-for-a-performance.png
    size: sm
    alt: Screenshot from Are.na channel
    caption: "[Source &nearr;](https://www.are.na/tom-y/an-idea-for-a-performance)"
---

[An idea for a performance](https://ideaforperformance.com) is a web experiment and [are.na channel](https://www.are.na/tom-y/an-idea-for-a-performance) that displays random ideas for performances, built using the [are.na API](https://dev.are.na).

A content/projects/aotearoa-artist-ephemera.md => content/projects/aotearoa-artist-ephemera.md +15 -0
@@ 0,0 1,15 @@
---
layout: project
title: Aotearoa Artist Ephemera
dateEnd: 2019-04-05
media:
  - type: image
    filename: aotearoa-artist-ephemera.jpg
    size: sm
    alt: Bill Culbert and Ralph Hotere, Path to Aramoana show poster at Auckland Art Gallery
    caption: "[Bill Culbert and Ralph Hotere, Path to Aramoana show poster at Auckland Art Gallery](https://www.are.na/kommons-werkstatt/aotearoa-artist-ephemera)"
---

[Aotearoa Artist Ephemera](https://www.are.na/kommons-werkstatt/aotearoa-artist-ephemera) (AAE) is an online archive hosted on are.na of artist and gallery ephemera from Aotearoa New Zealand, dating from the early 1970s to the present day. 

Most of these files are still under the respective copyright of the artist(s) and their representing galleries. As a result, this is simply an educational resource for the general public, but with the copyright held by their respective owners. I don't own anything here. Besides use for personal research this material is not intended to be used for profit.
\ No newline at end of file

A content/projects/artists-from-asia.md => content/projects/artists-from-asia.md +13 -0
@@ 0,0 1,13 @@
---
layout: project
title: Artists from Asia
dateEnd: 2019-08-05
media:
  - type: image
    filename: artists-from-asia.jpg
    size: sm
    alt: Atsuko Tanaka 田中 敦子, Electric Dress (1956)
    caption: "[Atsuko Tanaka 田中 敦子, Electric Dress (1956)](https://www.are.na/block/5408388)"
---

[Artists from Asia](https://artistsfrom.asia) is a growing list of past and present artists from Asia, built using Javascript and the are.na API. Still under active construction.

A content/projects/atlas.md => content/projects/atlas.md +17 -0
@@ 0,0 1,17 @@
---
layout: project
title: Atlas
dateEnd: 2020-04-20
media:
  - type: image
    filename: atlas.png
    size: sm
    alt: Screenshot from Atlas
    caption: "[Source &nearr;](https://atlas.tom.org.nz)"
---

[Atlas](https://atlas.tom.org.nz) is an ongoing archive of reference material, designed for both online and offline (print) use.

Inspired by Gerhard Richter's *Atlas* project, I wanted to create a research tool built using the are.na API.

Atlas pulls my most recent research and reference material from an are.na channel, which is then displayed as a plain HTML page which can be printed for use in my journals and books.
\ No newline at end of file

A content/projects/church-yard.md => content/projects/church-yard.md +13 -0
@@ 0,0 1,13 @@
---
layout: project
title: Church Yard
dateEnd: 2020-04-20
media:
  - type: image
    filename: church-yard.jpg
    size: sm
    alt: Black and white sketch of Kierkegaard in his youth
    caption: "[Unfinished sketch of Kierkegaard by his cousin Niels Christian Kierkegaard, 1840](https://en.wikipedia.org/wiki/S%C3%B8ren_Kierkegaard#/media/File:S%C3%B8ren_Kierkegaard_(1813-1855)_-_(cropped).jpg)"
---

Church Yard is a private archive containing documentaries and papers relating to or about the Danish philosopher and theologian Søren Kierkegaard. I created the archive as a personal resource to further my understanding and research of Kierkegaard's work.
\ No newline at end of file

A content/projects/derridata.md => content/projects/derridata.md +13 -0
@@ 0,0 1,13 @@
---
layout: project
title: Derridata
dateEnd: 2020-04-20
media:
  - type: image
    filename: derridata.jpg
    size: sm
    alt: Cover of "On Touching—Jean-Luc Nancy" by Jacques Derrida
    caption: "[On Touching—Jean-Luc Nancy by Jacques Derrida, 2005](https://www.sup.org/books/title/?id=1773)"
---

[Derridata](https://are.na/tom-y/derridata) is a growing research archive dedicated to the work of French postmodernist and deconstructionist Jacques Derrida.
\ No newline at end of file

A content/projects/e-portfolio.md => content/projects/e-portfolio.md +13 -0
@@ 0,0 1,13 @@
---
layout: project
title: e-Portfolio
dateEnd: 2019-09-20
media:
  - type: image
    filename: e-portfolio.png
    size: md
    alt: Screenshot of my e-portfolio wiki which shows evidence of my teaching knowledge
    caption: "Screenshot of e-Portfolio"
---

An e-portfolio which contains all of the resources and artifacts gathered over the course of my teaching. Please contact me to request access to the site.
\ No newline at end of file

A content/projects/eda.md => content/projects/eda.md +11 -0
@@ 0,0 1,11 @@
---
layout: project
title: Eda
dateEnd: 2020-03-20
---

[Eda](https://eda.fund) is a socially responsible investment (SRI) fund whose focus is on investing in arts projects. The fund does not seek to act as a competitor to existing Aotearoa/New Zealand funding bodies, but act as an additional helping hand to those looking for further funding. Eda is focused on funding initiatives which contribute to the projects of young practitioners in Tāmaki Makaurau/Auckland, particularly those who would not be targeted by larger funding bodies.

There are no artistic restrictions for how individuals, groups or communities use Eda funding. The only requirement is that a record is kept and provided to Eda on how the funds are spent, and that these records are published and made transparent on the Eda website.

The fund is currently in the process of organising itself, but applications are due to open November 2020.
\ No newline at end of file

A content/projects/future-asian-community.md => content/projects/future-asian-community.md +11 -0
@@ 0,0 1,11 @@
---
layout: project
title: Future Asian Community
dateEnd: 2020-03-20
---

Future Asian Community is a loose working collective consisting of individuals who look towards a vision of a united "One Asia" and establishment of an Asian community of the future.

This idea, first coined by [Yoji Sato of the One Asia Foundation](https://en.wikipedia.org/wiki/One_Asia_Foundation), is to find a means of uniting the wider Asian community to create something akin to a "EU for Asia."

Part of working towards this vision is finding ways of making peace across different nations, particularly among East Asian nations over past historical events (e.g. building upon the Kono Statement of 1993 in the case of Japan) and so on. However, like the OAF we include Central Asia, Mongol and South Asia when referring to this future community.
\ No newline at end of file

A content/projects/hyperjam.md => content/projects/hyperjam.md +16 -0
@@ 0,0 1,16 @@
---
layout: project
title: Hyperjam
dateEnd: 2020-04-07
media:
  - type: image
    filename: hyperjam.png
    size: sm
    alt: Poster of Merveilles Hyperjam festival
    caption: "[Hyperjam poster by Andrew Richards (@cancel) &nearr;](https://cancel.fm/hyperjam)"
---

[Hyperjam](https://itch.io/jam/merveilles-hyperjam/entries) was an online interactive art event hosted by Merveilles. Within a virtualised HyperCard environment, all participants created interactive works over the first weekend of April.

See also: [The Museum Without Walls](/projects/museum-without-walls)


A content/projects/markono.md => content/projects/markono.md +16 -0
@@ 0,0 1,16 @@
---
layout: project
title: Markono
dateEnd: 2020-01-21
media:
  - type: image
    filename: markono.png
    size: sm
    alt: The King Wen sequence of sixty-four hexagrams taken from the I Ching
    caption: "[The King Wen sequence of hexagrams, taken from the Book of Changes 易經 &nearr;](https://en.wikipedia.org/wiki/I_Ching)"
---

[Markono](https://changes.tom.org.nz) ("Markov-Ono", previously titled RandP) is a program for generating chance performances and instructions. The program uses a Markov Chain that has been trained with Yoko Ono's Grapefruit and Acorn books.

Data is read as JSON and output to plain text, while the program itself is written in vanilla JavaScript.


A content/projects/mera.md => content/projects/mera.md +9 -0
@@ 0,0 1,9 @@
---
layout: project
title: Mera
dateEnd: 2019-08-20
---

Mera is a Canon EOS 600D DSLR running a modified build of [Magic Lantern](http://magiclantern.fm/), a Free and Open Source firmware addon (GPL v3).

The firmware allows for more granular control of the camera, particularly when recording video. By default, the 600D limits video recording to 12 minutes in duration before shutting down. ML allows for the camera to run for as long as the camera memory and temperature allows (before the lens begins to emit too much heat), and can record HDR video as well.
\ No newline at end of file

A content/projects/merveilles.md => content/projects/merveilles.md +14 -0
@@ 0,0 1,14 @@
---
layout: project
title: Merveilles
dateEnd: 2019-01-07
media:
  - type: image
    filename: merveilles.jpg
    size: sm
    alt: Poster of white Merveilles logo on a black background
    caption: "[Merveilles poster by Devine Du Linvega &nearr;](https://wiki.xxiivv.com)"
---

[Merveilles](https://merveilles.town) is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — a culture that seeks augmentation through the arts of engineering and design.


A content/projects/microme.md => content/projects/microme.md +20 -0
@@ 0,0 1,20 @@
---
layout: project
title: Microme
dateEnd: 2019-01-10
media:
  - type: image
    filename: microme.jpg
    size: sm
    alt: Image of small saplings growing inside a box
    caption: "Marigold and watercress saplings growing"
---

Microme is a small scale indoor garden experiment ("micro-biome") for growing seedlings to be ready for the Summer. As a response to the declining population of bees, Microme has focused on growing Marigold flowers through the Winter for transplanting in the Summer.

The system currently consists of a low-power fluorescent light that is kept on 24/7, housed inside a lined box that consists of a variety of plants. Watering is done by hand, and the soil is kept rich using small amounts of organic coffee grounds.

I have never considered myself a green thumb by any means. Working on this system has allowed me to learn more about the possibilities of indoor gardening as a means of growing vegetables on a small scale. My dream would be to design and implement a kind of aquaponics system that could operate indoors or outdoors, growing seasonal plants and vegetables throughout the year.

The project is set to expand to include a greater variety of flora, automated watering and mulching, and be modular in design to allow for easy transport and set up.


A content/projects/museum-without-walls.md => content/projects/museum-without-walls.md +17 -0
@@ 0,0 1,17 @@
---
layout: project
title: The Museum Without Walls
dateEnd: 2020-04-03
media:
  - type: image
    filename: the-museum-without-walls.png
    size: sm
    alt: Image of a black and white corridor
    caption: "[Screenshot from The Museum Without Walls &nearr;](https://tomupom.itch.io/the-museum-without-walls)"
---

[The Museum Without Walls](https://tomupom.itch.io/the-museum-without-walls) was a project for the first ever [Merveilles](/projects/merveilles) [Hyperjam](/projects/hyperjam), created over a three day period within an emulated Macintosh Plus environment. While the sequencing is fairly basic, it was great fun to make work using Hypercard and watch what other people created.

<iframe src="https://itch.io/embed/604022?linkback=true&amp;link_color=000aa3" width="400" height="167" frameborder="0"><a href="https://tomupom.itch.io/the-museum-without-walls">The Museum Without Walls by Tom</a></iframe><br>

You will need to be running a [Hypercard viewer or emulator](https://www.gryphel.com/c/minivmac/index.html) in order to play this game. Otherwise, [play in the browser](https://mww.tom.so)(24MiB) and navigate to The Museum Without Walls.

A content/projects/performa.md => content/projects/performa.md +14 -0
@@ 0,0 1,14 @@
---
layout: project
title: Performa
dateEnd: 2019-01-07
media:
  - type: image
    filename: performa.jpg
    size: sm
    alt: Image of man taking performance of washing feet inside a gallery
    caption: "[Kalisolaite ‘Uhila, First will be last and last, first, 2018, performance at Michael Lett, Auckland &nearr;](http://michaellett.com/artist/kalisolaite-uhila/)"
---

[Performa](https://are.na/tom-y/performa) is a performance art archive conducted and hosted on are.na. It's main purpose is to serve my own research into different practitioners of performance and moving image work, but also with the intention of acting as a educational resource for others.


A content/projects/philemon.md => content/projects/philemon.md +14 -0
@@ 0,0 1,14 @@
---
layout: project
title: Philemon
dateEnd: 2019-01-07
media:
  - type: image
    filename: philemon.jpg
    size: sm
    alt: Book cover of Man and His Symbols by Carl Gustav Jung
    caption: "[Carl Gustav Jung, Man and His Symbols 1964 &nearr;](https://www.goodreads.com/book/show/123632.Man_and_His_Symbols)"
---

[Philemon](https://are.na/tom-y/philemon) is an are.na research archive containing documentaries and papers relating to or about the Swiss psychoanalyst Carl Gustav Jung. I created the archive as a personal resource to further my understanding and research of Jungian psychology.


A content/projects/praise-of-shadows.md => content/projects/praise-of-shadows.md +16 -0
@@ 0,0 1,16 @@
---
layout: project
title: Praise of Shadows
dateEnd: 2020-01-07
media:
  - type: image
    filename: praise-of-shadows.jpg
    size: sm
    alt: Image of cafe interior with light shadows
    caption: "[Image by Marron Glacé, 2018 &nearr;](https://marron--glace.tumblr.com/post/168394067723)"
---

[Praise of Shadows](https://praiseofshadows.com) is an online archive of exerpts from Jun'ichiro Tanizaki's essay *In Praise of Shadows* with collected images alongside the texts.

Both the texts and images are pulled from seperate channels on are.na, and are continually being added to.


A content/projects/some-quiet-tips.md => content/projects/some-quiet-tips.md +8 -0
@@ 0,0 1,8 @@
---
layout: project
title: Some Quiet Tips
dateEnd: 2020-01-07
---

[Some Quiet Tips](https://some.quiet.tips) is an online resource designed to help those looking for some quiet time-out in their lives, if only for a brief moment. The design follows a simple chat interface, allowing for information to unfold as a “conversation” thread that can be looked through one piece at a time (inspired by [this great article](https://www.intercom.com/blog/killer-feature-messaging-no-ones-talking/) by Benjamin Keyser).


A content/projects/the-language-of-art.md => content/projects/the-language-of-art.md +14 -0
@@ 0,0 1,14 @@
---
layout: project
title: The Language of Art
dateEnd: 2019-03-07
media:
  - type: image
    filename: the-language-of-art.jpg
    size: sm
    alt: Image of a boy with black spiked hair walk past a driveway
    caption: "[Edith Amituanai, RWC stage, 2011 &nearr;](https://www.edithamituanai.com/The-End-Of-My-Driveway)"
---

[The Language of Art](https://padlet.com/thac408/a76v7pllcswa) is an online Padlet resource designed for NCEA Level 1 or 2 Art History students trying to familiarise themselves with the terminology of art. Definitions and activities for unpacking the Formal Elements, conventions and analysis of images are all included.


A content/projects/whitecubes.md => content/projects/whitecubes.md +13 -0
@@ 0,0 1,13 @@
---
layout: project
title: Whitecubes
dateEnd: 2019-04-21
media:
  - type: image
    filename: whitecubes.png
    size: sm
    alt: Screenshot of an online map with coloured red and blue pins for where art galleries are located
    caption: Screenshot of Whitecubes
---

[Whitecub.es](https://whitecub.es) is an online  map of all art spaces (private and public) in Aotearoa New Zealand.

A content/rss.md => content/rss.md +4 -0
@@ 0,0 1,4 @@
---
layout: feed
title: "Blog"
---

A css/index.css => css/index.css +417 -0
@@ 0,0 1,417 @@
/*

Variables

*/

:root {
  /* Typography */
  --font-family: "Inter", sans-serif;
  --font-size-body: 1rem;
  --font-size-small: 0.75rem;
  --font-weight-normal: 400;
  --font-weight-bold: 700;
  --line-height: 1.375;

  /* Layout */
  --padding-container: 1rem;
  --width-container: 100rem;
  --width-textcol: 37.5rem;
  --width-media-sm: 30rem;
  --width-media-md: 50rem;
  --width-media-lg: var(--width-container);
}

/*

Fonts

*/

@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/Inter-Regular.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: italic;
  font-weight: 400;
  src: url("../fonts/Inter-Italic.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/Inter-Bold.woff2") format("woff2");
}

@font-face {
  font-display: swap;
  font-family: "Inter";
  font-style: italic;
  font-weight: 700;
  src: url("../fonts/Inter-BoldItalic.woff2") format("woff2");
}

/*

Base styles

*/

html {
  box-sizing: border-box;
}

*,
*::after,
*::before {
  box-sizing: inherit;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height);
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 0 var(--padding-container);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin-bottom: 1em;
  margin-top: 3em;
}

p {
  margin-bottom: 1em;
  margin-top: 0;
}

a {
  color: inherit;
  text-decoration: underline;
}

a:focus,
a:hover {
  text-decoration: none;
}

body > header a {
  text-decoration: none;
}

body > header a:focus,
body > header a:hover {
  text-decoration: underline;
}

b,
strong {
  font-weight: var(--font-weight-bold);
}

code,
samp,
kbd {
  font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
}

pre {
  overflow-x: auto;
}

img,
video,
iframe {
  display: inline-block;
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}

figure {
  margin: 1em 0;
}

figcaption {
  font-size: var(--font-size-small);
  margin-top: 0.5rem;
}

/*

Layout / global includes

*/

.site-header {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 4rem;
  margin-top: 1rem;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  width: var(--width-container);
}

.site-name {
  font-weight: inherit;
  margin-bottom: 0.25rem;
  margin-right: auto;
  margin-top: 0;
  padding-right: 1rem;
}

.site-nav ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.site-nav li:not(:last-child) {
  padding-bottom: 0.25rem;
  padding-right: 1rem;
}

.site-main {
  margin-bottom: 4rem;
}

.site-footer {
  font-size: var(--font-size-small);
  margin-top: auto;
  margin-bottom: 1rem;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  width: var(--width-container);
}

.site-footer > p {
  margin-bottom: 0;
}

/*

Homepage

*/

.home-intro {
  margin-bottom: 5rem;
  margin-left: auto;
  margin-right: auto;
  max-width: var(--width-textcol);
}

.home-block {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin-bottom: 8rem;
  text-align: center;
}

.home-block > a {
  max-width: 100%;
  text-decoration: none;
}

.home-block > a:focus,
.home-block > a:hover {
  text-decoration: underline;
}

.home-block.sm > a {
  width: var(--width-media-sm);
}

.home-block.md > a {
  width: var(--width-media-md);
}

.home-block.lg > a {
  width: var(--width-media-lg);
}

.home-block.lg {
  margin-left: calc(var(--padding-container) * -1);
  margin-right: calc(var(--padding-container) * -1);
}

.home-block img:not([width]),
.home-block video:not([width]) {
  width: 100%;
}

.home-block-title {
  margin-bottom: 0;
  margin-top: 2rem;
}

/*

Page

*/

.page {
  margin-bottom: 8rem;
  margin-left: auto;
  margin-right: auto;
  max-width: var(--width-textcol);
}

.page-header {
  margin-bottom: 1rem;
}

.page-title {
  font-weight: inherit;
  margin: 0;
}

/*

Post

*/

.post {
  margin-bottom: 8rem;
  margin-left: auto;
  margin-right: auto;
  max-width: var(--width-textcol);
}

.post-header {
  margin-bottom: 1rem;
}

.post-title {
  font-weight: inherit;
  margin: 0;
}

.post-date {
  display: block;
}

/*

Project page

*/

.project {
  margin-bottom: 8rem;
}

.project-header {
  margin-bottom: 4rem;
  margin-left: auto;
  margin-right: auto;
  max-width: var(--width-textcol);
}

.project-title {
  font-weight: inherit;
  margin: 0;
}

.project-details {
  margin: 0;
}

.project-text {
  margin-top: 1rem;
}

.project-block {
  margin-bottom: 6rem;
  text-align: center;
}

.project-block figure {
  margin-left: auto;
  margin-right: auto;
}

.project-block figure.sm {
  max-width: var(--width-media-sm);
}

.project-block figure.md {
  max-width: var(--width-media-md);
}

.project-block figure.lg {
  max-width: var(--width-media-lg);
  margin-left: calc(var(--padding-container) * -1);
  margin-right: calc(var(--padding-container) * -1);
}

.project-block img:not([width]),
.project-block video:not([width]) {
  width: 100%;
}

/*

Pagination

*/

.pagination {
  margin-bottom: 4rem;
  margin-top: 4rem;
  text-align: center;
}

.pagination-list {
  display: flex;
  justify-content: center;
  list-style: none;
  padding-left: 0;
}

.pagination-list li:not(:last-child) {
  padding-right: 1em;
}

.pagination-item {
  margin-bottom: 0.5rem;
  margin-top: 0;
}

.pagination-item a:not([aria-current]) {
  text-decoration: none;
}

.pagination-item a:focus,
.pagination-item a:hover {
  text-decoration: underline;
}

A fonts/Inter-Bold.woff2 => fonts/Inter-Bold.woff2 +0 -0

A fonts/Inter-BoldItalic.woff2 => fonts/Inter-BoldItalic.woff2 +0 -0

A fonts/Inter-Italic.woff2 => fonts/Inter-Italic.woff2 +0 -0

A fonts/Inter-Regular.woff2 => fonts/Inter-Regular.woff2 +0 -0

A package-lock.json => package-lock.json +5412 -0
@@ 0,0 1,5412 @@
{
  "name": "portfolio-2020",
  "version": "1.0.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "@11ty/dependency-tree": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-1.0.0.tgz",
      "integrity": "sha512-2FWYlkphQ/83MG7b9qqBJfJJ0K9zupNz/6n4EdDuNLw6hQHGp4Sp4UMDRyBvA/xCTYDBaPSuSjHuu45tSujegg==",
      "dev": true
    },
    "@11ty/eleventy": {
      "version": "0.10.0",
      "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-0.10.0.tgz",
      "integrity": "sha512-GOgG5ZvFfdJ4fMDlF+OHLQyvwu4cDkCdE8U0x/cfKze2Bu+27htaJ7qW8XbaGArySlBvYGhJD/z8vjdn/+hpLw==",
      "dev": true,
      "requires": {
        "@11ty/dependency-tree": "^1.0.0",
        "browser-sync": "^2.26.7",
        "chalk": "^3.0.0",
        "chokidar": "^3.3.1",
        "debug": "^4.1.1",
        "dependency-graph": "^0.8.1",
        "ejs": "^2.6.2",
        "fast-glob": "^3.1.1",
        "fs-extra": "^8.1.0",
        "gray-matter": "^4.0.2",
        "hamljs": "^0.6.2",
        "handlebars": "^4.5.3",
        "javascript-stringify": "^2.0.1",
        "liquidjs": "^6.4.3",
        "lodash": "^4.17.15",
        "luxon": "^1.21.3",
        "markdown-it": "^8.4.2",
        "minimist": "^1.2.0",
        "moo": "^0.5.1",
        "multimatch": "^4.0.0",
        "mustache": "^2.3.0",
        "normalize-path": "^3.0.0",
        "nunjucks": "^3.2.0",
        "parse-filepath": "^1.0.2",
        "please-upgrade-node": "^3.2.0",
        "pretty": "^2.0.0",
        "pug": "^2.0.4",
        "recursive-copy": "^2.0.10",
        "semver": "^7.1.0",
        "slugify": "^1.3.6",
        "time-require": "^0.1.2",
        "valid-url": "^1.0.9"
      },
      "dependencies": {
        "markdown-it": {
          "version": "8.4.2",
          "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
          "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
          "dev": true,
          "requires": {
            "argparse": "^1.0.7",
            "entities": "~1.1.1",
            "linkify-it": "^2.0.0",
            "mdurl": "^1.0.1",
            "uc.micro": "^1.0.5"
          }
        }
      }
    },
    "@11ty/eleventy-navigation": {
      "version": "0.1.5",
      "resolved": "https://registry.npmjs.org/@11ty/eleventy-navigation/-/eleventy-navigation-0.1.5.tgz",
      "integrity": "sha512-bZFJx/6seJ7HYfqbirbDNzc+UExNZk9areu5qEVHDuDByt0G7CR5W6J6YJG8WX2j5v8fXacJvWziOU5nW9Iitw==",
      "dev": true,
      "requires": {
        "dependency-graph": "^0.8.1"
      }
    },
    "@11ty/eleventy-plugin-rss": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.0.7.tgz",
      "integrity": "sha512-fP06UhcOn45XfXBpAkDL0VlsOQ9poCK+BbdSwhmsYaqJzYVf9whIdRwqX0FUaSy1659bQC8auaXNyGsJQUq87w==",
      "dev": true,
      "requires": {
        "debug": "^4.1.1",
        "luxon": "^1.0.0",
        "posthtml": "^0.11.2",
        "posthtml-urls": "1.0.0"
      }
    },
    "@nodelib/fs.scandir": {
      "version": "2.1.3",
      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
      "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
      "dev": true,
      "requires": {
        "@nodelib/fs.stat": "2.0.3",
        "run-parallel": "^1.1.9"
      }
    },
    "@nodelib/fs.stat": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
      "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
      "dev": true
    },
    "@nodelib/fs.walk": {
      "version": "1.2.4",
      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
      "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
      "dev": true,
      "requires": {
        "@nodelib/fs.scandir": "2.1.3",
        "fastq": "^1.6.0"
      }
    },
    "@types/babel-types": {
      "version": "7.0.7",
      "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz",
      "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==",
      "dev": true
    },
    "@types/babylon": {
      "version": "6.16.5",
      "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
      "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
      "dev": true,
      "requires": {
        "@types/babel-types": "*"
      }
    },
    "@types/color-name": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
      "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
      "dev": true
    },
    "@types/minimatch": {
      "version": "3.0.3",
      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
      "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
      "dev": true
    },
    "a-sync-waterfall": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
      "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==",
      "dev": true
    },
    "abbrev": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
      "dev": true
    },
    "accepts": {
      "version": "1.3.7",
      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
      "dev": true,
      "requires": {
        "mime-types": "~2.1.24",
        "negotiator": "0.6.2"
      }
    },
    "acorn": {
      "version": "5.7.4",
      "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
      "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
      "dev": true
    },
    "acorn-globals": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
      "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
      "dev": true,
      "requires": {
        "acorn": "^4.0.4"
      },
      "dependencies": {
        "acorn": {
          "version": "4.0.13",
          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
          "dev": true
        }
      }
    },
    "after": {
      "version": "0.8.2",
      "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
      "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
      "dev": true
    },
    "align-text": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
      "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
      "dev": true,
      "requires": {
        "kind-of": "^3.0.2",
        "longest": "^1.0.1",
        "repeat-string": "^1.5.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "dev": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "ansi-regex": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
      "dev": true
    },
    "ansi-styles": {
      "version": "2.2.1",
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
      "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
      "dev": true
    },
    "any-promise": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz",
      "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=",
      "dev": true
    },
    "anymatch": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
      "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
      "dev": true,
      "requires": {
        "micromatch": "^3.1.4",
        "normalize-path": "^2.1.1"
      },
      "dependencies": {
        "normalize-path": {
          "version": "2.1.1",
          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
          "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
          "dev": true,
          "requires": {
            "remove-trailing-separator": "^1.0.1"
          }
        }
      }
    },
    "argparse": {
      "version": "1.0.10",
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
      "dev": true,
      "requires": {
        "sprintf-js": "~1.0.2"
      }
    },
    "arr-diff": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
      "dev": true
    },
    "arr-flatten": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
      "dev": true
    },
    "arr-union": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
      "dev": true
    },
    "array-differ": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
      "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
      "dev": true
    },
    "array-union": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
      "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
      "dev": true
    },
    "array-uniq": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
      "dev": true
    },
    "array-unique": {
      "version": "0.3.2",
      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
      "dev": true
    },
    "arraybuffer.slice": {
      "version": "0.0.7",
      "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
      "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
      "dev": true
    },
    "arrify": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
      "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
      "dev": true
    },
    "asap": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
      "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
      "dev": true
    },
    "assign-symbols": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
      "dev": true
    },
    "async": {
      "version": "1.5.2",
      "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
      "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
      "dev": true
    },
    "async-each": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
      "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
      "dev": true
    },
    "async-each-series": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz",
      "integrity": "sha1-dhfBkXQB/Yykooqtzj266Yr+tDI=",
      "dev": true
    },
    "async-limiter": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
      "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
      "dev": true
    },
    "atob": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
      "dev": true
    },
    "axios": {
      "version": "0.19.0",
      "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
      "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
      "dev": true,
      "requires": {
        "follow-redirects": "1.5.10",
        "is-buffer": "^2.0.2"
      },
      "dependencies": {
        "is-buffer": {
          "version": "2.0.4",
          "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
          "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
          "dev": true
        }
      }
    },
    "babel-runtime": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
      "dev": true,
      "requires": {
        "core-js": "^2.4.0",
        "regenerator-runtime": "^0.11.0"
      }
    },
    "babel-types": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
      "dev": true,
      "requires": {
        "babel-runtime": "^6.26.0",
        "esutils": "^2.0.2",
        "lodash": "^4.17.4",
        "to-fast-properties": "^1.0.3"
      }
    },
    "babylon": {
      "version": "6.18.0",
      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
      "dev": true
    },
    "backo2": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
      "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
      "dev": true
    },
    "balanced-match": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
      "dev": true
    },
    "base": {
      "version": "0.11.2",
      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
      "dev": true,
      "requires": {
        "cache-base": "^1.0.1",
        "class-utils": "^0.3.5",
        "component-emitter": "^1.2.1",
        "define-property": "^1.0.0",
        "isobject": "^3.0.1",
        "mixin-deep": "^1.2.0",
        "pascalcase": "^0.1.1"
      },
      "dependencies": {
        "define-property": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
          "dev": true,
          "requires": {
            "is-descriptor": "^1.0.0"
          }
        },
        "is-accessor-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
          "dev": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-data-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
          "dev": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-descriptor": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
          "dev": true,
          "requires": {
            "is-accessor-descriptor": "^1.0.0",
            "is-data-descriptor": "^1.0.0",
            "kind-of": "^6.0.2"
          }
        }
      }
    },
    "base64-arraybuffer": {
      "version": "0.1.5",
      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
      "dev": true
    },
    "base64id": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
      "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
      "dev": true
    },
    "batch": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
      "dev": true
    },
    "better-assert": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
      "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
      "dev": true,
      "requires": {
        "callsite": "1.0.0"
      }
    },
    "binary-extensions": {
      "version": "1.13.1",
      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
      "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
      "dev": true
    },
    "bindings": {
      "version": "1.5.0",
      "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
      "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
      "dev": true,
      "optional": true,
      "requires": {
        "file-uri-to-path": "1.0.0"
      }
    },
    "blob": {
      "version": "0.0.5",
      "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
      "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
      "dev": true
    },
    "brace-expansion": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
      "dev": true,
      "requires": {
        "balanced-match": "^1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "braces": {
      "version": "2.3.2",
      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
      "dev": true,
      "requires": {
        "arr-flatten": "^1.1.0",
        "array-unique": "^0.3.2",
        "extend-shallow": "^2.0.1",
        "fill-range": "^4.0.0",
        "isobject": "^3.0.1",
        "repeat-element": "^1.1.2",
        "snapdragon": "^0.8.1",
        "snapdragon-node": "^2.0.1",
        "split-string": "^3.0.2",
        "to-regex": "^3.0.1"
      },
      "dependencies": {
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "dev": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        }
      }
    },
    "browser-sync": {
      "version": "2.26.7",
      "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.7.tgz",
      "integrity": "sha512-lY3emme0OyvA2ujEMpRmyRy9LY6gHLuTr2/ABxhIm3lADOiRXzP4dgekvnDrQqZ/Ec2Fz19lEjm6kglSG5766w==",
      "dev": true,
      "requires": {
        "browser-sync-client": "^2.26.6",
        "browser-sync-ui": "^2.26.4",
        "bs-recipes": "1.3.4",
        "bs-snippet-injector": "^2.0.1",
        "chokidar": "^2.0.4",
        "connect": "3.6.6",
        "connect-history-api-fallback": "^1",
        "dev-ip": "^1.0.1",
        "easy-extender": "^2.3.4",
        "eazy-logger": "^3",
        "etag": "^1.8.1",
        "fresh": "^0.5.2",
        "fs-extra": "3.0.1",
        "http-proxy": "1.15.2",
        "immutable": "^3",
        "localtunnel": "1.9.2",
        "micromatch": "^3.1.10",
        "opn": "5.3.0",
        "portscanner": "2.1.1",
        "qs": "6.2.3",
        "raw-body": "^2.3.2",
        "resp-modifier": "6.0.2",
        "rx": "4.1.0",
        "send": "0.16.2",
        "serve-index": "1.9.1",
        "serve-static": "1.13.2",
        "server-destroy": "1.0.1",
        "socket.io": "2.1.1",
        "ua-parser-js": "0.7.17",
        "yargs": "6.4.0"
      },
      "dependencies": {
        "chokidar": {
          "version": "2.1.8",
          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
          "dev": true,
          "requires": {
            "anymatch": "^2.0.0",
            "async-each": "^1.0.1",
            "braces": "^2.3.2",
            "fsevents": "^1.2.7",
            "glob-parent": "^3.1.0",
            "inherits": "^2.0.3",
            "is-binary-path": "^1.0.0",
            "is-glob": "^4.0.0",
            "normalize-path": "^3.0.0",
            "path-is-absolute": "^1.0.0",
            "readdirp": "^2.2.1",
            "upath": "^1.1.1"
          }
        },
        "fs-extra": {
          "version": "3.0.1",
          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
          "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
          "dev": true,
          "requires": {
            "graceful-fs": "^4.1.2",
            "jsonfile": "^3.0.0",
            "universalify": "^0.1.0"
          }
        }
      }
    },
    "browser-sync-client": {
      "version": "2.26.6",
      "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.6.tgz",
      "integrity": "sha512-mGrkZdNzttKdf/16I+y+2dTQxoMCIpKbVIMJ/uP8ZpnKu9f9qa/2CYVtLtbjZG8nsM14EwiCrjuFTGBEnT3Gjw==",
      "dev": true,
      "requires": {
        "etag": "1.8.1",
        "fresh": "0.5.2",
        "mitt": "^1.1.3",
        "rxjs": "^5.5.6"
      }
    },
    "browser-sync-ui": {
      "version": "2.26.4",
      "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.4.tgz",
      "integrity": "sha512-u20P3EsZoM8Pt+puoi3BU3KlbQAH1lAcV+/O4saF26qokrBqIDotmGonfWwoRbUmdxZkM9MBmA0K39ZTG1h4sA==",
      "dev": true,
      "requires": {
        "async-each-series": "0.1.1",
        "connect-history-api-fallback": "^1",
        "immutable": "^3",
        "server-destroy": "1.0.1",
        "socket.io-client": "^2.0.4",
        "stream-throttle": "^0.1.3"
      }
    },
    "bs-recipes": {
      "version": "1.3.4",
      "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz",
      "integrity": "sha1-DS1NSKcYyMBEdp/cT4lZLci2lYU=",
      "dev": true
    },
    "bs-snippet-injector": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz",
      "integrity": "sha1-YbU5PxH1JVntEgaTEANDtu2wTdU=",
      "dev": true
    },
    "bytes": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
      "dev": true
    },
    "cache-base": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
      "dev": true,
      "requires": {
        "collection-visit": "^1.0.0",
        "component-emitter": "^1.2.1",
        "get-value": "^2.0.6",
        "has-value": "^1.0.0",
        "isobject": "^3.0.1",
        "set-value": "^2.0.0",
        "to-object-path": "^0.3.0",
        "union-value": "^1.0.0",
        "unset-value": "^1.0.0"
      }
    },
    "callsite": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
      "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
      "dev": true
    },
    "camelcase": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
      "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
      "dev": true
    },
    "center-align": {
      "version": "0.1.3",
      "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
      "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
      "dev": true,
      "requires": {
        "align-text": "^0.1.3",
        "lazy-cache": "^1.0.3"
      }
    },
    "chalk": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
      "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
      "dev": true,
      "requires": {
        "ansi-styles": "^4.1.0",
        "supports-color": "^7.1.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "4.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
          "dev": true,
          "requires": {
            "@types/color-name": "^1.1.1",
            "color-convert": "^2.0.1"
          }
        },
        "supports-color": {
          "version": "7.1.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
          "dev": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        }
      }
    },
    "character-parser": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
      "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
      "dev": true,
      "requires": {
        "is-regex": "^1.0.3"
      }
    },
    "chokidar": {
      "version": "3.3.1",
      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
      "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
      "dev": true,
      "requires": {
        "anymatch": "~3.1.1",
        "braces": "~3.0.2",
        "fsevents": "~2.1.2",
        "glob-parent": "~5.1.0",
        "is-binary-path": "~2.1.0",
        "is-glob": "~4.0.1",
        "normalize-path": "~3.0.0",
        "readdirp": "~3.3.0"
      },
      "dependencies": {
        "anymatch": {
          "version": "3.1.1",
          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
          "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
          "dev": true,
          "requires": {
            "normalize-path": "^3.0.0",
            "picomatch": "^2.0.4"
          }
        },
        "binary-extensions": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
          "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
          "dev": true
        },
        "braces": {
          "version": "3.0.2",
          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
          "dev": true,
          "requires": {
            "fill-range": "^7.0.1"
          }
        },
        "fill-range": {
          "version": "7.0.1",
          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
          "dev": true,
          "requires": {
            "to-regex-range": "^5.0.1"
          }
        },
        "fsevents": {
          "version": "2.1.2",
          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
          "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
          "dev": true,
          "optional": true
        },
        "glob-parent": {
          "version": "5.1.1",
          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
          "dev": true,
          "requires": {
            "is-glob": "^4.0.1"
          }
        },
        "is-binary-path": {
          "version": "2.1.0",
          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
          "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
          "dev": true,
          "requires": {
            "binary-extensions": "^2.0.0"
          }
        },
        "is-number": {
          "version": "7.0.0",
          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
          "dev": true
        },
        "readdirp": {
          "version": "3.3.0",
          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
          "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
          "dev": true,
          "requires": {
            "picomatch": "^2.0.7"
          }
        },
        "to-regex-range": {
          "version": "5.0.1",
          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
          "dev": true,
          "requires": {
            "is-number": "^7.0.0"
          }
        }
      }
    },
    "class-utils": {
      "version": "0.3.6",
      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
      "dev": true,
      "requires": {
        "arr-union": "^3.1.0",
        "define-property": "^0.2.5",
        "isobject": "^3.0.0",
        "static-extend": "^0.1.1"
      },
      "dependencies": {
        "define-property": {
          "version": "0.2.5",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
          "dev": true,
          "requires": {
            "is-descriptor": "^0.1.0"
          }
        }
      }
    },
    "clean-css": {
      "version": "4.2.3",
      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
      "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
      "dev": true,
      "requires": {
        "source-map": "~0.6.0"
      },
      "dependencies": {
        "source-map": {
          "version": "0.6.1",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
          "dev": true
        }
      }
    },
    "cliui": {
      "version": "3.2.0",
      "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
      "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
      "dev": true,
      "requires": {
        "string-width": "^1.0.1",
        "strip-ansi": "^3.0.1",
        "wrap-ansi": "^2.0.0"
      }
    },
    "code-point-at": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
      "dev": true
    },
    "collection-visit": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
      "dev": true,
      "requires": {
        "map-visit": "^1.0.0",
        "object-visit": "^1.0.0"
      }
    },
    "color-convert": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
      "dev": true,
      "requires": {
        "color-name": "~1.1.4"
      }
    },
    "color-name": {
      "version": "1.1.4",
      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
      "dev": true
    },
    "commander": {
      "version": "2.20.3",
      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
      "dev": true
    },
    "component-bind": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
      "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
      "dev": true
    },
    "component-emitter": {
      "version": "1.2.1",
      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
      "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
      "dev": true
    },
    "component-inherit": {
      "version": "0.0.3",
      "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
      "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
      "dev": true
    },
    "concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
      "dev": true
    },
    "condense-newlines": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz",
      "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=",
      "dev": true,
      "requires": {
        "extend-shallow": "^2.0.1",
        "is-whitespace": "^0.3.0",
        "kind-of": "^3.0.2"
      },
      "dependencies": {
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "dev": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        },
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "dev": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "config-chain": {
      "version": "1.1.12",
      "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
      "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
      "dev": true,
      "requires": {
        "ini": "^1.3.4",
        "proto-list": "~1.2.1"
      }
    },
    "connect": {
      "version": "3.6.6",
      "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz",
      "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=",
      "dev": true,
      "requires": {
        "debug": "2.6.9",
        "finalhandler": "1.1.0",
        "parseurl": "~1.3.2",
        "utils-merge": "1.0.1"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
          "dev": true
        }
      }
    },
    "connect-history-api-fallback": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
      "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
      "dev": true
    },
    "constantinople": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
      "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
      "dev": true,
      "requires": {
        "@types/babel-types": "^7.0.0",
        "@types/babylon": "^6.16.2",
        "babel-types": "^6.26.0",
        "babylon": "^6.18.0"
      }
    },
    "cookie": {
      "version": "0.3.1",
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
      "dev": true
    },
    "copy-descriptor": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
      "dev": true
    },
    "core-js": {
      "version": "2.6.11",
      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
      "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
      "dev": true
    },
    "core-util-is": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
      "dev": true
    },
    "date-time": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz",
      "integrity": "sha1-7S9tk9l5DOL9ZtW1/z7dW7y/Owc=",
      "dev": true
    },
    "debug": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
      "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
      "dev": true,
      "requires": {
        "ms": "^2.1.1"
      }
    },
    "decamelize": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
      "dev": true
    },
    "decode-uri-component": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
      "dev": true
    },
    "define-property": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
      "dev": true,
      "requires": {
        "is-descriptor": "^1.0.2",
        "isobject": "^3.0.1"
      },
      "dependencies": {
        "is-accessor-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
          "dev": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-data-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
          "dev": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-descriptor": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
          "dev": true,
          "requires": {
            "is-accessor-descriptor": "^1.0.0",
            "is-data-descriptor": "^1.0.0",
            "kind-of": "^6.0.2"
          }
        }
      }
    },
    "del": {
      "version": "2.2.2",
      "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
      "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
      "dev": true,
      "requires": {
        "globby": "^5.0.0",
        "is-path-cwd": "^1.0.0",
        "is-path-in-cwd": "^1.0.0",
        "object-assign": "^4.0.1",
        "pify": "^2.0.0",
        "pinkie-promise": "^2.0.0",
        "rimraf": "^2.2.8"
      }
    },
    "depd": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
      "dev": true
    },
    "dependency-graph": {
      "version": "0.8.1",
      "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.8.1.tgz",
      "integrity": "sha512-g213uqF8fyk40W8SBjm079n3CZB4qSpCrA2ye1fLGzH/4HEgB6tzuW2CbLE7leb4t45/6h44Ud59Su1/ROTfqw==",
      "dev": true
    },
    "destroy": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
      "dev": true
    },
    "dev-ip": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz",
      "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=",
      "dev": true
    },
    "doctypes": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
      "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
      "dev": true
    },
    "dom-serializer": {
      "version": "0.2.2",
      "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
      "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
      "dev": true,
      "requires": {
        "domelementtype": "^2.0.1",
        "entities": "^2.0.0"
      },
      "dependencies": {
        "domelementtype": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
          "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
          "dev": true
        },
        "entities": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
          "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
          "dev": true
        }
      }
    },
    "domelementtype": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
      "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
      "dev": true
    },
    "domhandler": {
      "version": "2.4.2",
      "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
      "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
      "dev": true,
      "requires": {
        "domelementtype": "1"
      }
    },
    "domutils": {
      "version": "1.7.0",
      "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
      "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
      "dev": true,
      "requires": {
        "dom-serializer": "0",
        "domelementtype": "1"
      }
    },
    "easy-extender": {
      "version": "2.3.4",
      "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz",
      "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==",
      "dev": true,
      "requires": {
        "lodash": "^4.17.10"
      }
    },
    "eazy-logger": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz",
      "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=",
      "dev": true,
      "requires": {
        "tfunk": "^3.0.1"
      }
    },
    "editorconfig": {
      "version": "0.15.3",
      "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
      "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==",
      "dev": true,
      "requires": {
        "commander": "^2.19.0",
        "lru-cache": "^4.1.5",
        "semver": "^5.6.0",
        "sigmund": "^1.0.1"
      },
      "dependencies": {
        "semver": {
          "version": "5.7.1",
          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
          "dev": true
        }
      }
    },
    "ee-first": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
      "dev": true
    },
    "ejs": {
      "version": "2.7.4",
      "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
      "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
      "dev": true
    },
    "emitter-mixin": {
      "version": "0.0.3",
      "resolved": "https://registry.npmjs.org/emitter-mixin/-/emitter-mixin-0.0.3.tgz",
      "integrity": "sha1-WUjLKG8uSO3DslGnz8H3iDOW1lw=",
      "dev": true
    },
    "encodeurl": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
      "dev": true
    },
    "engine.io": {
      "version": "3.2.1",
      "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz",
      "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==",
      "dev": true,
      "requires": {
        "accepts": "~1.3.4",
        "base64id": "1.0.0",
        "cookie": "0.3.1",
        "debug": "~3.1.0",
        "engine.io-parser": "~2.1.0",
        "ws": "~3.3.1"
      },
      "dependencies": {
        "debug": {
          "version": "3.1.0",
          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        },
        "engine.io-parser": {
          "version": "2.1.3",
          "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz",
          "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==",
          "dev": true,
          "requires": {
            "after": "0.8.2",
            "arraybuffer.slice": "~0.0.7",
            "base64-arraybuffer": "0.1.5",
            "blob": "0.0.5",
            "has-binary2": "~1.0.2"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
          "dev": true
        },
        "ws": {
          "version": "3.3.3",
          "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz",
          "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==",
          "dev": true,
          "requires": {
            "async-limiter": "~1.0.0",
            "safe-buffer": "~5.1.0",
            "ultron": "~1.1.0"
          }
        }
      }
    },
    "engine.io-client": {
      "version": "3.4.0",
      "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz",
      "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==",
      "dev": true,
      "requires": {
        "component-emitter": "1.2.1",
        "component-inherit": "0.0.3",
        "debug": "~4.1.0",
        "engine.io-parser": "~2.2.0",
        "has-cors": "1.1.0",
        "indexof": "0.0.1",
        "parseqs": "0.0.5",
        "parseuri": "0.0.5",
        "ws": "~6.1.0",
        "xmlhttprequest-ssl": "~1.5.4",
        "yeast": "0.1.2"
      }
    },
    "engine.io-parser": {
      "version": "2.2.0",
      "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",
      "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",
      "dev": true,
      "requires": {
        "after": "0.8.2",
        "arraybuffer.slice": "~0.0.7",
        "base64-arraybuffer": "0.1.5",
        "blob": "0.0.5",
        "has-binary2": "~1.0.2"
      }
    },
    "entities": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
      "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
      "dev": true
    },
    "errno": {
      "version": "0.1.7",
      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
      "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
      "dev": true,
      "requires": {
        "prr": "~1.0.1"
      }
    },
    "error-ex": {
      "version": "1.3.2",
      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
      "dev": true,
      "requires": {
        "is-arrayish": "^0.2.1"
      }
    },
    "escape-html": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
      "dev": true
    },
    "escape-string-regexp": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
      "dev": true
    },
    "esprima": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
      "dev": true
    },
    "esutils": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
      "dev": true
    },
    "etag": {
      "version": "1.8.1",
      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
      "dev": true
    },
    "eventemitter3": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
      "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=",
      "dev": true
    },
    "expand-brackets": {
      "version": "2.1.4",
      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
      "dev": true,
      "requires": {
        "debug": "^2.3.3",
        "define-property": "^0.2.5",
        "extend-shallow": "^2.0.1",
        "posix-character-classes": "^0.1.0",
        "regex-not": "^1.0.0",
        "snapdragon": "^0.8.1",
        "to-regex": "^3.0.1"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        },
        "define-property": {
          "version": "0.2.5",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
          "dev": true,
          "requires": {
            "is-descriptor": "^0.1.0"
          }
        },
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "dev": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
          "dev": true
        }
      }
    },
    "extend-shallow": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
      "dev": true,
      "requires": {
        "assign-symbols": "^1.0.0",
        "is-extendable": "^1.0.1"
      },
      "dependencies": {
        "is-extendable": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
          "dev": true,
          "requires": {
            "is-plain-object": "^2.0.4"
          }
        }
      }
    },
    "extglob": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
      "dev": true,
      "requires": {
        "array-unique": "^0.3.2",
        "define-property": "^1.0.0",
        "expand-brackets": "^2.1.4",
        "extend-shallow": "^2.0.1",
        "fragment-cache": "^0.2.1",
        "regex-not": "^1.0.0",
        "snapdragon": "^0.8.1",
        "to-regex": "^3.0.1"
      },
      "dependencies": {
        "define-property": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
          "dev": true,
          "requires": {
            "is-descriptor": "^1.0.0"
          }
        },
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "dev": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        },
        "is-accessor-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
          "dev": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-data-descriptor": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
          "dev": true,
          "requires": {
            "kind-of": "^6.0.0"
          }
        },
        "is-descriptor": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
          "dev": true,
          "requires": {
            "is-accessor-descriptor": "^1.0.0",
            "is-data-descriptor": "^1.0.0",
            "kind-of": "^6.0.2"
          }
        }
      }
    },
    "fast-glob": {
      "version": "3.2.2",
      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz",
      "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==",
      "dev": true,
      "requires": {
        "@nodelib/fs.stat": "^2.0.2",
        "@nodelib/fs.walk": "^1.2.3",
        "glob-parent": "^5.1.0",
        "merge2": "^1.3.0",
        "micromatch": "^4.0.2",
        "picomatch": "^2.2.1"
      },
      "dependencies": {
        "braces": {
          "version": "3.0.2",
          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
          "dev": true,
          "requires": {
            "fill-range": "^7.0.1"
          }
        },
        "fill-range": {
          "version": "7.0.1",
          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
          "dev": true,
          "requires": {
            "to-regex-range": "^5.0.1"
          }
        },
        "glob-parent": {
          "version": "5.1.1",
          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
          "dev": true,
          "requires": {
            "is-glob": "^4.0.1"
          }
        },
        "is-number": {
          "version": "7.0.0",
          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
          "dev": true
        },
        "micromatch": {
          "version": "4.0.2",
          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
          "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
          "dev": true,
          "requires": {
            "braces": "^3.0.1",
            "picomatch": "^2.0.5"
          }
        },
        "to-regex-range": {
          "version": "5.0.1",
          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
          "dev": true,
          "requires": {
            "is-number": "^7.0.0"
          }
        }
      }
    },
    "fastq": {
      "version": "1.6.1",
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz",
      "integrity": "sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw==",
      "dev": true,
      "requires": {
        "reusify": "^1.0.4"
      }
    },
    "file-uri-to-path": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
      "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
      "dev": true,
      "optional": true
    },
    "fill-range": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
      "dev": true,
      "requires": {
        "extend-shallow": "^2.0.1",
        "is-number": "^3.0.0",
        "repeat-string": "^1.6.1",
        "to-regex-range": "^2.1.0"
      },
      "dependencies": {
        "extend-shallow": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
          "dev": true,
          "requires": {
            "is-extendable": "^0.1.0"
          }
        }
      }
    },
    "finalhandler": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
      "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
      "dev": true,
      "requires": {
        "debug": "2.6.9",
        "encodeurl": "~1.0.1",
        "escape-html": "~1.0.3",
        "on-finished": "~2.3.0",
        "parseurl": "~1.3.2",
        "statuses": "~1.3.1",
        "unpipe": "~1.0.0"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
          "dev": true
        }
      }
    },
    "find-up": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
      "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
      "dev": true,
      "requires": {
        "path-exists": "^2.0.0",
        "pinkie-promise": "^2.0.0"
      }
    },
    "follow-redirects": {
      "version": "1.5.10",
      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
      "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
      "dev": true,
      "requires": {
        "debug": "=3.1.0"
      },
      "dependencies": {
        "debug": {
          "version": "3.1.0",
          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        },
        "ms": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
          "dev": true
        }
      }
    },
    "for-in": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
      "dev": true
    },
    "fragment-cache": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
      "dev": true,
      "requires": {
        "map-cache": "^0.2.2"
      }
    },
    "fresh": {
      "version": "0.5.2",
      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
      "dev": true
    },
    "fs-extra": {
      "version": "8.1.0",
      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
      "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
      "dev": true,
      "requires": {
        "graceful-fs": "^4.2.0",
        "jsonfile": "^4.0.0",
        "universalify": "^0.1.0"
      },
      "dependencies": {
        "jsonfile": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
          "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
          "dev": true,
          "requires": {
            "graceful-fs": "^4.1.6"
          }
        }
      }
    },
    "fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
      "dev": true
    },
    "fsevents": {
      "version": "1.2.12",
      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz",
      "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==",
      "dev": true,
      "optional": true,
      "requires": {
        "bindings": "^1.5.0",
        "nan": "^2.12.1",
        "node-pre-gyp": "*"
      },
      "dependencies": {
        "abbrev": {
          "version": "1.1.1",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "ansi-regex": {
          "version": "2.1.1",
          "bundled": true,
          "dev": true
        },
        "aproba": {
          "version": "1.2.0",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "are-we-there-yet": {
          "version": "1.1.5",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "delegates": "^1.0.0",
            "readable-stream": "^2.0.6"
          }
        },
        "balanced-match": {
          "version": "1.0.0",
          "bundled": true,
          "dev": true
        },
        "brace-expansion": {
          "version": "1.1.11",
          "bundled": true,
          "dev": true,
          "requires": {
            "balanced-match": "^1.0.0",
            "concat-map": "0.0.1"
          }
        },
        "chownr": {
          "version": "1.1.4",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "code-point-at": {
          "version": "1.1.0",
          "bundled": true,
          "dev": true
        },
        "concat-map": {
          "version": "0.0.1",
          "bundled": true,
          "dev": true
        },
        "console-control-strings": {
          "version": "1.1.0",
          "bundled": true,
          "dev": true
        },
        "core-util-is": {
          "version": "1.0.2",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "debug": {
          "version": "3.2.6",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "ms": "^2.1.1"
          }
        },
        "deep-extend": {
          "version": "0.6.0",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "delegates": {
          "version": "1.0.0",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "detect-libc": {
          "version": "1.0.3",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "fs-minipass": {
          "version": "1.2.7",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "minipass": "^2.6.0"
          }
        },
        "fs.realpath": {
          "version": "1.0.0",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "gauge": {
          "version": "2.7.4",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "aproba": "^1.0.3",
            "console-control-strings": "^1.0.0",
            "has-unicode": "^2.0.0",
            "object-assign": "^4.1.0",
            "signal-exit": "^3.0.0",
            "string-width": "^1.0.1",
            "strip-ansi": "^3.0.1",
            "wide-align": "^1.1.0"
          }
        },
        "glob": {
          "version": "7.1.6",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "fs.realpath": "^1.0.0",
            "inflight": "^1.0.4",
            "inherits": "2",
            "minimatch": "^3.0.4",
            "once": "^1.3.0",
            "path-is-absolute": "^1.0.0"
          }
        },
        "has-unicode": {
          "version": "2.0.1",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "iconv-lite": {
          "version": "0.4.24",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "safer-buffer": ">= 2.1.2 < 3"
          }
        },
        "ignore-walk": {
          "version": "3.0.3",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "minimatch": "^3.0.4"
          }
        },
        "inflight": {
          "version": "1.0.6",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "once": "^1.3.0",
            "wrappy": "1"
          }
        },
        "inherits": {
          "version": "2.0.4",
          "bundled": true,
          "dev": true
        },
        "ini": {
          "version": "1.3.5",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "is-fullwidth-code-point": {
          "version": "1.0.0",
          "bundled": true,
          "dev": true,
          "requires": {
            "number-is-nan": "^1.0.0"
          }
        },
        "isarray": {
          "version": "1.0.0",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "minimatch": {
          "version": "3.0.4",
          "bundled": true,
          "dev": true,
          "requires": {
            "brace-expansion": "^1.1.7"
          }
        },
        "minimist": {
          "version": "1.2.5",
          "bundled": true,
          "dev": true
        },
        "minipass": {
          "version": "2.9.0",
          "bundled": true,
          "dev": true,
          "requires": {
            "safe-buffer": "^5.1.2",
            "yallist": "^3.0.0"
          }
        },
        "minizlib": {
          "version": "1.3.3",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "minipass": "^2.9.0"
          }
        },
        "mkdirp": {
          "version": "0.5.3",
          "bundled": true,
          "dev": true,
          "requires": {
            "minimist": "^1.2.5"
          }
        },
        "ms": {
          "version": "2.1.2",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "needle": {
          "version": "2.3.3",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "debug": "^3.2.6",
            "iconv-lite": "^0.4.4",
            "sax": "^1.2.4"
          }
        },
        "node-pre-gyp": {
          "version": "0.14.0",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "detect-libc": "^1.0.2",
            "mkdirp": "^0.5.1",
            "needle": "^2.2.1",
            "nopt": "^4.0.1",
            "npm-packlist": "^1.1.6",
            "npmlog": "^4.0.2",
            "rc": "^1.2.7",
            "rimraf": "^2.6.1",
            "semver": "^5.3.0",
            "tar": "^4.4.2"
          }
        },
        "nopt": {
          "version": "4.0.3",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "abbrev": "1",
            "osenv": "^0.1.4"
          }
        },
        "npm-bundled": {
          "version": "1.1.1",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "npm-normalize-package-bin": "^1.0.1"
          }
        },
        "npm-normalize-package-bin": {
          "version": "1.0.1",
          "bundled": true,
          "dev": true
        },
        "npm-packlist": {
          "version": "1.4.8",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "ignore-walk": "^3.0.1",
            "npm-bundled": "^1.0.1",
            "npm-normalize-package-bin": "^1.0.1"
          }
        },
        "npmlog": {
          "version": "4.1.2",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "are-we-there-yet": "~1.1.2",
            "console-control-strings": "~1.1.0",
            "gauge": "~2.7.3",
            "set-blocking": "~2.0.0"
          }
        },
        "number-is-nan": {
          "version": "1.0.1",
          "bundled": true,
          "dev": true
        },
        "object-assign": {
          "version": "4.1.1",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "once": {
          "version": "1.4.0",
          "bundled": true,
          "dev": true,
          "requires": {
            "wrappy": "1"
          }
        },
        "os-homedir": {
          "version": "1.0.2",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "os-tmpdir": {
          "version": "1.0.2",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "osenv": {
          "version": "0.1.5",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "os-homedir": "^1.0.0",
            "os-tmpdir": "^1.0.0"
          }
        },
        "path-is-absolute": {
          "version": "1.0.1",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "process-nextick-args": {
          "version": "2.0.1",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "rc": {
          "version": "1.2.8",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "deep-extend": "^0.6.0",
            "ini": "~1.3.0",
            "minimist": "^1.2.0",
            "strip-json-comments": "~2.0.1"
          }
        },
        "readable-stream": {
          "version": "2.3.7",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "core-util-is": "~1.0.0",
            "inherits": "~2.0.3",
            "isarray": "~1.0.0",
            "process-nextick-args": "~2.0.0",
            "safe-buffer": "~5.1.1",
            "string_decoder": "~1.1.1",
            "util-deprecate": "~1.0.1"
          }
        },
        "rimraf": {
          "version": "2.7.1",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "glob": "^7.1.3"
          }
        },
        "safe-buffer": {
          "version": "5.1.2",
          "bundled": true,
          "dev": true
        },
        "safer-buffer": {
          "version": "2.1.2",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "sax": {
          "version": "1.2.4",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "semver": {
          "version": "5.7.1",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "set-blocking": {
          "version": "2.0.0",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "signal-exit": {
          "version": "3.0.2",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "string-width": {
          "version": "1.0.2",
          "bundled": true,
          "dev": true,
          "requires": {
            "code-point-at": "^1.0.0",
            "is-fullwidth-code-point": "^1.0.0",
            "strip-ansi": "^3.0.0"
          }
        },
        "string_decoder": {
          "version": "1.1.1",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "safe-buffer": "~5.1.0"
          }
        },
        "strip-ansi": {
          "version": "3.0.1",
          "bundled": true,
          "dev": true,
          "requires": {
            "ansi-regex": "^2.0.0"
          }
        },
        "strip-json-comments": {
          "version": "2.0.1",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "tar": {
          "version": "4.4.13",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "chownr": "^1.1.1",
            "fs-minipass": "^1.2.5",
            "minipass": "^2.8.6",
            "minizlib": "^1.2.1",
            "mkdirp": "^0.5.0",
            "safe-buffer": "^5.1.2",
            "yallist": "^3.0.3"
          }
        },
        "util-deprecate": {
          "version": "1.0.2",
          "bundled": true,
          "dev": true,
          "optional": true
        },
        "wide-align": {
          "version": "1.1.3",
          "bundled": true,
          "dev": true,
          "optional": true,
          "requires": {
            "string-width": "^1.0.2 || 2"
          }
        },
        "wrappy": {
          "version": "1.0.2",
          "bundled": true,
          "dev": true
        },
        "yallist": {
          "version": "3.1.1",
          "bundled": true,
          "dev": true
        }
      }
    },
    "function-bind": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
      "dev": true
    },
    "get-caller-file": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
      "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
      "dev": true
    },
    "get-value": {
      "version": "2.0.6",
      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
      "dev": true
    },
    "glob": {
      "version": "7.1.6",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
      "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
      "dev": true,
      "requires": {
        "fs.realpath": "^1.0.0",
        "inflight": "^1.0.4",
        "inherits": "2",
        "minimatch": "^3.0.4",
        "once": "^1.3.0",
        "path-is-absolute": "^1.0.0"
      }
    },
    "glob-parent": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
      "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
      "dev": true,
      "requires": {
        "is-glob": "^3.1.0",
        "path-dirname": "^1.0.0"
      },
      "dependencies": {
        "is-glob": {
          "version": "3.1.0",
          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
          "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
          "dev": true,
          "requires": {
            "is-extglob": "^2.1.0"
          }
        }
      }
    },
    "globby": {
      "version": "5.0.0",
      "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
      "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
      "dev": true,
      "requires": {
        "array-union": "^1.0.1",
        "arrify": "^1.0.0",
        "glob": "^7.0.3",
        "object-assign": "^4.0.1",
        "pify": "^2.0.0",
        "pinkie-promise": "^2.0.0"
      },
      "dependencies": {
        "array-union": {
          "version": "1.0.2",
          "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
          "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
          "dev": true,
          "requires": {
            "array-uniq": "^1.0.1"
          }
        },
        "arrify": {
          "version": "1.0.1",
          "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
          "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
          "dev": true
        }
      }
    },
    "graceful-fs": {
      "version": "4.2.3",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
      "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
      "dev": true
    },
    "gray-matter": {
      "version": "4.0.2",
      "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz",
      "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==",
      "dev": true,
      "requires": {
        "js-yaml": "^3.11.0",
        "kind-of": "^6.0.2",
        "section-matter": "^1.0.0",
        "strip-bom-string": "^1.0.0"
      }
    },
    "hamljs": {
      "version": "0.6.2",
      "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz",
      "integrity": "sha1-e3EWz22+cnjkKz9u+HJaM+F3yOM=",
      "dev": true
    },
    "handlebars": {
      "version": "4.7.3",
      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz",
      "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==",
      "dev": true,
      "requires": {
        "neo-async": "^2.6.0",
        "optimist": "^0.6.1",
        "source-map": "^0.6.1",
        "uglify-js": "^3.1.4"
      },
      "dependencies": {
        "source-map": {
          "version": "0.6.1",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
          "dev": true
        }
      }
    },
    "has": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
      "dev": true,
      "requires": {
        "function-bind": "^1.1.1"
      }
    },
    "has-ansi": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
      "dev": true,
      "requires": {
        "ansi-regex": "^2.0.0"
      }
    },
    "has-binary2": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
      "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
      "dev": true,
      "requires": {
        "isarray": "2.0.1"
      }
    },
    "has-color": {
      "version": "0.1.7",
      "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
      "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
      "dev": true
    },
    "has-cors": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
      "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
      "dev": true
    },
    "has-flag": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
      "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
      "dev": true
    },
    "has-value": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
      "dev": true,
      "requires": {
        "get-value": "^2.0.6",
        "has-values": "^1.0.0",
        "isobject": "^3.0.0"
      }
    },
    "has-values": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
      "dev": true,
      "requires": {
        "is-number": "^3.0.0",
        "kind-of": "^4.0.0"
      },
      "dependencies": {
        "kind-of": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
          "dev": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "hosted-git-info": {
      "version": "2.8.8",
      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
      "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
      "dev": true
    },
    "htmlparser2": {
      "version": "3.10.1",
      "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
      "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
      "dev": true,
      "requires": {
        "domelementtype": "^1.3.1",
        "domhandler": "^2.3.0",
        "domutils": "^1.5.1",
        "entities": "^1.1.1",
        "inherits": "^2.0.1",
        "readable-stream": "^3.1.1"
      },
      "dependencies": {
        "readable-stream": {
          "version": "3.6.0",
          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
          "dev": true,
          "requires": {
            "inherits": "^2.0.3",
            "string_decoder": "^1.1.1",
            "util-deprecate": "^1.0.1"
          }
        }
      }
    },
    "http-equiv-refresh": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz",
      "integrity": "sha1-jsU4hmBCvl8/evpzfRmNlL6xsHs=",
      "dev": true
    },
    "http-errors": {
      "version": "1.7.3",
      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
      "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
      "dev": true,
      "requires": {
        "depd": "~1.1.2",
        "inherits": "2.0.4",
        "setprototypeof": "1.1.1",
        "statuses": ">= 1.5.0 < 2",
        "toidentifier": "1.0.0"
      },
      "dependencies": {
        "statuses": {
          "version": "1.5.0",
          "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
          "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
          "dev": true
        }
      }
    },
    "http-proxy": {
      "version": "1.15.2",
      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz",
      "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=",
      "dev": true,
      "requires": {
        "eventemitter3": "1.x.x",
        "requires-port": "1.x.x"
      }
    },
    "iconv-lite": {
      "version": "0.4.24",
      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
      "dev": true,
      "requires": {
        "safer-buffer": ">= 2.1.2 < 3"
      }
    },
    "immutable": {
      "version": "3.8.2",
      "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz",
      "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=",
      "dev": true
    },
    "indexof": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
      "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
      "dev": true
    },
    "inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
      "dev": true,
      "requires": {
        "once": "^1.3.0",
        "wrappy": "1"
      }
    },
    "inherits": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
      "dev": true
    },
    "ini": {
      "version": "1.3.5",
      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
      "dev": true
    },
    "invert-kv": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
      "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
      "dev": true
    },
    "is-absolute": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
      "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
      "dev": true,
      "requires": {
        "is-relative": "^1.0.0",
        "is-windows": "^1.0.1"
      }
    },
    "is-accessor-descriptor": {
      "version": "0.1.6",
      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
      "dev": true,
      "requires": {
        "kind-of": "^3.0.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "dev": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "is-arrayish": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
      "dev": true
    },
    "is-binary-path": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
      "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
      "dev": true,
      "requires": {
        "binary-extensions": "^1.0.0"
      }
    },
    "is-buffer": {
      "version": "1.1.6",
      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
      "dev": true
    },
    "is-data-descriptor": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
      "dev": true,
      "requires": {
        "kind-of": "^3.0.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "dev": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "is-descriptor": {
      "version": "0.1.6",
      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
      "dev": true,
      "requires": {
        "is-accessor-descriptor": "^0.1.6",
        "is-data-descriptor": "^0.1.4",
        "kind-of": "^5.0.0"
      },
      "dependencies": {
        "kind-of": {
          "version": "5.1.0",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
          "dev": true
        }
      }
    },
    "is-expression": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
      "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
      "dev": true,
      "requires": {
        "acorn": "~4.0.2",
        "object-assign": "^4.0.1"
      },
      "dependencies": {
        "acorn": {
          "version": "4.0.13",
          "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
          "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
          "dev": true
        }
      }
    },
    "is-extendable": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
      "dev": true
    },
    "is-extglob": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
      "dev": true
    },
    "is-fullwidth-code-point": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
      "dev": true,
      "requires": {
        "number-is-nan": "^1.0.0"
      }
    },
    "is-glob": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
      "dev": true,
      "requires": {
        "is-extglob": "^2.1.1"
      }
    },
    "is-number": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
      "dev": true,
      "requires": {
        "kind-of": "^3.0.2"
      },
      "dependencies": {
        "kind-of": {
          "version": "3.2.2",
          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
          "dev": true,
          "requires": {
            "is-buffer": "^1.1.5"
          }
        }
      }
    },
    "is-number-like": {
      "version": "1.0.8",
      "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz",
      "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==",
      "dev": true,
      "requires": {
        "lodash.isfinite": "^3.3.2"
      }
    },
    "is-path-cwd": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
      "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
      "dev": true
    },
    "is-path-in-cwd": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
      "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
      "dev": true,
      "requires": {
        "is-path-inside": "^1.0.0"
      }
    },
    "is-path-inside": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
      "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
      "dev": true,
      "requires": {
        "path-is-inside": "^1.0.1"
      }
    },
    "is-plain-object": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
      "dev": true,
      "requires": {
        "isobject": "^3.0.1"
      }
    },
    "is-promise": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
      "dev": true
    },
    "is-regex": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
      "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
      "dev": true,
      "requires": {
        "has": "^1.0.3"
      }
    },
    "is-relative": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
      "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
      "dev": true,
      "requires": {
        "is-unc-path": "^1.0.0"
      }
    },
    "is-unc-path": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
      "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
      "dev": true,
      "requires": {
        "unc-path-regex": "^0.1.2"
      }
    },
    "is-utf8": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
      "dev": true
    },
    "is-whitespace": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz",
      "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=",
      "dev": true
    },
    "is-windows": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
      "dev": true
    },
    "is-wsl": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
      "dev": true
    },
    "isarray": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
      "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",