<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[10130] sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn: Plugins: Add wporg-learn</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/10130">10130</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/10130","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>coreymckrill</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2020-08-08 19:35:48 +0000 (Sat, 08 Aug 2020)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Plugins: Add wporg-learn

This plugin will add functionality to learn.wordpress.org.</pre>

<h3>Added Paths</h3>
<ul>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/</li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/assets/</li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/assets/images/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnassetsimagesgithubmarksvg">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/assets/images/github-mark.svg</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildblockstylesassetphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.asset.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildblockstylesjs">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildstyleblockstylescss">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-block-styles.css</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildstyleworkshopdetailscss">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-workshop-details.css</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildworkshopdetailsassetphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.asset.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildworkshopdetailscss">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.css</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildworkshopdetailsjs">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.js</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincblocksphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/blocks.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclasslessonplanphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-lesson-plan.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclassmarkdownimportphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-markdown-import.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclassshortcodesphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-shortcodes.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclassworkshopphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-workshop.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincpostmetaphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-meta.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincposttypephp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-type.php</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/</li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsblockstylesindexjs">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/index.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsblockstylesstylescss">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/style.scss</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailsblockjson">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/block.json</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrceditjs">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/edit.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrceditorscss">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/editor.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrcindexjs">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/index.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrcsavejs">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/save.js</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrcstylescss">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/style.scss</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnpackagelockjson">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/package-lock.json</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnpackagejson">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/package.json</a></li>
<li>sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/views/</li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnviewsmetaboxworkshopdetailsphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/views/metabox-workshop-details.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnviewsmetaboxworkshopfacilitatorsphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/views/metabox-workshop-facilitators.php</a></li>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnwporglearnphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/wporg-learn.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<span class="cx" style="display: block; padding: 0 10px">Index: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn
</span><span class="cx" style="display: block; padding: 0 10px">===================================================================
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn 2020-08-08 01:41:58 UTC (rev 10129)
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn  2020-08-08 19:35:48 UTC (rev 10130)
</ins><a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearn"></a>
<div class="propset"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Property changes: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnignore"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: svn:ignore</h4></div>
<ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+node_modules
</ins><a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnassetsimagesgithubmarksvg"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/assets/images/github-mark.svg</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/assets/images/github-mark.svg                                (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/assets/images/github-mark.svg  2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,3 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<svg height="1024" width="1024" xmlns="http://www.w3.org/2000/svg">
+  <path class="github-mark" d="M512 0C229.25 0 0 229.25 0 512c0 226.25 146.688 418.125 350.156 485.812 25.594 4.688 34.938-11.125 34.938-24.625 0-12.188-0.469-52.562-0.719-95.312C242 908.812 211.906 817.5 211.906 817.5c-23.312-59.125-56.844-74.875-56.844-74.875-46.531-31.75 3.53-31.125 3.53-31.125 51.406 3.562 78.47 52.75 78.47 52.75 45.688 78.25 119.875 55.625 149 42.5 4.654-33 17.904-55.625 32.5-68.375C304.906 725.438 185.344 681.5 185.344 485.312c0-55.938 19.969-101.562 52.656-137.406-5.219-13-22.844-65.094 5.062-135.562 0 0 42.938-13.75 140.812 52.5 40.812-11.406 84.594-17.031 128.125-17.219 43.5 0.188 87.312 5.875 128.188 17.281 97.688-66.312 140.688-52.5 140.688-52.5 28 70.531 10.375 122.562 5.125 135.5 32.812 35.844 52.625 81.469 52.625 137.406 0 196.688-119.75 240-233.812 252.688 18.438 15.875 34.75 47 34.75 94.75 0 68.438-0.688 123.625-0.688 140.5 0 13.625 9.312 29.562 35.25 24.562C877.438 930 1024 738.125 1024 512 1024 229.25 794.75 0 512 0z" />
+</svg>
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildblockstylesassetphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.asset.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.asset.php                         (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.asset.php   2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php return array('dependencies' => array('wp-blocks', 'wp-i18n', 'wp-polyfill'), 'version' => 'fcaa8628ee66b6b0b7dcd11a8bb2fffd');
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildblockstylesjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.js                                (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/block-styles.js  2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{6:function(e,r,t){}}]),function(e){function r(r){for(var n,c,u=r[0],i=r[1],a=r[2],f=0,s=[];f<u.length;f++)c=u[f],Object.prototype.hasOwnProperty.call(o,c)&&o[c]&&s.push(o[c][0]),o[c]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return l.push.apply(l,a||[]),t()}function t(){for(var e,r=0;r<l.length;r++){for(var t=l[r],n=!0,u=1;u<t.length;u++){var i=t[u];0!==o[i]&&(n=!1)}n&&(l.splice(r--,1),e=c(c.s=t[0]))}return e}var n={},o={0:0},l=[];function c(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,c),t.l=!0,t.exports}c.m=e,c.c=n,c.d=function(e,r,t){c.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},c.r=function(e){"undefined"!=typeof Symbol&&Sym
 bol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,r){if(1&r&&(e=c(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(c.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)c.d(t,n,function(r){return e[r]}.bind(null,n));return t},c.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(r,"a",r),r},c.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},c.p="";var u=window.webpackJsonp=window.webpackJsonp||[],i=u.push.bind(u);u.push=r,u=u.slice();for(var a=0;a<u.length;a++)r(u[a]);var p=i;l.push([5,1]),t()}([function(e,r){!function(){e.exports=this.wp.i18n}()},function(e,r){!function(){e.exports=this.w
 p.blocks}()},,,,function(e,r,t){"use strict";t.r(r);var n=t(1),o=t(0);t(6);Object(n.registerBlockStyle)("core/button",{name:"primary",label:Object(o.__)("Primary","wporg-learn")}),Object(n.registerBlockStyle)("core/button",{name:"primary-full-width",label:Object(o.__)("Primary (Full-width)","wporg-learn")}),Object(n.registerBlockStyle)("core/button",{name:"secondary",label:Object(o.__)("Secondary","wporg-learn")}),Object(n.registerBlockStyle)("core/button",{name:"secondary-full-width",label:Object(o.__)("Secondary (Full-width)","wporg-learn")})}]);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildstyleblockstylescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-block-styles.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-block-styles.css                         (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-block-styles.css   2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,2 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.is-style-primary .wp-block-button__link,.is-style-primary .wp-block-button__link:visited,.is-style-primary-full-width .wp-block-button__link,.is-style-primary-full-width .wp-block-button__link:visited,.is-style-secondary .wp-block-button__link,.is-style-secondary .wp-block-button__link:visited,.is-style-secondary-full-width .wp-block-button__link,.is-style-secondary-full-width .wp-block-button__link:visited{background:#0085ba;color:#fff;text-align:center;font-size:13px;font-weight:bold;padding:0.9rem;margin:32px 0}.is-style-secondary .wp-block-button__link,.is-style-secondary .wp-block-button__link:visited,.is-style-secondary-full-width .wp-block-button__link,.is-style-secondary-full-width .wp-block-button__link:visited{background:#f8f9f9;color:#555;border:1px solid #d9dcdf;box-shadow:0 1px 0 #d9dcdf}.is-style-primary-full-width,.is-style-secondary-full-width{width:100%}.is-style-primar
 y-full-width .wp-block-button__link,.is-style-secondary-full-width .wp-block-button__link{width:100%}
+
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildstyleworkshopdetailscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-workshop-details.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-workshop-details.css                             (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/style-workshop-details.css       2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,2 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.wp-block-wporg-learn-workshop-details{list-style:none;margin:0;padding:0;color:#555d66}.wp-block-wporg-learn-workshop-details li{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #E2E4E7}.wp-block-wporg-learn-workshop-details li:last-child{border-bottom:1px solid #E2E4E7}.wp-block-wporg-learn-workshop-details li>span{text-align:right;flex-basis:50%;word-break:normal}
+
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildworkshopdetailsassetphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.asset.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.asset.php                             (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.asset.php       2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php return array('dependencies' => array('wp-blocks', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '846d759d50a44b4f010e36f02538a073');
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildworkshopdetailscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.css                           (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.css     2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,2 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.wp-block-wporg-learn-workshop-details{min-height:150px;padding:16px;display:flex;flex-direction:column;background:#eee;align-items:center;justify-content:center;font-size:14px}.wp-block-wporg-learn-workshop-details p{margin:4px !important;text-align:center;font-size:18px !important;line-height:22px !important}.wp-block-wporg-learn-workshop-details p:last-child{font-size:10px !important}
+
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnbuildworkshopdetailsjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.js                            (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/build/workshop-details.js      2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{3:function(e,t,n){}}]),function(e){function t(t){for(var r,l,c=t[0],u=t[1],p=t[2],s=0,f=[];s<c.length;s++)l=c[s],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&f.push(o[l][0]),o[l]=0;for(r in u)Object.prototype.hasOwnProperty.call(u,r)&&(e[r]=u[r]);for(a&&a(t);f.length;)f.shift()();return i.push.apply(i,p||[]),n()}function n(){for(var e,t=0;t<i.length;t++){for(var n=i[t],r=!0,c=1;c<n.length;c++){var u=n[c];0!==o[u]&&(r=!1)}r&&(i.splice(t--,1),e=l(l.s=n[0]))}return e}var r={},o={3:0},i=[];function l(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,l),n.l=!0,n.exports}l.m=e,l.c=r,l.d=function(e,t,n){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},l.r=function(e){"undefined"!=typeof Symbol&&Sym
 bol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,t){if(1&t&&(e=l(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(l.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)l.d(n,r,function(t){return e[t]}.bind(null,r));return n},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,"a",t),t},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p="";var c=window.webpackJsonp=window.webpackJsonp||[],u=c.push.bind(c);c.push=t,c=c.slice();for(var p=0;p<c.length;p++)t(c[p]);var a=u;i.push([7,2]),n()}([function(e,t){!function(){e.exports=this.wp.i18n}()},function(e,t){!function(){e.exports=this.w
 p.blocks}()},function(e,t){!function(){e.exports=this.wp.element}()},,function(e,t,n){},,,function(e,t,n){"use strict";n.r(t);var r=n(1),o=n(0),i=(n(3),n(2));n(4);Object(r.registerBlockType)("wporg-learn/workshop-details",{title:Object(o.__)("Workshop Details","wporg-learn"),description:Object(o.__)("Example block written with ESNext standard and JSX support – build step required.","wporg-learn"),category:"widgets",icon:"smiley",supports:{html:!1},edit:function(e){var t=e.className;return Object(i.createElement)("div",{className:t},Object(i.createElement)("p",null,Object(o.__)("Workshop Details","wporg-learn")),Object(i.createElement)("p",null,Object(o.__)("This will be dynamically populated based on custom fields.","wporg-learn")))},save:function(){return Object(i.createElement)("div",null)}})}]);
</ins><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincblocksphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/blocks.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/blocks.php                               (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/blocks.php 2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,112 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+namespace WPOrg_Learn\Blocks;
+
+defined( 'WPINC' ) || die();
+
+/**
+ * Registers all block assets so that they can be enqueued through the block editor
+ * in the corresponding context.
+ *
+ * @see https://developer.wordpress.org/block-editor/tutorials/block-tutorial/applying-styles-with-stylesheets/
+ */
+function workshop_details_init() {
+       $dir = dirname( __DIR__ );
+
+       $script_asset_path = "$dir/build/workshop-details.asset.php";
+       if ( ! file_exists( $script_asset_path ) ) {
+               throw new Error(
+                       'You need to run `npm start` or `npm run build` for the "wporg-learn/workshop-details" block first.'
+               );
+       }
+
+       $script_asset = require( $script_asset_path );
+       wp_register_script(
+               'workshop-details-editor-script',
+               plugins_url( 'build/workshop-details.js', 'wporg-learn/wporg-learn.php' ),
+               $script_asset['dependencies'],
+               $script_asset['version']
+       );
+
+       $editor_css = 'build/workshop-details.css';
+       wp_register_style(
+               'workshop-details-editor-style',
+               plugins_url( $editor_css, 'wporg-learn/wporg-learn.php' ),
+               array(),
+               filemtime( "$dir/$editor_css" )
+       );
+
+       $style_css = 'build/style-workshop-details.css';
+       wp_register_style(
+               'workshop-details-style',
+               plugins_url( $style_css, 'wporg-learn/wporg-learn.php' ),
+               array(),
+               filemtime( "$dir/$style_css" )
+       );
+
+       register_block_type( 'wporg-learn/workshop-details', array(
+               'editor_script'   => 'workshop-details-editor-script',
+               'editor_style'    => 'workshop-details-editor-style',
+               'style'           => 'workshop-details-style',
+               'render_callback' => __NAMESPACE__ . '\workshop_details_render_callback'
+       ) );
+}
+
+/**
+ * Render the block content (html) on the frontend of the site.
+ *
+ * @param array  $attributes
+ * @param string $content
+ * @return string HTML output used by the calendar JS.
+ */
+function workshop_details_render_callback( $attributes, $content ) {
+       $post = get_post();
+       $topics = wp_get_post_terms( $post->ID, 'topic' );
+       $level = wp_get_post_terms( $post->ID, 'level' );
+
+       return sprintf(
+               '<ul class="wp-block-wporg-learn-workshop-details">
+                       <li><b>Length</b><span>%1$s</span></li>
+                       <li><b>Topic</b><span>%2$s</span></li>
+                       <li><b>Level</b><span>%3$s</span></li>
+                       <li><b>Language</b><span>%4$s</span></li>
+                       <li><b>Captions</b><span>%5$s</span></li>
+               </ul>',
+               $post->duration,
+               $topics && $topics[0] ? $topics[0]->name : '',
+               $level && $level[0] ? $level[0]->name : '',
+               $post->video_language,
+               $post->video_caption_language
+    );
+}
+
+/**
+ * Enqueue scripts and stylesheets for custom block styles.
+ */
+function enqueue_block_style_assets() {
+       $dir = dirname( __DIR__ );
+
+       if ( is_admin() ) {
+               $script_asset_path = "$dir/build/workshop-details.asset.php";
+               if ( ! file_exists( $script_asset_path ) ) {
+                       throw new Error(
+                               'You need to run `npm start` or `npm run build` for the "wporg-learn/workshop-details" block first.'
+                       );
+               }
+
+               $script_asset = require( $script_asset_path );
+               wp_enqueue_script(
+                       'wporg-learn-block-styles',
+                       plugins_url( 'build/block-styles.js', 'wporg-learn/wporg-learn.php' ),
+                       $script_asset['dependencies'],
+                       $script_asset['version']
+               );
+       }
+
+       wp_enqueue_style(
+               'wporg-learn-block-styles',
+               plugins_url( 'build/style-block-styles.css', 'wporg-learn/wporg-learn.php' ),
+               array(),
+               filemtime( $dir . '/build/style-block-styles.css' )
+       );
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclasslessonplanphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-lesson-plan.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-lesson-plan.php                            (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-lesson-plan.php      2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,360 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+namespace WPOrg_Learn;
+
+class Lesson_Plan {
+
+/**
+  *  Register Lesson Plan Post Type
+  */
+public static function lesson_plan_post_type() {
+
+       $labels = array(
+               'name'                  => _x( 'Lesson Plans', 'Post Type General Name', 'wporg_learn' ),
+               'singular_name'         => _x( 'Lesson Plan', 'Post Type Singular Name', 'wporg_learn' ),
+               'menu_name'             => __( 'Lesson Plans', 'wporg_learn' ),
+               'name_admin_bar'        => __( 'Lesson Plan', 'wporg_learn' ),
+               'archives'              => __( 'Lesson Archives', 'wporg_learn' ),
+               'attributes'            => __( 'Lesson Attributes', 'wporg_learn' ),
+               'parent_item_colon'     => __( 'Parent Lesson:', 'wporg_learn' ),
+               'all_items'             => __( 'All Lessons', 'wporg_learn' ),
+               'add_new_item'          => __( 'Add New Lesson', 'wporg_learn' ),
+               'add_new'               => __( 'Add New', 'wporg_learn' ),
+               'new_item'              => __( 'New Lesson Plan', 'wporg_learn' ),
+               'edit_item'             => __( 'Edit Lesson Plan', 'wporg_learn' ),
+               'update_item'           => __( 'Update Lesson Plan', 'wporg_learn' ),
+               'view_item'             => __( 'View Lesson', 'wporg_learn' ),
+               'view_items'            => __( 'View Lessons', 'wporg_learn' ),
+               'search_items'          => __( 'Search Lesson', 'wporg_learn' ),
+               'not_found'             => __( 'Not found', 'wporg_learn' ),
+               'not_found_in_trash'    => __( 'Not found in Trash', 'wporg_learn' ),
+               'featured_image'        => __( 'Featured Image', 'wporg_learn' ),
+               'set_featured_image'    => __( 'Set featured image', 'wporg_learn' ),
+               'remove_featured_image' => __( 'Remove featured image', 'wporg_learn' ),
+               'use_featured_image'    => __( 'Use as featured image', 'wporg_learn' ),
+               'insert_into_item'      => __( 'Insert into lesson', 'wporg_learn' ),
+               'uploaded_to_this_item' => __( 'Uploaded to this lesson', 'wporg_learn' ),
+               'items_list'            => __( 'Lessons list', 'wporg_learn' ),
+               'items_list_navigation' => __( 'Lessons list navigation', 'wporg_learn' ),
+               'filter_items_list'     => __( 'Filter Lessons list', 'wporg_learn' ),
+       );
+       $args = array(
+               'label'                 => __( 'Lesson Plan', 'wporg_learn' ),
+               'description'           => __( 'WordPress.org Training Lesson Plan', 'wporg_learn' ),
+               'labels'                => $labels,
+               'supports'              => array( 'title', 'editor', 'comments', 'revisions', 'custom-fields' ),
+               'taxonomies'            => array( 'duration', 'level', 'audience', 'instruction_type', 'category' ),
+               'hierarchical'          => true,
+               'public'                => true,
+               'show_ui'               => true,
+               'show_in_menu'          => true,
+               'menu_position'         => 5,
+               'menu_icon'             => 'dashicons-welcome-learn-more',
+               'show_in_admin_bar'     => true,
+               'show_in_nav_menus'     => true,
+               'can_export'            => true,
+               'has_archive'           => 'lesson-plans',
+               'exclude_from_search'   => false,
+               'publicly_queryable'    => true,
+               'capability_type'       => 'page',
+               'show_in_rest'          => true,
+       );
+       register_post_type( 'lesson-plan', $args );
+}
+
+/**
+  * Register duration Taxonomy
+  */
+public static function lesson_duration_taxonomy() {
+
+       $labels = array(
+               'name'                       => _x( 'Duration', 'Taxonomy General Name', 'wporg_learn' ),
+               'singular_name'              => _x( 'Duration', 'Taxonomy Singular Name', 'wporg_learn' ),
+               'menu_name'                  => __( 'Duration', 'wporg_learn' ),
+               'all_items'                  => __( 'All Durations', 'wporg_learn' ),
+               'parent_item'                => __( 'Parent Duration', 'wporg_learn' ),
+               'parent_item_colon'          => __( 'Parent Duration:', 'wporg_learn' ),
+               'new_item_name'              => __( 'New Duration', 'wporg_learn' ),
+               'add_new_item'               => __( 'Add New Duration', 'wporg_learn' ),
+               'edit_item'                  => __( 'Edit Duration', 'wporg_learn' ),
+               'update_item'                => __( 'Update Duration', 'wporg_learn' ),
+               'view_item'                  => __( 'View Duration', 'wporg_learn' ),
+               'separate_items_with_commas' => __( 'Separate durations with commas', 'wporg_learn' ),
+               'add_or_remove_items'        => __( 'Add or remove durations', 'wporg_learn' ),
+               'choose_from_most_used'      => __( 'Choose from the most used', 'wporg_learn' ),
+               'popular_items'              => __( 'Popular durations', 'wporg_learn' ),
+               'search_items'               => __( 'Search durations', 'wporg_learn' ),
+               'not_found'                  => __( 'Not Found', 'wporg_learn' ),
+               'no_terms'                   => __( 'No durations', 'wporg_learn' ),
+               'items_list'                 => __( 'Durations list', 'wporg_learn' ),
+               'items_list_navigation'      => __( 'Durations list navigation', 'wporg_learn' ),
+       );
+       $args = array(
+               'labels'                     => $labels,
+               'hierarchical'               => false,
+               'public'                     => true,
+               'show_ui'                    => true,
+               'show_admin_column'          => true,
+               'show_in_nav_menus'          => false,
+               'show_tagcloud'              => false,
+               'show_in_rest'               => true,
+       );
+       register_taxonomy( 'duration', array( 'lesson-plan' ), $args );
+
+}
+
+/**
+  * Register Lesson Experience Level Taxonomy
+  */
+public static function lesson_level_taxonomy() {
+
+       $labels = array(
+               'name'                       => _x( 'Experience Levels', 'Taxonomy General Name', 'wporg_learn' ),
+               'singular_name'              => _x( 'Experience Level', 'Taxonomy Singular Name', 'wporg_learn' ),
+               'menu_name'                  => __( 'Experience Level', 'wporg_learn' ),
+               'all_items'                  => __( 'All Experience Levels', 'wporg_learn' ),
+               'parent_item'                => __( 'Parent Experience Level', 'wporg_learn' ),
+               'parent_item_colon'          => __( 'Parent Experience Level:', 'wporg_learn' ),
+               'new_item_name'              => __( 'New Experience Level Name', 'wporg_learn' ),
+               'add_new_item'               => __( 'Add New Experience Level', 'wporg_learn' ),
+               'edit_item'                  => __( 'Edit Experience Level', 'wporg_learn' ),
+               'update_item'                => __( 'Update Experience Level', 'wporg_learn' ),
+               'view_item'                  => __( 'View Experience Level', 'wporg_learn' ),
+               'separate_items_with_commas' => __( 'Separate experience levels with commas', 'wporg_learn' ),
+               'add_or_remove_items'        => __( 'Add or remove experience levels', 'wporg_learn' ),
+               'choose_from_most_used'      => __( 'Choose from the most used', 'wporg_learn' ),
+               'popular_items'              => __( 'Popular Experience levels', 'wporg_learn' ),
+               'search_items'               => __( 'Search Experience Levels', 'wporg_learn' ),
+               'not_found'                  => __( 'Not Experience Found', 'wporg_learn' ),
+               'no_terms'                   => __( 'No experience levels', 'wporg_learn' ),
+               'items_list'                 => __( 'Experience Levels list', 'wporg_learn' ),
+               'items_list_navigation'      => __( 'Experience Levels list navigation', 'wporg_learn' ),
+       );
+       $args = array(
+               'labels'                     => $labels,
+               'hierarchical'               => false,
+               'public'                     => true,
+               'show_ui'                    => true,
+               'show_admin_column'          => true,
+               'show_in_nav_menus'          => true,
+               'show_tagcloud'              => false,
+               'show_in_rest'               => true,
+       );
+       register_taxonomy( 'level', array( 'lesson-plan' ), $args );
+
+}
+
+/**
+  * Register Lesson Audience Taxonomy
+  */
+public static function lesson_audience_taxonomy() {
+
+       $labels = array(
+               'name'                       => _x( 'Audiences', 'Taxonomy General Name', 'wporg_learn' ),
+               'singular_name'              => _x( 'Audience', 'Taxonomy Singular Name', 'wporg_learn' ),
+               'menu_name'                  => __( 'Audience', 'wporg_learn' ),
+               'all_items'                  => __( 'All Audiences', 'wporg_learn' ),
+               'parent_item'                => __( 'Parent Audience', 'wporg_learn' ),
+               'parent_item_colon'          => __( 'Parent Audience:', 'wporg_learn' ),
+               'new_item_name'              => __( 'New Audience Name', 'wporg_learn' ),
+               'add_new_item'               => __( 'Add Audience', 'wporg_learn' ),
+               'edit_item'                  => __( 'Edit Audience', 'wporg_learn' ),
+               'update_item'                => __( 'Update Audience', 'wporg_learn' ),
+               'view_item'                  => __( 'View Audience', 'wporg_learn' ),
+               'separate_items_with_commas' => __( 'Separate Audiences with commas', 'wporg_learn' ),
+               'add_or_remove_items'        => __( 'Add or remove Audiences', 'wporg_learn' ),
+               'choose_from_most_used'      => __( 'Choose from the most used', 'wporg_learn' ),
+               'popular_items'              => __( 'Popular Audiences', 'wporg_learn' ),
+               'search_items'               => __( 'Search Audiences', 'wporg_learn' ),
+               'not_found'                  => __( 'Not Found', 'wporg_learn' ),
+               'no_terms'                   => __( 'No Audiences', 'wporg_learn' ),
+               'items_list'                 => __( 'Audiences list', 'wporg_learn' ),
+               'items_list_navigation'      => __( 'Audiences list navigation', 'wporg_learn' ),
+       );
+       $args = array(
+               'labels'                     => $labels,
+               'hierarchical'               => false,
+               'public'                     => true,
+               'show_ui'                    => true,
+               'show_admin_column'          => true,
+               'show_in_nav_menus'          => true,
+               'show_tagcloud'              => false,
+               'show_in_rest'               => true,
+       );
+       register_taxonomy( 'audience', array( 'lesson-plan' ), $args );
+
+}
+
+/**
+  * Register Instruction Type Taxonomy
+  */
+public static function lesson_instruction_type_taxonomy() {
+
+       $labels = array(
+               'name'                       => _x( 'Instruction Types', 'Taxonomy General Name', 'wporg_learn' ),
+               'singular_name'              => _x( 'Instruction Type', 'Taxonomy Singular Name', 'wporg_learn' ),
+               'menu_name'                  => __( 'Instruction Type', 'wporg_learn' ),
+               'all_items'                  => __( 'All Instruction Types', 'wporg_learn' ),
+               'parent_item'                => __( 'Parent Instruction Type', 'wporg_learn' ),
+               'parent_item_colon'          => __( 'Parent Instruction Type:', 'wporg_learn' ),
+               'new_item_name'              => __( 'New Instruction Type Name', 'wporg_learn' ),
+               'add_new_item'               => __( 'Add Instruction Type', 'wporg_learn' ),
+               'edit_item'                  => __( 'Edit Instruction Type', 'wporg_learn' ),
+               'update_item'                => __( 'Update Instruction Type', 'wporg_learn' ),
+               'view_item'                  => __( 'View Instruction Type', 'wporg_learn' ),
+               'separate_items_with_commas' => __( 'Separate Instruction Types with commas', 'wporg_learn' ),
+               'add_or_remove_items'        => __( 'Add or remove Instruction Types', 'wporg_learn' ),
+               'choose_from_most_used'      => __( 'Choose from the most used', 'wporg_learn' ),
+               'popular_items'              => __( 'Popular Instruction Types', 'wporg_learn' ),
+               'search_items'               => __( 'Search Instruction Types', 'wporg_learn' ),
+               'not_found'                  => __( 'Not Found', 'wporg_learn' ),
+               'no_terms'                   => __( 'No Instruction Types', 'wporg_learn' ),
+               'items_list'                 => __( 'Instruction Types list', 'wporg_learn' ),
+               'items_list_navigation'      => __( 'Instruction Types list navigation', 'wporg_learn' ),
+       );
+       $args = array(
+               'labels'                     => $labels,
+               'hierarchical'               => false,
+               'public'                     => true,
+               'show_ui'                    => true,
+               'show_admin_column'          => true,
+               'show_in_nav_menus'          => true,
+               'show_tagcloud'              => false,
+               'show_in_rest'               => true,
+       );
+       register_taxonomy( 'instruction_type', array( 'lesson-plan' ), $args );
+
+}
+
+       /**
+        * Append an "Edit on GitHub" link to Lesson Plan document titles
+        */
+       public static function filter_the_title_edit_link( $title, $id = null ) {
+               // Only apply to the main title for the document
+               if ( ! is_singular( 'lesson_plan' )
+                       || ! is_main_query()
+                       || ! in_the_loop()
+                       || is_embed()
+                       || $id !== get_queried_object_id() ) {
+                       return $title;
+               }
+
+               $markdown_source = self::get_markdown_edit_link( get_the_ID() );
+               if ( ! $markdown_source ) {
+                       return $title;
+               }
+
+               return $title . ' <a class="github-edit" href="' . esc_url( $markdown_source ) . '"><img src="' . esc_url( plugins_url( 'assets/images/github-mark.svg', dirname( __FILE__ ) ) ) . '"> <span>Edit</span></a>';
+       }
+
+       /**
+        * Learn lesson plan pages are maintained in the GitHub repo, so the edit
+        * link should ridirect to there.
+        */
+       public static function redirect_edit_link_to_github( $link, $post_id, $context ) {
+               if ( is_admin() ) {
+                       return $link;
+               }
+               $post = get_post( $post_id );
+               if ( ! $post ) {
+                       return $link;
+               }
+
+               if ( 'lesson_plan' !== $post->post_type ) {
+                       return $link;
+               }
+
+               $markdown_source = self::get_markdown_edit_link( $post_id );
+               if ( ! $markdown_source ) {
+                       return $link;
+               }
+
+               if ( 'display' === $context ) {
+                       $markdown_source = esc_url( $markdown_source );
+               }
+
+               return $markdown_source;
+       }
+
+       /**
+        * o2 does inline editing, so we also need to remove the class name that it looks for.
+        *
+        * o2 obeys the edit_post capability for displaying the edit link, so we also need to manually
+        * add the edit link if it isn't there - it always redirects to GitHub, so it doesn't need to
+        * obey the edit_post capability in this instance.
+        */
+       public static function redirect_o2_edit_link_to_github( $actions, $post_id ) {
+               $post = get_post( $post_id );
+               if ( ! $post ) {
+                       return $actions;
+               }
+
+               if ( 'lesson_plan' !== $post->post_type ) {
+                       return $actions;
+               }
+
+               $markdown_source = self::get_markdown_edit_link( $post_id );
+               if ( ! $markdown_source ) {
+                       return $actions;
+               }
+
+               /*
+                * Define our own edit post action for o2.
+                *
+                * Notable differences from the original are:
+                * - the 'href' parameter always goes to the GitHub source.
+                * - the 'o2-edit' class is missing, so inline editing is disabled.
+                */
+               $edit_action = array(
+                       'action' => 'edit',
+                       'href' => $markdown_source,
+                       'classes' => array( 'edit-post-link' ),
+                       'rel' => $post_id,
+                       'initialState' => 'default'
+               );
+
+               // Find and replace the existing edit action.
+               $replaced = false;
+               foreach( $actions as &$action ) {
+                       if ( 'edit' === $action['action'] ) {
+                               $action = $edit_action;
+                               $replaced = true;
+                               break;
+                       }
+               }
+               unset( $action );
+
+               // If there was no edit action replaced, add it in manually.
+               if ( ! $replaced ) {
+                       $actions[30] = $edit_action;
+               }
+
+               return $actions;
+       }
+
+       private static function get_markdown_edit_link( $post_id ) {
+               $markdown_source = Markdown_Import::get_markdown_source( $post_id );
+               if ( is_wp_error( $markdown_source ) ) {
+                       return '';
+               }
+               if ( 'wptrainingteam.github.io' !== parse_url( $markdown_source, PHP_URL_HOST )
+                       || false !== stripos( $markdown_source, '/edit/master/' ) ) {
+                       return $markdown_source;
+               }
+               $markdown_source = str_replace( '/lesson-plan', '', $markdown_source);
+               $markdown_source = str_replace( 'wptrainingteam.github.io', 'github.com/wptrainingteam', $markdown_source);
+               $markdown_source = str_replace( '/README.md', '/edit/dev/README.md', $markdown_source );
+               return $markdown_source;
+       }
+
+  public static function replace_image_links( $content ) {
+    $post_id = get_the_ID();
+    $markdown_source = Markdown_Import::get_markdown_source( $post_id );
+    if ( is_wp_error( $markdown_source ) ) {
+      return $content;
+    }
+    $markdown_source = str_replace( '/README.md', '', $markdown_source );
+    $content = str_replace( '<img src="/images/', '<img src="' . $markdown_source . '/images/', $content );
+
+    return $content;
+  }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclassmarkdownimportphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-markdown-import.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-markdown-import.php                                (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-markdown-import.php  2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,312 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+namespace WPOrg_Learn;
+
+use WP_Error;
+use WP_Query;
+
+class Markdown_Import {
+
+       private static $lesson_plan_manifest = 'https://wptrainingteam.github.io/manifest.json';
+       private static $input_name = 'wporg-learn-markdown-source';
+       private static $meta_key = 'wporg_learn_markdown_source';
+       private static $nonce_name = 'wporg-learn-markdown-source-nonce';
+       private static $submit_name = 'wporg-learn-markdown-import';
+       private static $supported_post_types = 'lesson-plan';
+       private static $posts_per_page = 100;
+
+       /**
+        * Register our cron task if it doesn't already exist
+        */
+       public static function action_init() {
+               if ( ! wp_next_scheduled( 'wporg_learn_manifest_import' ) ) {
+                       wp_schedule_event( time(), '15_minutes', 'wporg_learn_manifest_import' );
+               }
+               if ( ! wp_next_scheduled( 'wporg_learn_markdown_import' ) ) {
+                       wp_schedule_event( time(), '15_minutes', 'wporg_learn_markdown_import' );
+               }
+       }
+
+       public static function action_wporg_learn_manifest_import() {
+               $response = wp_remote_get( self::$lesson_plan_manifest );
+               if ( is_wp_error( $response ) ) {
+                       return $response;
+               } elseif ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+                       return new WP_Error( 'invalid-http-code', 'Markdown source returned non-200 http code.' );
+               }
+               $manifest = json_decode( wp_remote_retrieve_body( $response ), true );
+               if ( ! $manifest ) {
+                       return new WP_Error( 'invalid-manifest', 'Manifest did not unfurl properly.' );;
+               }
+               // Fetch all lesson plan posts for comparison
+               $q = new WP_Query( array(
+                       'post_type'      => self::$supported_post_types,
+                       'post_status'    => 'publish',
+                       'posts_per_page' => self::$posts_per_page,
+               ) );
+               $existing = $q->posts;
+               $created = 0;
+               foreach( $manifest as $doc ) {
+                       // Already exists
+                       if ( wp_filter_object_list( $existing, array( 'post_name' => $doc['slug'] ) ) ) {
+                               if ( class_exists( 'WP_CLI' ) ) {
+                                       \WP_CLI::log( "Found {$doc['slug']} already exits." );
+                               }
+                               continue;
+                       }
+                       $post_parent = null;
+                       if ( ! empty( $doc['parent'] ) ) {
+                               // Find the parent in the existing set
+                               $parents = wp_filter_object_list( $existing, array( 'post_name' => $doc['parent'] ) );
+                               if ( ! empty( $parents ) ) {
+                                       $parent = array_shift( $parents );
+                               } else {
+                                       // Create the parent and add it to the stack
+                                       if ( isset( $manifest[ $doc['parent'] ] ) ) {
+                                               $parent_doc = $manifest[ $doc['parent'] ];
+                                               $parent = self::create_post_from_manifest_doc( $parent_doc );
+                                               if ( $parent ) {
+                                                       $created++;
+                                                       $existing[] = $parent;
+                                               } else {
+                                                       continue;
+                                               }
+                                       } else {
+                                               continue;
+                                       }
+                               }
+                               $post_parent = $parent->ID;
+                       }
+                       $post = self::create_post_from_manifest_doc( $doc, $post_parent );
+                       if ( $post ) {
+                               $created++;
+                               $existing[] = $post;
+                       }
+               }
+               if ( class_exists( 'WP_CLI' ) ) {
+                       \WP_CLI::success( "Successfully created {$created} lesson plan pages." );
+               }
+       }
+
+       /**
+        * Create a new lesson plan page from the manifest document
+        */
+       private static function create_post_from_manifest_doc( $doc, $post_parent = null ) {
+               $post_data = array(
+                       'post_type'   => self::$supported_post_types,
+                       'post_status' => 'publish',
+                       'post_parent' => $post_parent,
+                       'post_title'  => sanitize_text_field( wp_slash( $doc['title'] ) ),
+                       'post_name'   => sanitize_title_with_dashes( $doc['slug'] ),
+               );
+               $post_id = wp_insert_post( $post_data );
+               if ( ! $post_id ) {
+                       return false;
+               }
+               if ( class_exists( 'WP_CLI' ) ) {
+                       \WP_CLI::log( "Created post {$post_id} for {$doc['title']}." );
+               }
+               update_post_meta( $post_id, self::$meta_key, esc_url_raw( $doc['markdown_source'] ) );
+               return get_post( $post_id );
+       }
+
+       public static function action_wporg_learn_markdown_import() {
+               $q = new WP_Query( array(
+                       'post_type'      => self::$supported_post_types,
+                       'post_status'    => 'publish',
+                       'fields'         => 'ids',
+                       'posts_per_page' => self::$posts_per_page,
+               ) );
+               $ids = $q->posts;
+               $success = 0;
+               foreach( $ids as $id ) {
+                       $ret = self::update_post_from_markdown_source( $id );
+                       if ( class_exists( 'WP_CLI' ) ) {
+                               if ( is_wp_error( $ret ) ) {
+                                       \WP_CLI::warning( $ret->get_error_message() );
+                               } else {
+                                       \WP_CLI::log( "Updated {$id} from markdown source" );
+                                       $success++;
+                               }
+                       }
+               }
+               if ( class_exists( 'WP_CLI' ) ) {
+                       $total = count( $ids );
+                       \WP_CLI::success( "Successfully updated {$success} of {$total} lesson plan pages." );
+               }
+       }
+
+       /**
+        * Handle a request to import from the markdown source
+        */
+       public static function action_load_post_php() {
+               if ( ! isset( $_GET[ self::$submit_name ] )
+                       || ! isset( $_GET[ self::$nonce_name ] )
+                       || ! isset( $_GET['post'] ) ) {
+                       return;
+               }
+               $post_id = (int) $_GET['post'];
+               if ( ! current_user_can( 'edit_post', $post_id )
+                       || ! wp_verify_nonce( $_GET[ self::$nonce_name ], self::$input_name )
+                       || ! in_array( get_post_type( $post_id ), self::$supported_post_types, true ) ) {
+                       return;
+               }
+
+               $response = self::update_post_from_markdown_source( $post_id );
+               if ( is_wp_error( $response ) ) {
+                       wp_die( $response->get_error_message() );
+               }
+
+               wp_safe_redirect( get_edit_post_link( $post_id, 'raw' ) );
+               exit;
+       }
+
+       /**
+        * Add an input field for specifying Markdown source
+        */
+       public static function action_edit_form_after_title( $post ) {
+               if ( ! in_array( $post->post_type, self::$supported_post_types, true ) ) {
+                       return;
+               }
+               $markdown_source = get_post_meta( $post->ID, self::$meta_key, true );
+               ?>
+               <label>Markdown source: <input
+                       type="text"
+                       name="<?php echo esc_attr( self::$input_name ); ?>"
+                       value="<?php echo esc_attr( $markdown_source ); ?>"
+                       placeholder="Enter a URL representing a markdown file to import"
+                       size="50" />
+               </label> <?php
+                       if ( $markdown_source ) :
+                               $update_link = add_query_arg( array(
+                                       self::$submit_name => 'import',
+                                       self::$nonce_name  => wp_create_nonce( self::$input_name ),
+                               ), get_edit_post_link( $post->ID, 'raw' ) );
+                               ?>
+                               <a class="button button-small button-primary" href="<?php echo esc_url( $update_link ); ?>">Import</a>
+                       <?php endif; ?>
+               <?php wp_nonce_field( self::$input_name, self::$nonce_name ); ?>
+               <?php
+       }
+
+       /**
+        * Save the Markdown source input field
+        */
+       public static function action_save_post( $post_id ) {
+
+               if ( ! isset( $_POST[ self::$input_name ] )
+                       || ! isset( $_POST[ self::$nonce_name ] )
+                       || ! in_array( get_post_type( $post_id ), self::$supported_post_types, true ) ) {
+                       return;
+               }
+
+               if ( ! wp_verify_nonce( $_POST[ self::$nonce_name ], self::$input_name ) ) {
+                       return;
+               }
+
+               $markdown_source = '';
+               if ( ! empty( $_POST[ self::$input_name ] ) ) {
+                       $markdown_source = esc_url_raw( $_POST[ self::$input_name ] );
+               }
+               update_post_meta( $post_id, self::$meta_key, $markdown_source );
+       }
+
+       /**
+        * Filter cron schedules to add a 15 minute schedule
+        */
+       public static function filter_cron_schedules( $schedules ) {
+               $schedules['15_minutes'] = array(
+                       'interval' => 15 * MINUTE_IN_SECONDS,
+                       'display'  => '15 minutes'
+               );
+               return $schedules;
+       }
+
+       /**
+        * Update a post from its Markdown source
+        */
+       private static function update_post_from_markdown_source( $post_id ) {
+               $markdown_source = self::get_markdown_source( $post_id );
+               if ( is_wp_error( $markdown_source ) ) {
+                       return $markdown_source;
+               }
+               if ( ! function_exists( 'jetpack_require_lib' ) ) {
+                       return new WP_Error( 'missing-jetpack-require-lib', 'jetpack_require_lib() is missing on system.' );
+               }
+
+               // Transform GitHub repo HTML pages into their raw equivalents
+               //$markdown_source = preg_replace( '#https?://github\.com/([^/]+/[^/]+)/blob/(.+)#', 'https://raw.githubusercontent.com/$1/$2', $markdown_source );
+               $markdown_source = add_query_arg( 'v', time(), $markdown_source );
+               $response = wp_remote_get( $markdown_source );
+               if ( is_wp_error( $response ) ) {
+                       return $response;
+               } elseif ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+                       return new WP_Error( 'invalid-http-code', 'Markdown source returned non-200 http code.' );
+               }
+
+               $markdown = wp_remote_retrieve_body( $response );
+               // Strip YAML doc from the header
+               $markdown = preg_replace( '#^---(.+)---#Us', '', $markdown );
+
+               $title = null;
+               if ( preg_match( '/^#\s(.+)/', $markdown, $matches ) ) {
+                       $title = $matches[1];
+                       $markdown = preg_replace( '/^#\s(.+)/', '', $markdown );
+               }
+
+               // Transform to HTML and save the post
+               jetpack_require_lib( 'markdown' );
+               $parser = new \WPCom_GHF_Markdown_Parser;
+               $html = $parser->transform( $markdown );
+               $html = self::replace_markdown_checkboxes( $html );
+
+               $post_data = array(
+                       'ID'           => $post_id,
+                       'post_content' => wp_filter_post_kses( wp_slash( $html ) ),
+               );
+               if ( ! is_null( $title ) ) {
+                       $post_data['post_title'] = sanitize_text_field( wp_slash( $title ) );
+               }
+               wp_update_post( $post_data );
+               return true;
+       }
+
+       /**
+        * Retrieve the markdown source URL for a given post.
+        */
+       public static function get_markdown_source( $post_id ) {
+               $markdown_source = get_post_meta( $post_id, self::$meta_key, true );
+               if ( ! $markdown_source ) {
+                       return new WP_Error( 'missing-markdown-source', 'Markdown source is missing for post.' );
+               }
+
+               return $markdown_source;
+       }
+
+       /**
+        * Replace markdown checkboxes in the post-processed HTML.
+        * 
+        * @param string $html The HTML after translation from markup.
+        * 
+        * @return string The HTML after potentially replacing markdown checkboxes with HTML ones.
+        */
+       public static function replace_markdown_checkboxes( $html ) {
+               $empty_check_markup = '<input type="checkbox" id="" disabled="" class="task-list-item-checkbox">';
+               $full_check_markup = '<input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked="">';
+
+               // We need to allow inputs with all of our attributes for wp_filter_post_kses().
+               global $allowedposttags;
+
+               $allowedposttags['input'] = [
+                       'type'     => [],
+                       'disabled' => [],
+                       'checked'  => [],
+                       'class'    => [],
+                       'id'       => [],
+               ];
+
+               $html = preg_replace( '/\[ \]/', $empty_check_markup, $html );
+               $html = preg_replace( '/\[x\]/', $full_check_markup, $html );
+               return $html;
+       }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclassshortcodesphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-shortcodes.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-shortcodes.php                             (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-shortcodes.php       2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,196 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+namespace WPOrg_Learn;
+
+class Shortcodes{
+
+       private static $auth_token;
+
+       /**
+        * Register custom shortcodes.
+        */
+       public static function action_init() {
+               //add_shortcode( 'learn-issue-list', array( __CLASS__, 'issue_list' ) );
+               //add_shortcode( 'learn-repo-list', array( __CLASS__, 'repo_list' ) );
+       }
+
+       /**
+        * List all issues with a specific label
+        */
+       public static function issue_list( $atts ) {
+               if ( isset( $atts['auth_token'] ) ) {
+                       self::$auth_token = $atts['auth_token'];
+               }
+               $filter_label = isset( $atts['label'] ) ? $atts['label'] : '';
+               $out = '<h2>' . sprintf( 'Issues labeled "%s"', esc_html( $filter_label ) ) . '</h2>';
+               $url = 'https://api.github.com/orgs/wptrainingteam/issues';
+               $url = add_query_arg( array_map( 'rawurlencode', array(
+                       'per_page' => 100,
+                       'labels'   => $filter_label,
+                       'filter'   => 'all',
+               ) ), $url );
+               $issues = self::github_request( $url );
+               if ( is_wp_error( $issues ) ) {
+                       $out .= '<p>' . esc_html( $issues->get_error_message() ) . '</p>' . PHP_EOL;
+                       return $out;
+               }
+               if ( empty( $issues ) ) {
+                       $out .= '<p>No issues found.</p>' . PHP_EOL;
+                       return $out;
+               }
+
+               $repository_issues = array(
+                       // Root repository should always be first.
+                       'wptrainingteam/wptrainingteam' => array(),
+               );
+               foreach ( $issues as $issue ) {
+                       $repo_name = $issue->repository->full_name;
+                       if ( ! isset( $repository_issues[ $repo_name ] ) ) {
+                               $repository_issues[ $repo_name ] = array();
+                       }
+                       $repository_issues[ $repo_name ][] = $issue;
+               }
+
+               foreach ( $repository_issues as $repo_name => $issues ) {
+                       if ( empty( $issues ) ) {
+                               continue;
+                       }
+                       $out .= '<h4>' . esc_html( $repo_name ) . '</h4><ul>';
+                       foreach ( $issues as $issue ) {
+                               $out .= '<li><a href="' . esc_url( $issue->html_url ) . '">' . esc_html( $issue->title ) . '</a><br />' . PHP_EOL;
+                               if ( ! empty( $issue->labels ) ) {
+                                       foreach( $issue->labels as $label ) {
+                                               if ( $label->name === $filter_label ) {
+                                                       continue;
+                                               }
+                                               $text_color = '#FFF';
+                                               $background_color = $label->color;
+                                               $c_r = hexdec( substr( $background_color, 0, 2 ) );
+                                               $c_g = hexdec( substr( $background_color, 2, 2 ) );
+                                               $c_b = hexdec( substr( $background_color, 4, 2 ) );
+                                               // Light background means dark color
+                                               if ( ( ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000 ) > 135 ) {
+                                                       $text_color = '#000';
+                                               }
+                                               $out .= '<span class="label" style="' . esc_attr( 'display:inline-block;padding-left:3px;padding-right:3px;color:' . $text_color . ';background-color:#' . $background_color ) . '">' . esc_html( $label->name ) . '</span> ';
+                                       }
+                                       $out .= '<br />';
+                               }
+                               $out .= '</li>';
+                       }
+                       $out .= '</ul>';
+               }
+               return $out;
+       }
+
+       /**
+        * Renders WP-CLI repositories in a table format.
+        */
+       public static function repo_list( $atts ) {
+
+               if ( isset( $atts['auth_token'] ) ) {
+                       self::$auth_token = $atts['auth_token'];
+               }
+
+               $out = '<h2>Repositories</h2>';
+               $repos = self::github_request( 'https://api.github.com/orgs/wptrainingteam/repos?per_page=100' );
+               if ( is_wp_error( $repos ) ) {
+                       $out .= '<p>' . esc_html( $repos->get_error_message() ) . '</p>';
+                       return $out;
+               }
+               $repo_list = array();
+               foreach( $repos as $repo ) {
+                       if ( ! preg_match( '#^wptrainingteam/.+-command$#', $repo->full_name ) ) {
+                               continue;
+                       }
+                       $repo_list[] = $repo->full_name;
+               }
+               sort( $repo_list );
+               array_unshift( $repo_list, 'wptrainingteam/wptrainingteam' );
+               $out .= '<table>' . PHP_EOL;
+               $out .= '<thead>' . PHP_EOL;
+               $out .= '<tr>' . PHP_EOL;
+               $out .= '<th>Repository</th>' . PHP_EOL;
+               $out .= '<th>Overview</th>' . PHP_EOL;
+               $out .= '<th>Status</th>' . PHP_EOL;
+               $out .= '</tr>' . PHP_EOL;
+               $out .= '</thead>' . PHP_EOL;
+               foreach( $repo_list as $i => $repo_name ) {
+                       $out .= '<tr>' . PHP_EOL;
+                       // Name
+                       $out .= '<td><a href="' . esc_url( sprintf( 'https://github.com/%s', $repo_name ) ) . '">' . esc_html( $repo_name ) . '</td>' . PHP_EOL;
+                       // Overview
+                       $out .= '<td><ul>' . PHP_EOL;
+                       // Overview: Active milestone
+                       $url = sprintf( 'https://api.github.com/repos/%s/milestones', $repo_name );
+                       $milestones = self::github_request( $url );
+                       $latest_milestone = '<em>None</em>';
+                       if ( is_wp_error( $milestones ) ) {
+                               $latest_milestone = $milestones->get_error_message();
+                       } elseif ( ! empty( $milestones ) ) {
+                               $milestones = array_shift( $milestones );
+                               $latest_milestone = '<a href="' . esc_url( $milestones->html_url ) . '">v' . esc_html( $milestones->title ) . '</a> (' . (int) $milestones->open_issues . ' open, ' . (int) $milestones->closed_issues . ' closed)';
+                       }
+                       $out .= '<li>Active: ' . wp_kses_post( $latest_milestone ) . '</li>';
+                       // Overview: Latest release
+                       $url = sprintf( 'https://api.github.com/repos/%s/releases', $repo_name );
+                       $releases = self::github_request( $url );
+                       $latest_release = '<em>None</em>';
+                       if ( is_wp_error( $releases ) ) {
+                               $latest_release = $releases->get_error_message();
+                       } elseif ( ! empty( $releases ) ) {
+                               $releases = array_shift( $releases );
+                               $latest_release = '<a href="' . esc_url( $releases->html_url ) . '">' . esc_html( $releases->tag_name ) . '</a>';
+                       }
+                       $out .= '<li>Latest: ' . wp_kses_post( $latest_release ) . '</li>';
+                       $out .= '</ul></td>' . PHP_EOL;
+                       // Status
+                       // dist-archive primarily uses Circle
+                       if ( 'wp-cli/dist-archive-command' === $repo_name ) {
+                               $status_image = sprintf( 'https://circleci.com/gh/%s/tree/master.svg?style=svg', $repo_name );
+                               $status_link = sprintf( 'https://circleci.com/gh/%s/tree/master', $repo_name );
+                       } else {
+                               $status_image = sprintf( 'https://travis-ci.org/%s.svg?branch=master', $repo_name );
+                               $status_link = sprintf( 'https://travis-ci.org/%s/branches', $repo_name );
+                       }
+                       $out .= '<td><a href="' . esc_url( $status_link ) . '"><img src="' . esc_url( $status_image ) . '">' . '</a></td>' . PHP_EOL;
+                       $out .= '</tr>' . PHP_EOL;
+               }
+               $out .= '</table>';
+               return $out;
+       }
+
+       /**
+        * Make an API request to GitHub
+        */
+       private static function github_request( $url ) {
+
+               $cache_key = 'cli_github_' . md5( $url );
+               if ( false !== ( $cache_value = get_transient( $cache_key ) ) ) {
+                       return $cache_value;
+               }
+
+               $request = array(
+                       'headers' => array(
+                               'Accept'     => 'application/vnd.github.v3+json',
+                               'User-Agent' => 'WordPress.org / WP-CLI',
+                       )
+               );
+               if ( isset( self::$auth_token ) ) {
+                       $request['headers']['Authorization'] = 'token ' . self::$auth_token;
+               }
+               $response = wp_remote_get( $url, $request );
+               if ( is_wp_error( $response ) ) {
+                       return $response;
+               }
+               $response_code = wp_remote_retrieve_response_code( $response );
+               if ( 200 !== $response_code ) {
+                       return new \WP_Error( 'github_error', sprintf( 'GitHub API error (HTTP code %d )', $response_code ) );
+               }
+               $body = wp_remote_retrieve_body( $response );
+               $data = json_decode( $body );
+               set_transient( $cache_key, $data, '', 3 * MINUTE_IN_SECONDS );
+               return $data;
+       }
+
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincclassworkshopphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-workshop.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-workshop.php                               (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/class-workshop.php 2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,146 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+namespace WPOrg_Learn;
+
+class Workshop {
+
+       /**
+        *  Register Workshop Post Type
+       */
+       public static function workshop_post_type() {
+               $labels = array(
+                       'name'                  => _x( 'Workshops', 'Post Type General Name', 'wporg_learn' ),
+                       'singular_name'         => _x( 'Workshop', 'Post Type Singular Name', 'wporg_learn' ),
+                       'menu_name'             => __( 'Workshops', 'wporg_learn' ),
+                       'name_admin_bar'        => __( 'Workshop', 'wporg_learn' ),
+                       'archives'              => __( 'Workshop Archives', 'wporg_learn' ),
+                       'attributes'            => __( 'Workshop Attributes', 'wporg_learn' ),
+                       'parent_item_colon'     => __( 'Parent Workshop:', 'wporg_learn' ),
+                       'all_items'             => __( 'All Workshops', 'wporg_learn' ),
+                       'add_new_item'          => __( 'Add New Workshop', 'wporg_learn' ),
+                       'add_new'               => __( 'Add New', 'wporg_learn' ),
+                       'new_item'              => __( 'New Workshop', 'wporg_learn' ),
+                       'edit_item'             => __( 'Edit Workshop', 'wporg_learn' ),
+                       'update_item'           => __( 'Update Workshop', 'wporg_learn' ),
+                       'view_item'             => __( 'View Workshop', 'wporg_learn' ),
+                       'view_items'            => __( 'View Workshops', 'wporg_learn' ),
+                       'search_items'          => __( 'Search Workshop', 'wporg_learn' ),
+                       'not_found'             => __( 'Not found', 'wporg_learn' ),
+                       'not_found_in_trash'    => __( 'Not found in Trash', 'wporg_learn' ),
+                       'featured_image'        => __( 'Featured Image', 'wporg_learn' ),
+                       'set_featured_image'    => __( 'Set featured image', 'wporg_learn' ),
+                       'remove_featured_image' => __( 'Remove featured image', 'wporg_learn' ),
+                       'use_featured_image'    => __( 'Use as featured image', 'wporg_learn' ),
+                       'insert_into_item'      => __( 'Insert into workshop', 'wporg_learn' ),
+                       'uploaded_to_this_item' => __( 'Uploaded to this workshop', 'wporg_learn' ),
+                       'items_list'            => __( 'Workshops list', 'wporg_learn' ),
+                       'items_list_navigation' => __( 'Workshops list navigation', 'wporg_learn' ),
+                       'filter_items_list'     => __( 'Filter Workshops list', 'wporg_learn' ),
+               );
+               $args = array(
+                       'label'                 => __( 'Workshop', 'wporg_learn' ),
+                       'description'           => __( 'WordPress.org Training Workshop', 'wporg_learn' ),
+                       'labels'                => $labels,
+                       'supports'              => array( 'title', 'editor', 'comments', 'revisions', 'custom-fields' ),
+                       'taxonomies'            => array( 'lesson_group', 'topic', 'category' ),
+                       'hierarchical'          => true,
+                       'public'                => true,
+                       'show_ui'               => true,
+                       'show_in_menu'          => true,
+                       'has_archive'           => 'workshops',
+                       'menu_position'         => 6,
+                       'menu_icon'             => 'dashicons-category',
+                       'show_in_admin_bar'     => true,
+                       'show_in_nav_menus'     => true,
+                       'can_export'            => true,
+                       'exclude_from_search'   => false,
+                       'publicly_queryable'    => true,
+                       'capability_type'       => 'page',
+                       'show_in_rest'          => true
+
+               );
+               register_post_type( 'workshop', $args );
+       }
+
+       /**
+        * Register Workshop Grouping Taxonomy
+       */
+       public static function lesson_workshop_taxonomy() {
+               $labels = array(
+                       'name'                       => _x( 'Lesson Groups', 'Lesson Plans associated to workshop group.', 'wporg_learn' ),
+                       'singular_name'              => _x( 'Lesson Group', 'Taxonomy Singular Name', 'wporg_learn' ),
+                       'menu_name'                  => __( 'Lesson Group', 'wporg_learn' ),
+                       'all_items'                  => __( 'All lesson groups', 'wporg_learn' ),
+                       'parent_item'                => __( 'Parent lesson group', 'wporg_learn' ),
+                       'parent_item_colon'          => __( 'Parent lesson group:', 'wporg_learn' ),
+                       'new_item_name'              => __( 'New lesson group Name', 'wporg_learn' ),
+                       'add_new_item'               => __( 'Add Lesson Group', 'wporg_learn' ),
+                       'edit_item'                  => __( 'Edit lesson group', 'wporg_learn' ),
+                       'update_item'                => __( 'Update lesson group', 'wporg_learn' ),
+                       'view_item'                  => __( 'View lesson group', 'wporg_learn' ),
+                       'separate_items_with_commas' => __( 'Separate lesson groups with commas', 'wporg_learn' ),
+                       'add_or_remove_items'        => __( 'Add or remove lesson groups', 'wporg_learn' ),
+                       'choose_from_most_used'      => __( 'Choose from the most used', 'wporg_learn' ),
+                       'popular_items'              => __( 'Popular lesson groups', 'wporg_learn' ),
+                       'search_items'               => __( 'Search lesson groups', 'wporg_learn' ),
+                       'not_found'                  => __( 'No lesson groups Found', 'wporg_learn' ),
+                       'no_terms'                   => __( 'No lesson groups', 'wporg_learn' ),
+                       'items_list'                 => __( 'Lesson groups list', 'wporg_learn' ),
+                       'items_list_navigation'      => __( 'Lesson groups list navigation', 'wporg_learn' ),
+               );
+
+               $args = array(
+                       'labels'                     => $labels,
+                       'hierarchical'               => true,
+                       'public'                     => true,
+                       'show_ui'                    => true,
+                       'show_admin_column'          => true,
+                       'show_in_nav_menus'          => true,
+                       'show_tagcloud'              => false,
+                       'show_in_rest'               => true,
+               );
+
+               register_taxonomy( 'lesson_group', array( 'lesson-plan' ), $args );
+       }
+
+       /**
+        * Register Workshop Topics Taxonomy
+       */
+       public static function workshop_topics_taxonomy() {
+               $labels = array(
+                       'name'                       => _x( 'Topics', 'Topic Plans associated to workshop.', 'wporg_learn' ),
+                       'singular_name'              => _x( 'Topic', 'Taxonomy Singular Name', 'wporg_learn' ),
+                       'menu_name'                  => __( 'Topics', 'wporg_learn' ),
+                       'all_items'                  => __( 'All topic', 'wporg_learn' ),
+                       'parent_item'                => __( 'Parent topic', 'wporg_learn' ),
+                       'parent_item_colon'          => __( 'Parent topic:', 'wporg_learn' ),
+                       'new_item_name'              => __( 'New Topic Name', 'wporg_learn' ),
+                       'add_new_item'               => __( 'Add Topic', 'wporg_learn' ),
+                       'edit_item'                  => __( 'Edit Topic', 'wporg_learn' ),
+                       'update_item'                => __( 'Update Topic', 'wporg_learn' ),
+                       'view_item'                  => __( 'View Topic', 'wporg_learn' ),
+                       'separate_items_with_commas' => __( 'Separate Topic with commas', 'wporg_learn' ),
+                       'add_or_remove_items'        => __( 'Add or remove Topic', 'wporg_learn' ),
+                       'choose_from_most_used'      => __( 'Choose from the most used', 'wporg_learn' ),
+                       'popular_items'              => __( 'Popular Topics', 'wporg_learn' ),
+                       'search_items'               => __( 'Search Topics', 'wporg_learn' ),
+                       'not_found'                  => __( 'No Topic Found', 'wporg_learn' ),
+                       'no_terms'                   => __( 'No Topic ', 'wporg_learn' ),
+                       'items_list'                 => __( 'Topic list', 'wporg_learn' ),
+                       'items_list_navigation'      => __( 'Topic list navigation', 'wporg_learn' ),
+               );
+
+               $args = array(
+                       'labels'                     => $labels,
+                       'hierarchical'               => false,
+                       'public'                     => true,
+                       'show_ui'                    => true,
+                       'show_admin_column'          => true,
+                       'show_in_nav_menus'          => true,
+                       'show_tagcloud'              => false,
+                       'show_in_rest'               => true,
+               );
+
+               register_taxonomy( 'topic', array( 'wporg_workshop' ), $args );
+       }
+
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincpostmetaphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-meta.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-meta.php                            (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-meta.php      2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,181 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+namespace WPOrg_Learn\Post_Meta;
+
+use DateTime, DateInterval;
+use WP_Post;
+
+defined( 'WPINC' ) || die();
+
+/**
+ * Register all post meta keys.
+ */
+function register() {
+       register_workshop_meta();
+}
+
+/**
+ * Register post meta keys for workshops.
+ */
+function register_workshop_meta() {
+       $post_type = 'wporg_workshop';
+
+       register_post_meta(
+               $post_type,
+               'duration',
+               array(
+                       'description'       => __( 'The duration in seconds of the workshop. Should be converted to a human readable string for display.', 'wporg_learn' ),
+                       'type'              => 'integer',
+                       'single'            => true,
+                       'sanitize_callback' => 'absint',
+                       'show_in_rest'      => true,
+               )
+       );
+
+       register_post_meta(
+               $post_type,
+               'facilitator_wporg_username',
+               array(
+                       'description'       => __( 'The WordPress.org user name of a facilitator for this workshop.', 'wporg_learn' ),
+                       'type'              => 'string',
+                       'single'            => false,
+                       'sanitize_callback' => 'sanitize_user',
+                       'show_in_rest'      => true,
+               )
+       );
+
+       register_post_meta(
+               $post_type,
+               'video_language',
+               array(
+                       'description'       => __( 'The language that the workshop is presented in.', 'wporg_learn' ),
+                       'type'              => 'string',
+                       'single'            => true,
+                       'sanitize_callback' => '', // todo
+                       'show_in_rest'      => true,
+               )
+       );
+
+       register_post_meta(
+               $post_type,
+               'video_caption_language',
+               array(
+                       'description'       => __( 'A language for which captions are available for the workshop video.', 'wporg_learn' ),
+                       'type'              => 'string',
+                       'single'            => false,
+                       'sanitize_callback' => '', // todo
+                       'show_in_rest'      => true,
+               )
+       );
+}
+
+/**
+ * Get the duration of a workshop in a specified format.
+ *
+ * @param WP_Post $workshop The workshop post to get the duration for.
+ * @param string  $format   Optional. The format to return the duration in. 'raw', 'interval', or 'string'.
+ *                          Default 'raw'.
+ *
+ * @return int|DateInterval|string
+ */
+function get_workshop_duration( WP_Post $workshop, $format = 'raw' ) {
+       $raw_duration = $workshop->duration ?: 0;
+       $interval = date_diff( new DateTime( '@0' ), new DateTime( "@$raw_duration" ) ); // The '@' ignores timezone.
+       $return = null;
+
+       switch ( $format ) {
+               case 'interval':
+                       $return = $interval;
+                       break;
+               case 'string':
+                       $return = human_readable_duration( $interval->format( 'HH:ii:ss' ) );
+                       break;
+               case 'raw':
+               default:
+                       $return = $raw_duration;
+                       break;
+       }
+
+       return $return;
+}
+
+/**
+ * Add meta boxes to the Edit Workshop screen.
+ *
+ * Todo these should be replaced with block editor panels.
+ */
+function add_workshop_metaboxes() {
+       add_meta_box(
+               'workshop-details',
+               __( 'Workshop Details', 'wporg_learn' ),
+               __NAMESPACE__ . '\render_metabox_workshop_details',
+               'wporg_workshop',
+               'side'
+       );
+
+       add_meta_box(
+               'workshop-facilitators',
+               __( 'Facilitators', 'wporg_learn' ),
+               __NAMESPACE__ . '\render_metabox_workshop_facilitators',
+               'wporg_workshop',
+               'side'
+       );
+}
+
+/**
+ * Render the Workshop Details meta box.
+ *
+ * @param WP_Post $post
+ */
+function render_metabox_workshop_details( WP_Post $post ) {
+       $duration_interval = get_workshop_duration( $post, 'interval' );
+       $captions = get_post_meta( $post->ID, 'video_caption_language' ) ?: array();
+
+       require dirname( dirname( __FILE__ ) ) . '/views/metabox-workshop-details.php';
+}
+
+/**
+ * Render the Facilitators meta box.
+ *
+ * @param WP_Post $post
+ */
+function render_metabox_workshop_facilitators( WP_Post $post ) {
+       $facilitators = get_post_meta( $post->ID, 'facilitator_wporg_username' ) ?: array();
+
+       require dirname( dirname( __FILE__ ) ) . '/views/metabox-workshop-facilitators.php';
+}
+
+/**
+ * Update the post meta values from the meta box fields when the post is saved.
+ *
+ * @param int $post_id
+ * @param WP_Post $post
+ */
+function save_workshop_metabox_fields( $post_id, WP_Post $post ) {
+       if ( wp_is_post_revision( $post_id ) || ! current_user_can( 'edit_post', $post_id ) ) {
+               return;
+       }
+
+       $duration = filter_input( INPUT_POST, 'duration', FILTER_SANITIZE_NUMBER_INT, FILTER_REQUIRE_ARRAY );
+       if ( isset( $duration['h'], $duration['m'] ) ) {
+               $duration = $duration['h'] * HOUR_IN_SECONDS + $duration['m'] * MINUTE_IN_SECONDS;
+               update_post_meta( $post_id, 'duration', $duration );
+       }
+
+       $facilitator_wporg_username = filter_input( INPUT_POST, 'facilitator-wporg-username' );
+       $usernames = array_map( 'trim', explode( ',', $facilitator_wporg_username ) );
+       delete_post_meta( $post_id, 'facilitator_wporg_username' );
+       foreach( $usernames as $username ) {
+               add_post_meta( $post_id, 'facilitator_wporg_username', $username );
+       }
+
+       $video_language = filter_input( INPUT_POST, 'video-language' );
+       update_post_meta( $post_id, 'video_language', $video_language );
+
+       $video_caption_language = filter_input( INPUT_POST, 'video-caption-language' );
+       $captions = array_map( 'trim', explode( ',', $video_caption_language ) );
+       delete_post_meta( $post_id, 'video_caption_language' );
+       foreach( $captions as $caption ) {
+               add_post_meta( $post_id, 'video_caption_language', $caption );
+       }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnincposttypephp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-type.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-type.php                            (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/inc/post-type.php      2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,142 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+namespace WPOrg_Learn\Post_Types;
+
+defined( 'WPINC' ) || die();
+
+/**
+ * Register all post types.
+ */
+function register() {
+       register_workshop();
+}
+
+/**
+ * Register a Workshop post type.
+ */
+function register_workshop() {
+       $labels = array(
+               'name'                  => _x( 'Workshops', 'Post Type General Name', 'wporg_learn' ),
+               'singular_name'         => _x( 'Workshop', 'Post Type Singular Name', 'wporg_learn' ),
+               'menu_name'             => __( 'Workshops', 'wporg_learn' ),
+               'name_admin_bar'        => __( 'Workshop', 'wporg_learn' ),
+               'archives'              => __( 'Workshop Archives', 'wporg_learn' ),
+               'attributes'            => __( 'Workshop Attributes', 'wporg_learn' ),
+               'parent_item_colon'     => __( 'Parent Workshop:', 'wporg_learn' ),
+               'all_items'             => __( 'All Workshops', 'wporg_learn' ),
+               'add_new_item'          => __( 'Add New Workshop', 'wporg_learn' ),
+               'add_new'               => __( 'Add New', 'wporg_learn' ),
+               'new_item'              => __( 'New Workshop', 'wporg_learn' ),
+               'edit_item'             => __( 'Edit Workshop', 'wporg_learn' ),
+               'update_item'           => __( 'Update Workshop', 'wporg_learn' ),
+               'view_item'             => __( 'View Workshop', 'wporg_learn' ),
+               'view_items'            => __( 'View Workshops', 'wporg_learn' ),
+               'search_items'          => __( 'Search Workshop', 'wporg_learn' ),
+               'not_found'             => __( 'Not found', 'wporg_learn' ),
+               'not_found_in_trash'    => __( 'Not found in Trash', 'wporg_learn' ),
+               'featured_image'        => __( 'Featured Image', 'wporg_learn' ),
+               'set_featured_image'    => __( 'Set featured image', 'wporg_learn' ),
+               'remove_featured_image' => __( 'Remove featured image', 'wporg_learn' ),
+               'use_featured_image'    => __( 'Use as featured image', 'wporg_learn' ),
+               'insert_into_item'      => __( 'Insert into workshop', 'wporg_learn' ),
+               'uploaded_to_this_item' => __( 'Uploaded to this workshop', 'wporg_learn' ),
+               'items_list'            => __( 'Workshops list', 'wporg_learn' ),
+               'items_list_navigation' => __( 'Workshops list navigation', 'wporg_learn' ),
+               'filter_items_list'     => __( 'Filter Workshops list', 'wporg_learn' ),
+       );
+
+       $video_template_part =  array( 'core/group',
+               array( 'className' => 'workshop-page_video' ),
+               array( array( 'core-embed/wordpress-tv' ) )
+       );
+
+       $outcome_template_part = array( 'core/group',
+               array( 'className' => 'workshop-page_list' ),
+               array(
+                       array( 'core/heading', array(
+                               'level' => '2',
+                               'content' => __( 'Learning outcomes', 'wporg-learn' ),
+                       ) ),
+                       array( 'core/list', array(
+                               'ordered' => true
+                        ) ),
+               )
+       );
+
+       $comprehension_template_part = array( 'core/group',
+               array( 'className' => 'workshop-page_list' ),
+               array(
+                       array( 'core/heading', array(
+                               'level' => '2',
+                               'content' => __( 'Comprehension questions', 'wporg-learn' ),
+                       ) ),
+                       array( 'core/list', array(
+                               'ordered' => true
+                       ) ),
+               )
+       );
+
+       $sidebar_template_part = array( 'core/group',
+               array( 'className' => 'workshop-page_sidebar' ),
+               array(
+                       array( 'wporg-learn/workshop-details' ),
+                       array( 'core/button', array(
+                               'text'         => __( 'Join a Group Discussion', 'wporg-learn' ),
+                               'url'          => 'https://wordpress.org',
+                               'borderRadius' => 5,
+                               'className'    => 'is-style-secondary-full-width',
+                       ) ),
+                       array( 'core/paragraph', array(
+                               'content' => sprintf(
+                                       __( 'You must agree to our <a href="%s">Code of Conduct</a> in order to participate.', 'wporg-learn' ),
+                                       'https://learn.wordpress.org/code-of-conduct/'
+                               )
+                       ) )
+               )
+       );
+
+       $args = array(
+               'label'                 => __( 'Workshop', 'wporg_learn' ),
+               'description'           => __( 'WordPress.org Training Workshop', 'wporg_learn' ),
+               'labels'                => $labels,
+               'supports'              => array( 'title', 'editor', 'comments', 'revisions', 'custom-fields', 'thumbnail' ),
+               'taxonomies'            => array( 'level', 'topic', 'category' ),
+               'hierarchical'          => true,
+               'public'                => true,
+               'show_ui'               => true,
+               'show_in_menu'          => true,
+               'has_archive'           => 'workshops',
+               'menu_position'         => 6,
+               'menu_icon'             => 'dashicons-category',
+               'show_in_admin_bar'     => true,
+               'show_in_nav_menus'     => true,
+               'can_export'            => true,
+               'exclude_from_search'   => false,
+               'publicly_queryable'    => true,
+               'capability_type'       => 'page',
+               'show_in_rest'          => true,
+               'template_lock'         => 'all',
+               'template' => array(
+                       array( 'core/group',
+                       array( 'className' => 'workshop-page_content' ),
+                               array(
+                                       $video_template_part,
+                                       array( 'core/columns', array( ), array(
+                                               array( 'core/column', array( 'width' => 66.66 ), array(
+                                                       array( 'core/paragraph', array(
+                                                               'placeholder' => __( 'Describe what the workshop is about', 'wporg-learn' ),
+                                                       ) ),
+                                                       $outcome_template_part,
+                                                       $comprehension_template_part,
+                                               ) ),
+                                               array( 'core/column', array( 'width' => 33.333 ), array(
+                                                       $sidebar_template_part,
+                                               ) )
+                                       ) ),
+                               ) ),
+                       array( 'core/separator', array( ) ),
+               ),
+       );
+
+       register_post_type( 'wporg_workshop', $args );
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsblockstylesindexjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/index.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/index.js                             (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/index.js       2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,25 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+import { registerBlockStyle } from '@wordpress/blocks';
+import { __ } from '@wordpress/i18n';
+
+import './style.scss';
+
+registerBlockStyle( 'core/button', {
+       name: 'primary',
+       label: __( 'Primary', 'wporg-learn' ),
+} );
+
+registerBlockStyle( 'core/button', {
+       name: 'primary-full-width',
+       label: __( 'Primary (Full-width)', 'wporg-learn' ),
+} );
+
+registerBlockStyle( 'core/button', {
+       name: 'secondary',
+       label: __( 'Secondary', 'wporg-learn' ),
+} );
+
+registerBlockStyle( 'core/button', {
+       name: 'secondary-full-width',
+       label: __( 'Secondary (Full-width)', 'wporg-learn' ),
+} );
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsblockstylesstylescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/style.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/style.scss                           (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/block-styles/style.scss     2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,35 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.is-style-primary,
+.is-style-primary-full-width,
+.is-style-secondary,
+.is-style-secondary-full-width {
+       .wp-block-button__link,
+       .wp-block-button__link:visited {
+               background: #0085ba;
+               color: #fff;
+               text-align: center;
+               font-size: 13px;
+               font-weight: bold;
+               padding: 0.9rem;
+               margin: 32px 0;
+       }
+}
+
+.is-style-secondary,
+.is-style-secondary-full-width {
+       .wp-block-button__link,
+       .wp-block-button__link:visited {
+               background: #f8f9f9;
+               color: #555;
+               border: 1px solid #d9dcdf;
+               box-shadow: 0 1px 0 #d9dcdf;
+       }
+}
+
+.is-style-primary-full-width,
+.is-style-secondary-full-width {
+       width: 100%;
+
+       .wp-block-button__link {
+               width: 100%;
+       }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailsblockjson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/block.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/block.json                               (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/block.json 2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,14 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+       "name": "wporg-learn/workshop-details",
+       "title": "Workshop Details",
+       "category": "widgets",
+       "icon": "smiley",
+       "description": "",
+       "textdomain": "wporg-learn",
+       "supports": {
+               "html": false
+       },
+       "editorScript": "file:../../build/workshop-details.js",
+       "editorStyle": "file:../../build/workshop-details.css",
+       "style": "file:../../build/style-workshop-details.css"
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrceditjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/edit.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/edit.js                              (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/edit.js        2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,34 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * Retrieves the translation of text.
+ *
+ * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Lets webpack process CSS, SASS or SCSS files referenced in JavaScript files.
+ * Those files can contain any CSS code that gets applied to the editor.
+ *
+ * @see https://www.npmjs.com/package/@wordpress/scripts#using-css
+ */
+import './editor.scss';
+
+/**
+ * The edit function describes the structure of your block in the context of the
+ * editor. This represents what the editor will render when the block is used.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/block-edit-save/#edit
+ *
+ * @param {Object} [props]           Properties passed from the editor.
+ * @param {string} [props.className] Class name generated for the block.
+ *
+ * @return {WPElement} Element to render.
+ */
+export default function Edit( { className } ) {
+       return (
+               <div className={ className }>
+                       <p>{ __( 'Workshop Details', 'wporg-learn' ) }</p>
+            <p>{ __( 'This will be dynamically populated based on custom fields.', 'wporg-learn' ) }</p>
+               </div>
+       );
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrceditorscss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/editor.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/editor.scss                          (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/editor.scss    2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,28 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * The following styles get applied inside the editor only.
+ *
+ * Replace them with your own styles or remove the file completely.
+ */
+
+ .wp-block-wporg-learn-workshop-details {
+       min-height: 150px;
+       padding: 16px;
+       display: flex;
+       flex-direction: column;
+       background: #eee;
+       align-items: center;
+       justify-content: center;
+       font-size: 14px;
+
+       p {
+               margin: 4px !important;
+               text-align: center;
+               font-size: 18px !important;
+               line-height: 22px !important;
+       }
+
+       p:last-child {
+               font-size: 10px !important;
+       }
+}
+
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrcindexjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/index.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/index.js                             (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/index.js       2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,80 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * Registers a new block provided a unique name and an object defining its behavior.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block
+ */
+import { registerBlockType } from '@wordpress/blocks';
+
+/**
+ * Retrieves the translation of text.
+ *
+ * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Lets webpack process CSS, SASS or SCSS files referenced in JavaScript files.
+ * All files containing `style` keyword are bundled together. The code used
+ * gets applied both to the front of your site and to the editor.
+ *
+ * @see https://www.npmjs.com/package/@wordpress/scripts#using-css
+ */
+import './style.scss';
+
+/**
+ * Internal dependencies
+ */
+import Edit from './edit';
+import save from './save';
+
+/**
+ * Every block starts by registering a new block type definition.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block
+ */
+registerBlockType( 'wporg-learn/workshop-details', {
+       /**
+        * This is the display title for your block, which can be translated with `i18n` functions.
+        * The block inserter will show this name.
+        */
+       title: __( 'Workshop Details', 'wporg-learn' ),
+
+       /**
+        * This is a short description for your block, can be translated with `i18n` functions.
+        * It will be shown in the Block Tab in the Settings Sidebar.
+        */
+       description: __(
+               'Example block written with ESNext standard and JSX support – build step required.',
+               'wporg-learn'
+       ),
+
+       /**
+        * Blocks are grouped into categories to help users browse and discover them.
+        * The categories provided by core are `common`, `embed`, `formatting`, `layout` and `widgets`.
+        */
+    category: 'widgets',
+
+       /**
+        * An icon property should be specified to make it easier to identify a block.
+        * These can be any of WordPress’ Dashicons, or a custom svg element.
+        */
+       icon: 'smiley',
+
+       /**
+        * Optional block extended support features.
+        */
+       supports: {
+               // Removes support for an HTML mode.
+               html: false,
+       },
+
+       /**
+        * @see ./edit.js
+        */
+       edit: Edit,
+
+       /**
+        * @see ./save.js
+        */
+       save
+} );
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrcsavejs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/save.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/save.js                              (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/save.js        2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,19 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * Retrieves the translation of text.
+ *
+ * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * The save function defines the way in which the different attributes should
+ * be combined into the final markup, which is then serialized by the block
+ * editor into `post_content`.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/block-edit-save/#save
+ *
+ * @return {WPElement} Element to render.
+ */
+export default function save() {
+       return ( <div/ >);
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnjsworkshopdetailssrcstylescss"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/style.scss</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/style.scss                           (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/js/workshop-details/src/style.scss     2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,30 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/**
+ * The following styles get applied both on the front of your site
+ * and in the editor.
+ *
+ * Replace them with your own styles or remove the file completely.
+ */
+
+ .wp-block-wporg-learn-workshop-details {
+       list-style: none;
+       margin: 0;
+       padding: 0;
+       color: #555d66;
+
+       li {
+               display: flex;
+               justify-content: space-between;
+               padding: 8px 0;
+               border-top: 1px solid #E2E4E7;
+
+               &:last-child {
+                       border-bottom: 1px solid #E2E4E7;
+               }
+
+               > span {
+                       text-align: right;
+                       flex-basis: 50%;
+                       word-break: normal;
+               }
+       }
+}
</ins></span></pre></div>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginswporglearnpackagelockjson"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/package-lock.json</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/package-lock.json                            (rev 0)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-learn/package-lock.json      2020-08-08 19:35:48 UTC (rev 10130)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,16897 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+{
+       "name": "wporg-learn-plugin",
+       "version": "1.0.0",
+       "lockfileVersion": 1,
+       "requires": true,
+       "dependencies": {
+               "@babel/code-frame": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+                       "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/highlight": "^7.10.4"
+                       }
+               },
+               "@babel/compat-data": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz",
+                       "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==",
+                       "dev": true,
+                       "requires": {
+                               "browserslist": "^4.12.0",
+                               "invariant": "^2.2.4",
+                               "semver": "^5.5.0"
+                       }
+               },
+               "@babel/core": {
+                       "version": "7.11.1",
+                       "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz",
+                       "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/code-frame": "^7.10.4",
+                               "@babel/generator": "^7.11.0",
+                               "@babel/helper-module-transforms": "^7.11.0",
+                               "@babel/helpers": "^7.10.4",
+                               "@babel/parser": "^7.11.1",
+                               "@babel/template": "^7.10.4",
+                               "@babel/traverse": "^7.11.0",
+                               "@babel/types": "^7.11.0",
+                               "convert-source-map": "^1.7.0",
+                               "debug": "^4.1.0",
+                               "gensync": "^1.0.0-beta.1",
+                               "json5": "^2.1.2",
+                               "lodash": "^4.17.19",
+                               "resolve": "^1.3.2",
+                               "semver": "^5.4.1",
+                               "source-map": "^0.5.0"
+                       }
+               },
+               "@babel/generator": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz",
+                       "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.11.0",
+                               "jsesc": "^2.5.1",
+                               "source-map": "^0.5.0"
+                       }
+               },
+               "@babel/helper-annotate-as-pure": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
+                       "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-builder-binary-assignment-operator-visitor": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
+                       "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-explode-assignable-expression": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-builder-react-jsx": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
+                       "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-annotate-as-pure": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-builder-react-jsx-experimental": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz",
+                       "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-annotate-as-pure": "^7.10.4",
+                               "@babel/helper-module-imports": "^7.10.4",
+                               "@babel/types": "^7.10.5"
+                       }
+               },
+               "@babel/helper-compilation-targets": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz",
+                       "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/compat-data": "^7.10.4",
+                               "browserslist": "^4.12.0",
+                               "invariant": "^2.2.4",
+                               "levenary": "^1.1.1",
+                               "semver": "^5.5.0"
+                       }
+               },
+               "@babel/helper-create-class-features-plugin": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz",
+                       "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-function-name": "^7.10.4",
+                               "@babel/helper-member-expression-to-functions": "^7.10.5",
+                               "@babel/helper-optimise-call-expression": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-replace-supers": "^7.10.4",
+                               "@babel/helper-split-export-declaration": "^7.10.4"
+                       }
+               },
+               "@babel/helper-create-regexp-features-plugin": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz",
+                       "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-annotate-as-pure": "^7.10.4",
+                               "@babel/helper-regex": "^7.10.4",
+                               "regexpu-core": "^4.7.0"
+                       }
+               },
+               "@babel/helper-define-map": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz",
+                       "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-function-name": "^7.10.4",
+                               "@babel/types": "^7.10.5",
+                               "lodash": "^4.17.19"
+                       }
+               },
+               "@babel/helper-explode-assignable-expression": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz",
+                       "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/traverse": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-function-name": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+                       "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-get-function-arity": "^7.10.4",
+                               "@babel/template": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-get-function-arity": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+                       "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-hoist-variables": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz",
+                       "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-member-expression-to-functions": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz",
+                       "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.11.0"
+                       }
+               },
+               "@babel/helper-module-imports": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+                       "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-module-transforms": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
+                       "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-module-imports": "^7.10.4",
+                               "@babel/helper-replace-supers": "^7.10.4",
+                               "@babel/helper-simple-access": "^7.10.4",
+                               "@babel/helper-split-export-declaration": "^7.11.0",
+                               "@babel/template": "^7.10.4",
+                               "@babel/types": "^7.11.0",
+                               "lodash": "^4.17.19"
+                       }
+               },
+               "@babel/helper-optimise-call-expression": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+                       "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-plugin-utils": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+                       "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
+                       "dev": true
+               },
+               "@babel/helper-regex": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz",
+                       "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==",
+                       "dev": true,
+                       "requires": {
+                               "lodash": "^4.17.19"
+                       }
+               },
+               "@babel/helper-remap-async-to-generator": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz",
+                       "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-annotate-as-pure": "^7.10.4",
+                               "@babel/helper-wrap-function": "^7.10.4",
+                               "@babel/template": "^7.10.4",
+                               "@babel/traverse": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-replace-supers": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+                       "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-member-expression-to-functions": "^7.10.4",
+                               "@babel/helper-optimise-call-expression": "^7.10.4",
+                               "@babel/traverse": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-simple-access": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+                       "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/template": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helper-skip-transparent-expression-wrappers": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz",
+                       "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.11.0"
+                       }
+               },
+               "@babel/helper-split-export-declaration": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
+                       "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.11.0"
+                       }
+               },
+               "@babel/helper-validator-identifier": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+                       "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+                       "dev": true
+               },
+               "@babel/helper-wrap-function": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz",
+                       "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-function-name": "^7.10.4",
+                               "@babel/template": "^7.10.4",
+                               "@babel/traverse": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/helpers": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+                       "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/template": "^7.10.4",
+                               "@babel/traverse": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/highlight": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+                       "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-validator-identifier": "^7.10.4",
+                               "chalk": "^2.0.0",
+                               "js-tokens": "^4.0.0"
+                       },
+                       "dependencies": {
+                               "chalk": {
+                                       "version": "2.4.2",
+                                       "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+                                       "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+                                       "dev": true,
+                                       "requires": {
+                                               "ansi-styles": "^3.2.1",
+                                               "escape-string-regexp": "^1.0.5",
+                                               "supports-color": "^5.3.0"
+                                       }
+                               }
+                       }
+               },
+               "@babel/parser": {
+                       "version": "7.11.2",
+                       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.2.tgz",
+                       "integrity": "sha512-Vuj/+7vLo6l1Vi7uuO+1ngCDNeVmNbTngcJFKCR/oEtz8tKz0CJxZEGmPt9KcIloZhOZ3Zit6xbpXT2MDlS9Vw==",
+                       "dev": true
+               },
+               "@babel/plugin-proposal-async-generator-functions": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz",
+                       "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-remap-async-to-generator": "^7.10.4",
+                               "@babel/plugin-syntax-async-generators": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-proposal-class-properties": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz",
+                       "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-create-class-features-plugin": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-proposal-dynamic-import": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz",
+                       "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-dynamic-import": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-proposal-export-namespace-from": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz",
+                       "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+                       }
+               },
+               "@babel/plugin-proposal-json-strings": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz",
+                       "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-json-strings": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-proposal-logical-assignment-operators": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz",
+                       "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-proposal-nullish-coalescing-operator": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz",
+                       "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-proposal-numeric-separator": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz",
+                       "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-proposal-object-rest-spread": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz",
+                       "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+                               "@babel/plugin-transform-parameters": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-proposal-optional-catch-binding": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz",
+                       "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-proposal-optional-chaining": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz",
+                       "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0",
+                               "@babel/plugin-syntax-optional-chaining": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-proposal-private-methods": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz",
+                       "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-create-class-features-plugin": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-proposal-unicode-property-regex": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz",
+                       "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-syntax-async-generators": {
+                       "version": "7.8.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+                       "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-bigint": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+                       "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-class-properties": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
+                       "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-syntax-dynamic-import": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+                       "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-export-namespace-from": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+                       "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.3"
+                       }
+               },
+               "@babel/plugin-syntax-import-meta": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+                       "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-syntax-json-strings": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+                       "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-jsx": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz",
+                       "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-syntax-logical-assignment-operators": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+                       "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-syntax-nullish-coalescing-operator": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+                       "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-numeric-separator": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+                       "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-syntax-object-rest-spread": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+                       "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-optional-catch-binding": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+                       "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-optional-chaining": {
+                       "version": "7.8.3",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+                       "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.8.0"
+                       }
+               },
+               "@babel/plugin-syntax-top-level-await": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz",
+                       "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-arrow-functions": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz",
+                       "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-async-to-generator": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz",
+                       "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-module-imports": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-remap-async-to-generator": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-block-scoped-functions": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz",
+                       "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-block-scoping": {
+                       "version": "7.11.1",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz",
+                       "integrity": "sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-classes": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz",
+                       "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-annotate-as-pure": "^7.10.4",
+                               "@babel/helper-define-map": "^7.10.4",
+                               "@babel/helper-function-name": "^7.10.4",
+                               "@babel/helper-optimise-call-expression": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-replace-supers": "^7.10.4",
+                               "@babel/helper-split-export-declaration": "^7.10.4",
+                               "globals": "^11.1.0"
+                       }
+               },
+               "@babel/plugin-transform-computed-properties": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz",
+                       "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-destructuring": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz",
+                       "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-dotall-regex": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz",
+                       "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-duplicate-keys": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz",
+                       "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-exponentiation-operator": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz",
+                       "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-for-of": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
+                       "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-function-name": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz",
+                       "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-function-name": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-literals": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz",
+                       "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-member-expression-literals": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz",
+                       "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-modules-amd": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz",
+                       "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-module-transforms": "^7.10.5",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "babel-plugin-dynamic-import-node": "^2.3.3"
+                       }
+               },
+               "@babel/plugin-transform-modules-commonjs": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz",
+                       "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-module-transforms": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-simple-access": "^7.10.4",
+                               "babel-plugin-dynamic-import-node": "^2.3.3"
+                       }
+               },
+               "@babel/plugin-transform-modules-systemjs": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz",
+                       "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-hoist-variables": "^7.10.4",
+                               "@babel/helper-module-transforms": "^7.10.5",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "babel-plugin-dynamic-import-node": "^2.3.3"
+                       }
+               },
+               "@babel/plugin-transform-modules-umd": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz",
+                       "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-module-transforms": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-named-capturing-groups-regex": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz",
+                       "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-create-regexp-features-plugin": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-new-target": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz",
+                       "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-object-super": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz",
+                       "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-replace-supers": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-parameters": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz",
+                       "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-get-function-arity": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-property-literals": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz",
+                       "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-react-constant-elements": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz",
+                       "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-react-display-name": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz",
+                       "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-react-jsx": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz",
+                       "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-builder-react-jsx": "^7.10.4",
+                               "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-jsx": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-react-jsx-development": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz",
+                       "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-jsx": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-react-jsx-self": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz",
+                       "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-jsx": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-react-jsx-source": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz",
+                       "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-syntax-jsx": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-react-pure-annotations": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz",
+                       "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-annotate-as-pure": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-regenerator": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz",
+                       "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==",
+                       "dev": true,
+                       "requires": {
+                               "regenerator-transform": "^0.14.2"
+                       }
+               },
+               "@babel/plugin-transform-reserved-words": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz",
+                       "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-runtime": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz",
+                       "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-module-imports": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "resolve": "^1.8.1",
+                               "semver": "^5.5.1"
+                       }
+               },
+               "@babel/plugin-transform-shorthand-properties": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz",
+                       "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-spread": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz",
+                       "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0"
+                       }
+               },
+               "@babel/plugin-transform-sticky-regex": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz",
+                       "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/helper-regex": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-template-literals": {
+                       "version": "7.10.5",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz",
+                       "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-annotate-as-pure": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-typeof-symbol": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz",
+                       "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-unicode-escapes": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz",
+                       "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/plugin-transform-unicode-regex": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz",
+                       "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4"
+                       }
+               },
+               "@babel/preset-env": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz",
+                       "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/compat-data": "^7.11.0",
+                               "@babel/helper-compilation-targets": "^7.10.4",
+                               "@babel/helper-module-imports": "^7.10.4",
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-proposal-async-generator-functions": "^7.10.4",
+                               "@babel/plugin-proposal-class-properties": "^7.10.4",
+                               "@babel/plugin-proposal-dynamic-import": "^7.10.4",
+                               "@babel/plugin-proposal-export-namespace-from": "^7.10.4",
+                               "@babel/plugin-proposal-json-strings": "^7.10.4",
+                               "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0",
+                               "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
+                               "@babel/plugin-proposal-numeric-separator": "^7.10.4",
+                               "@babel/plugin-proposal-object-rest-spread": "^7.11.0",
+                               "@babel/plugin-proposal-optional-catch-binding": "^7.10.4",
+                               "@babel/plugin-proposal-optional-chaining": "^7.11.0",
+                               "@babel/plugin-proposal-private-methods": "^7.10.4",
+                               "@babel/plugin-proposal-unicode-property-regex": "^7.10.4",
+                               "@babel/plugin-syntax-async-generators": "^7.8.0",
+                               "@babel/plugin-syntax-class-properties": "^7.10.4",
+                               "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+                               "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+                               "@babel/plugin-syntax-json-strings": "^7.8.0",
+                               "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+                               "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
+                               "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+                               "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+                               "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
+                               "@babel/plugin-syntax-optional-chaining": "^7.8.0",
+                               "@babel/plugin-syntax-top-level-await": "^7.10.4",
+                               "@babel/plugin-transform-arrow-functions": "^7.10.4",
+                               "@babel/plugin-transform-async-to-generator": "^7.10.4",
+                               "@babel/plugin-transform-block-scoped-functions": "^7.10.4",
+                               "@babel/plugin-transform-block-scoping": "^7.10.4",
+                               "@babel/plugin-transform-classes": "^7.10.4",
+                               "@babel/plugin-transform-computed-properties": "^7.10.4",
+                               "@babel/plugin-transform-destructuring": "^7.10.4",
+                               "@babel/plugin-transform-dotall-regex": "^7.10.4",
+                               "@babel/plugin-transform-duplicate-keys": "^7.10.4",
+                               "@babel/plugin-transform-exponentiation-operator": "^7.10.4",
+                               "@babel/plugin-transform-for-of": "^7.10.4",
+                               "@babel/plugin-transform-function-name": "^7.10.4",
+                               "@babel/plugin-transform-literals": "^7.10.4",
+                               "@babel/plugin-transform-member-expression-literals": "^7.10.4",
+                               "@babel/plugin-transform-modules-amd": "^7.10.4",
+                               "@babel/plugin-transform-modules-commonjs": "^7.10.4",
+                               "@babel/plugin-transform-modules-systemjs": "^7.10.4",
+                               "@babel/plugin-transform-modules-umd": "^7.10.4",
+                               "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4",
+                               "@babel/plugin-transform-new-target": "^7.10.4",
+                               "@babel/plugin-transform-object-super": "^7.10.4",
+                               "@babel/plugin-transform-parameters": "^7.10.4",
+                               "@babel/plugin-transform-property-literals": "^7.10.4",
+                               "@babel/plugin-transform-regenerator": "^7.10.4",
+                               "@babel/plugin-transform-reserved-words": "^7.10.4",
+                               "@babel/plugin-transform-shorthand-properties": "^7.10.4",
+                               "@babel/plugin-transform-spread": "^7.11.0",
+                               "@babel/plugin-transform-sticky-regex": "^7.10.4",
+                               "@babel/plugin-transform-template-literals": "^7.10.4",
+                               "@babel/plugin-transform-typeof-symbol": "^7.10.4",
+                               "@babel/plugin-transform-unicode-escapes": "^7.10.4",
+                               "@babel/plugin-transform-unicode-regex": "^7.10.4",
+                               "@babel/preset-modules": "^0.1.3",
+                               "@babel/types": "^7.11.0",
+                               "browserslist": "^4.12.0",
+                               "core-js-compat": "^3.6.2",
+                               "invariant": "^2.2.2",
+                               "levenary": "^1.1.1",
+                               "semver": "^5.5.0"
+                       }
+               },
+               "@babel/preset-modules": {
+                       "version": "0.1.3",
+                       "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
+                       "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.0.0",
+                               "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+                               "@babel/plugin-transform-dotall-regex": "^7.4.4",
+                               "@babel/types": "^7.4.4",
+                               "esutils": "^2.0.2"
+                       }
+               },
+               "@babel/preset-react": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz",
+                       "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.10.4",
+                               "@babel/plugin-transform-react-display-name": "^7.10.4",
+                               "@babel/plugin-transform-react-jsx": "^7.10.4",
+                               "@babel/plugin-transform-react-jsx-development": "^7.10.4",
+                               "@babel/plugin-transform-react-jsx-self": "^7.10.4",
+                               "@babel/plugin-transform-react-jsx-source": "^7.10.4",
+                               "@babel/plugin-transform-react-pure-annotations": "^7.10.4"
+                       }
+               },
+               "@babel/runtime": {
+                       "version": "7.11.2",
+                       "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz",
+                       "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==",
+                       "dev": true,
+                       "requires": {
+                               "regenerator-runtime": "^0.13.4"
+                       }
+               },
+               "@babel/runtime-corejs3": {
+                       "version": "7.11.2",
+                       "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz",
+                       "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==",
+                       "dev": true,
+                       "requires": {
+                               "core-js-pure": "^3.0.0",
+                               "regenerator-runtime": "^0.13.4"
+                       }
+               },
+               "@babel/template": {
+                       "version": "7.10.4",
+                       "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+                       "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/code-frame": "^7.10.4",
+                               "@babel/parser": "^7.10.4",
+                               "@babel/types": "^7.10.4"
+                       }
+               },
+               "@babel/traverse": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
+                       "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/code-frame": "^7.10.4",
+                               "@babel/generator": "^7.11.0",
+                               "@babel/helper-function-name": "^7.10.4",
+                               "@babel/helper-split-export-declaration": "^7.11.0",
+                               "@babel/parser": "^7.11.0",
+                               "@babel/types": "^7.11.0",
+                               "debug": "^4.1.0",
+                               "globals": "^11.1.0",
+                               "lodash": "^4.17.19"
+                       }
+               },
+               "@babel/types": {
+                       "version": "7.11.0",
+                       "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
+                       "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-validator-identifier": "^7.10.4",
+                               "lodash": "^4.17.19",
+                               "to-fast-properties": "^2.0.0"
+                       }
+               },
+               "@bcoe/v8-coverage": {
+                       "version": "0.2.3",
+                       "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+                       "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+                       "dev": true
+               },
+               "@cnakazawa/watch": {
+                       "version": "1.0.4",
+                       "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
+                       "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
+                       "dev": true,
+                       "requires": {
+                               "exec-sh": "^0.3.2",
+                               "minimist": "^1.2.0"
+                       }
+               },
+               "@hapi/address": {
+                       "version": "2.1.4",
+                       "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+                       "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
+                       "dev": true
+               },
+               "@hapi/bourne": {
+                       "version": "1.3.2",
+                       "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
+                       "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
+                       "dev": true
+               },
+               "@hapi/hoek": {
+                       "version": "8.5.1",
+                       "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+                       "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
+                       "dev": true
+               },
+               "@hapi/joi": {
+                       "version": "15.1.1",
+                       "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
+                       "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
+                       "dev": true,
+                       "requires": {
+                               "@hapi/address": "2.x.x",
+                               "@hapi/bourne": "1.x.x",
+                               "@hapi/hoek": "8.x.x",
+                               "@hapi/topo": "3.x.x"
+                       }
+               },
+               "@hapi/topo": {
+                       "version": "3.1.6",
+                       "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+                       "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+                       "dev": true,
+                       "requires": {
+                               "@hapi/hoek": "^8.3.0"
+                       }
+               },
+               "@istanbuljs/load-nyc-config": {
+                       "version": "1.1.0",
+                       "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+                       "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+                       "dev": true,
+                       "requires": {
+                               "camelcase": "^5.3.1",
+                               "find-up": "^4.1.0",
+                               "get-package-type": "^0.1.0",
+                               "js-yaml": "^3.13.1",
+                               "resolve-from": "^5.0.0"
+                       },
+                       "dependencies": {
+                               "camelcase": {
+                                       "version": "5.3.1",
+                                       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+                                       "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+                                       "dev": true
+                               },
+                               "find-up": {
+                                       "version": "4.1.0",
+                                       "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+                                       "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+                                       "dev": true,
+                                       "requires": {
+                                               "locate-path": "^5.0.0",
+                                               "path-exists": "^4.0.0"
+                                       }
+                               },
+                               "locate-path": {
+                                       "version": "5.0.0",
+                                       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+                                       "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+                                       "dev": true,
+                                       "requires": {
+                                               "p-locate": "^4.1.0"
+                                       }
+                               },
+                               "p-locate": {
+                                       "version": "4.1.0",
+                                       "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+                                       "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+                                       "dev": true,
+                                       "requires": {
+                                               "p-limit": "^2.2.0"
+                                       }
+                               },
+                               "path-exists": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+                                       "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+                                       "dev": true
+                               },
+                               "resolve-from": {
+                                       "version": "5.0.0",
+                                       "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+                                       "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "@istanbuljs/schema": {
+                       "version": "0.1.2",
+                       "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz",
+                       "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==",
+                       "dev": true
+               },
+               "@jest/console": {
+                       "version": "25.5.0",
+                       "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+                       "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/types": "^25.5.0",
+                               "chalk": "^3.0.0",
+                               "jest-message-util": "^25.5.0",
+                               "jest-util": "^25.5.0",
+                               "slash": "^3.0.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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               }
+                       }
+               },
+               "@jest/core": {
+                       "version": "25.5.4",
+                       "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz",
+                       "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/console": "^25.5.0",
+                               "@jest/reporters": "^25.5.1",
+                               "@jest/test-result": "^25.5.0",
+                               "@jest/transform": "^25.5.1",
+                               "@jest/types": "^25.5.0",
+                               "ansi-escapes": "^4.2.1",
+                               "chalk": "^3.0.0",
+                               "exit": "^0.1.2",
+                               "graceful-fs": "^4.2.4",
+                               "jest-changed-files": "^25.5.0",
+                               "jest-config": "^25.5.4",
+                               "jest-haste-map": "^25.5.1",
+                               "jest-message-util": "^25.5.0",
+                               "jest-regex-util": "^25.2.6",
+                               "jest-resolve": "^25.5.1",
+                               "jest-resolve-dependencies": "^25.5.4",
+                               "jest-runner": "^25.5.4",
+                               "jest-runtime": "^25.5.4",
+                               "jest-snapshot": "^25.5.1",
+                               "jest-util": "^25.5.0",
+                               "jest-validate": "^25.5.0",
+                               "jest-watcher": "^25.5.0",
+                               "micromatch": "^4.0.2",
+                               "p-each-series": "^2.1.0",
+                               "realpath-native": "^2.0.0",
+                               "rimraf": "^3.0.0",
+                               "slash": "^3.0.0",
+                               "strip-ansi": "^6.0.0"
+                       },
+                       "dependencies": {
+                               "ansi-regex": {
+                                       "version": "5.0.0",
+                                       "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                                       "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+                                       "dev": true
+                               },
+                               "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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               },
+                               "rimraf": {
+                                       "version": "3.0.2",
+                                       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+                                       "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "glob": "^7.1.3"
+                                       }
+                               },
+                               "strip-ansi": {
+                                       "version": "6.0.0",
+                                       "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                                       "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "ansi-regex": "^5.0.0"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               }
+                       }
+               },
+               "@jest/environment": {
+                       "version": "25.5.0",
+                       "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz",
+                       "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/fake-timers": "^25.5.0",
+                               "@jest/types": "^25.5.0",
+                               "jest-mock": "^25.5.0"
+                       }
+               },
+               "@jest/fake-timers": {
+                       "version": "25.5.0",
+                       "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+                       "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/types": "^25.5.0",
+                               "jest-message-util": "^25.5.0",
+                               "jest-mock": "^25.5.0",
+                               "jest-util": "^25.5.0",
+                               "lolex": "^5.0.0"
+                       }
+               },
+               "@jest/globals": {
+                       "version": "25.5.2",
+                       "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz",
+                       "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/environment": "^25.5.0",
+                               "@jest/types": "^25.5.0",
+                               "expect": "^25.5.0"
+                       }
+               },
+               "@jest/reporters": {
+                       "version": "25.5.1",
+                       "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz",
+                       "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==",
+                       "dev": true,
+                       "requires": {
+                               "@bcoe/v8-coverage": "^0.2.3",
+                               "@jest/console": "^25.5.0",
+                               "@jest/test-result": "^25.5.0",
+                               "@jest/transform": "^25.5.1",
+                               "@jest/types": "^25.5.0",
+                               "chalk": "^3.0.0",
+                               "collect-v8-coverage": "^1.0.0",
+                               "exit": "^0.1.2",
+                               "glob": "^7.1.2",
+                               "graceful-fs": "^4.2.4",
+                               "istanbul-lib-coverage": "^3.0.0",
+                               "istanbul-lib-instrument": "^4.0.0",
+                               "istanbul-lib-report": "^3.0.0",
+                               "istanbul-lib-source-maps": "^4.0.0",
+                               "istanbul-reports": "^3.0.2",
+                               "jest-haste-map": "^25.5.1",
+                               "jest-resolve": "^25.5.1",
+                               "jest-util": "^25.5.0",
+                               "jest-worker": "^25.5.0",
+                               "node-notifier": "^6.0.0",
+                               "slash": "^3.0.0",
+                               "source-map": "^0.6.0",
+                               "string-length": "^3.1.0",
+                               "terminal-link": "^2.0.0",
+                               "v8-to-istanbul": "^4.1.3"
+                       },
+                       "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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               }
+                       }
+               },
+               "@jest/source-map": {
+                       "version": "25.5.0",
+                       "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz",
+                       "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==",
+                       "dev": true,
+                       "requires": {
+                               "callsites": "^3.0.0",
+                               "graceful-fs": "^4.2.4",
+                               "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
+                               }
+                       }
+               },
+               "@jest/test-result": {
+                       "version": "25.5.0",
+                       "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+                       "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/console": "^25.5.0",
+                               "@jest/types": "^25.5.0",
+                               "@types/istanbul-lib-coverage": "^2.0.0",
+                               "collect-v8-coverage": "^1.0.0"
+                       }
+               },
+               "@jest/test-sequencer": {
+                       "version": "25.5.4",
+                       "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz",
+                       "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/test-result": "^25.5.0",
+                               "graceful-fs": "^4.2.4",
+                               "jest-haste-map": "^25.5.1",
+                               "jest-runner": "^25.5.4",
+                               "jest-runtime": "^25.5.4"
+                       }
+               },
+               "@jest/transform": {
+                       "version": "25.5.1",
+                       "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+                       "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/core": "^7.1.0",
+                               "@jest/types": "^25.5.0",
+                               "babel-plugin-istanbul": "^6.0.0",
+                               "chalk": "^3.0.0",
+                               "convert-source-map": "^1.4.0",
+                               "fast-json-stable-stringify": "^2.0.0",
+                               "graceful-fs": "^4.2.4",
+                               "jest-haste-map": "^25.5.1",
+                               "jest-regex-util": "^25.2.6",
+                               "jest-util": "^25.5.0",
+                               "micromatch": "^4.0.2",
+                               "pirates": "^4.0.1",
+                               "realpath-native": "^2.0.0",
+                               "slash": "^3.0.0",
+                               "source-map": "^0.6.1",
+                               "write-file-atomic": "^3.0.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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               }
+                       }
+               },
+               "@jest/types": {
+                       "version": "25.5.0",
+                       "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+                       "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
+                       "dev": true,
+                       "requires": {
+                               "@types/istanbul-lib-coverage": "^2.0.0",
+                               "@types/istanbul-reports": "^1.1.1",
+                               "@types/yargs": "^15.0.0",
+                               "chalk": "^3.0.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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               }
+                       }
+               },
+               "@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"
+                       }
+               },
+               "@npmcli/move-file": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz",
+                       "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==",
+                       "dev": true,
+                       "requires": {
+                               "mkdirp": "^1.0.4"
+                       },
+                       "dependencies": {
+                               "mkdirp": {
+                                       "version": "1.0.4",
+                                       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+                                       "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "@sinonjs/commons": {
+                       "version": "1.8.1",
+                       "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz",
+                       "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==",
+                       "dev": true,
+                       "requires": {
+                               "type-detect": "4.0.8"
+                       }
+               },
+               "@stylelint/postcss-css-in-js": {
+                       "version": "0.37.2",
+                       "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz",
+                       "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/core": ">=7.9.0"
+                       }
+               },
+               "@stylelint/postcss-markdown": {
+                       "version": "0.36.1",
+                       "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.1.tgz",
+                       "integrity": "sha512-iDxMBWk9nB2BPi1VFQ+Dc5+XpvODBHw2n3tYpaBZuEAFQlbtF9If0Qh5LTTwSi/XwdbJ2jt+0dis3i8omyggpw==",
+                       "dev": true,
+                       "requires": {
+                               "remark": "^12.0.0",
+                               "unist-util-find-all-after": "^3.0.1"
+                       }
+               },
+               "@svgr/babel-plugin-add-jsx-attribute": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
+                       "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==",
+                       "dev": true
+               },
+               "@svgr/babel-plugin-remove-jsx-attribute": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
+                       "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==",
+                       "dev": true
+               },
+               "@svgr/babel-plugin-remove-jsx-empty-expression": {
+                       "version": "5.0.1",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
+                       "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==",
+                       "dev": true
+               },
+               "@svgr/babel-plugin-replace-jsx-attribute-value": {
+                       "version": "5.0.1",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
+                       "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==",
+                       "dev": true
+               },
+               "@svgr/babel-plugin-svg-dynamic-title": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
+                       "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==",
+                       "dev": true
+               },
+               "@svgr/babel-plugin-svg-em-dimensions": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
+                       "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==",
+                       "dev": true
+               },
+               "@svgr/babel-plugin-transform-react-native-svg": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
+                       "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==",
+                       "dev": true
+               },
+               "@svgr/babel-plugin-transform-svg-component": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz",
+                       "integrity": "sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A==",
+                       "dev": true
+               },
+               "@svgr/babel-preset": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.4.0.tgz",
+                       "integrity": "sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A==",
+                       "dev": true,
+                       "requires": {
+                               "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
+                               "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
+                               "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
+                               "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
+                               "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
+                               "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
+                               "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
+                               "@svgr/babel-plugin-transform-svg-component": "^5.4.0"
+                       }
+               },
+               "@svgr/core": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.4.0.tgz",
+                       "integrity": "sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ==",
+                       "dev": true,
+                       "requires": {
+                               "@svgr/plugin-jsx": "^5.4.0",
+                               "camelcase": "^6.0.0",
+                               "cosmiconfig": "^6.0.0"
+                       }
+               },
+               "@svgr/hast-util-to-babel-ast": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz",
+                       "integrity": "sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.9.5"
+                       }
+               },
+               "@svgr/plugin-jsx": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz",
+                       "integrity": "sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/core": "^7.7.5",
+                               "@svgr/babel-preset": "^5.4.0",
+                               "@svgr/hast-util-to-babel-ast": "^5.4.0",
+                               "svg-parser": "^2.0.2"
+                       }
+               },
+               "@svgr/plugin-svgo": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz",
+                       "integrity": "sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA==",
+                       "dev": true,
+                       "requires": {
+                               "cosmiconfig": "^6.0.0",
+                               "merge-deep": "^3.0.2",
+                               "svgo": "^1.2.2"
+                       }
+               },
+               "@svgr/webpack": {
+                       "version": "5.4.0",
+                       "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz",
+                       "integrity": "sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/core": "^7.9.0",
+                               "@babel/plugin-transform-react-constant-elements": "^7.9.0",
+                               "@babel/preset-env": "^7.9.5",
+                               "@babel/preset-react": "^7.9.4",
+                               "@svgr/core": "^5.4.0",
+                               "@svgr/plugin-jsx": "^5.4.0",
+                               "@svgr/plugin-svgo": "^5.4.0",
+                               "loader-utils": "^2.0.0"
+                       }
+               },
+               "@types/anymatch": {
+                       "version": "1.3.1",
+                       "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
+                       "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==",
+                       "dev": true
+               },
+               "@types/babel__core": {
+                       "version": "7.1.9",
+                       "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
+                       "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/parser": "^7.1.0",
+                               "@babel/types": "^7.0.0",
+                               "@types/babel__generator": "*",
+                               "@types/babel__template": "*",
+                               "@types/babel__traverse": "*"
+                       }
+               },
+               "@types/babel__generator": {
+                       "version": "7.6.1",
+                       "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz",
+                       "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.0.0"
+                       }
+               },
+               "@types/babel__template": {
+                       "version": "7.0.2",
+                       "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz",
+                       "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/parser": "^7.1.0",
+                               "@babel/types": "^7.0.0"
+                       }
+               },
+               "@types/babel__traverse": {
+                       "version": "7.0.13",
+                       "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz",
+                       "integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/types": "^7.3.0"
+                       }
+               },
+               "@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/glob": {
+                       "version": "7.1.3",
+                       "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
+                       "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
+                       "dev": true,
+                       "requires": {
+                               "@types/minimatch": "*",
+                               "@types/node": "*"
+                       }
+               },
+               "@types/graceful-fs": {
+                       "version": "4.1.3",
+                       "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz",
+                       "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==",
+                       "dev": true,
+                       "requires": {
+                               "@types/node": "*"
+                       }
+               },
+               "@types/istanbul-lib-coverage": {
+                       "version": "2.0.3",
+                       "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+                       "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==",
+                       "dev": true
+               },
+               "@types/istanbul-lib-report": {
+                       "version": "3.0.0",
+                       "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+                       "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
+                       "dev": true,
+                       "requires": {
+                               "@types/istanbul-lib-coverage": "*"
+                       }
+               },
+               "@types/istanbul-reports": {
+                       "version": "1.1.2",
+                       "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+                       "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
+                       "dev": true,
+                       "requires": {
+                               "@types/istanbul-lib-coverage": "*",
+                               "@types/istanbul-lib-report": "*"
+                       }
+               },
+               "@types/json-schema": {
+                       "version": "7.0.5",
+                       "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
+                       "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
+                       "dev": true
+               },
+               "@types/mime-types": {
+                       "version": "2.1.0",
+                       "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.0.tgz",
+                       "integrity": "sha1-nKUs2jY/aZxpRmwqbM2q2RPqenM=",
+                       "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
+               },
+               "@types/minimist": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz",
+                       "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=",
+                       "dev": true
+               },
+               "@types/node": {
+                       "version": "14.0.27",
+                       "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz",
+                       "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==",
+                       "dev": true
+               },
+               "@types/normalize-package-data": {
+                       "version": "2.4.0",
+                       "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+                       "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
+                       "dev": true
+               },
+               "@types/parse-json": {
+                       "version": "4.0.0",
+                       "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+                       "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+                       "dev": true
+               },
+               "@types/prettier": {
+                       "version": "1.19.1",
+                       "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz",
+                       "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==",
+                       "dev": true
+               },
+               "@types/q": {
+                       "version": "1.5.4",
+                       "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
+                       "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
+                       "dev": true
+               },
+               "@types/source-list-map": {
+                       "version": "0.1.2",
+                       "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
+                       "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
+                       "dev": true
+               },
+               "@types/stack-utils": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
+                       "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==",
+                       "dev": true
+               },
+               "@types/tapable": {
+                       "version": "1.0.6",
+                       "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz",
+                       "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==",
+                       "dev": true
+               },
+               "@types/uglify-js": {
+                       "version": "3.9.3",
+                       "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz",
+                       "integrity": "sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==",
+                       "dev": true,
+                       "requires": {
+                               "source-map": "^0.6.1"
+                       },
+                       "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
+                               }
+                       }
+               },
+               "@types/unist": {
+                       "version": "2.0.3",
+                       "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz",
+                       "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==",
+                       "dev": true
+               },
+               "@types/webpack": {
+                       "version": "4.41.21",
+                       "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz",
+                       "integrity": "sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==",
+                       "dev": true,
+                       "requires": {
+                               "@types/anymatch": "*",
+                               "@types/node": "*",
+                               "@types/tapable": "*",
+                               "@types/uglify-js": "*",
+                               "@types/webpack-sources": "*",
+                               "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
+                               }
+                       }
+               },
+               "@types/webpack-sources": {
+                       "version": "1.4.2",
+                       "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz",
+                       "integrity": "sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==",
+                       "dev": true,
+                       "requires": {
+                               "@types/node": "*",
+                               "@types/source-list-map": "*",
+                               "source-map": "^0.7.3"
+                       },
+                       "dependencies": {
+                               "source-map": {
+                                       "version": "0.7.3",
+                                       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+                                       "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "@types/yargs": {
+                       "version": "15.0.5",
+                       "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
+                       "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==",
+                       "dev": true,
+                       "requires": {
+                               "@types/yargs-parser": "*"
+                       }
+               },
+               "@types/yargs-parser": {
+                       "version": "15.0.0",
+                       "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
+                       "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
+                       "dev": true
+               },
+               "@types/yauzl": {
+                       "version": "2.9.1",
+                       "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz",
+                       "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==",
+                       "dev": true,
+                       "optional": true,
+                       "requires": {
+                               "@types/node": "*"
+                       }
+               },
+               "@typescript-eslint/experimental-utils": {
+                       "version": "2.34.0",
+                       "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz",
+                       "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==",
+                       "dev": true,
+                       "requires": {
+                               "@types/json-schema": "^7.0.3",
+                               "@typescript-eslint/typescript-estree": "2.34.0",
+                               "eslint-scope": "^5.0.0",
+                               "eslint-utils": "^2.0.0"
+                       },
+                       "dependencies": {
+                               "eslint-scope": {
+                                       "version": "5.1.0",
+                                       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
+                                       "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
+                                       "dev": true,
+                                       "requires": {
+                                               "esrecurse": "^4.1.0",
+                                               "estraverse": "^4.1.1"
+                                       }
+                               }
+                       }
+               },
+               "@typescript-eslint/typescript-estree": {
+                       "version": "2.34.0",
+                       "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz",
+                       "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==",
+                       "dev": true,
+                       "requires": {
+                               "debug": "^4.1.1",
+                               "eslint-visitor-keys": "^1.1.0",
+                               "glob": "^7.1.6",
+                               "is-glob": "^4.0.1",
+                               "lodash": "^4.17.15",
+                               "semver": "^7.3.2",
+                               "tsutils": "^3.17.1"
+                       },
+                       "dependencies": {
+                               "semver": {
+                                       "version": "7.3.2",
+                                       "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+                                       "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "@webassemblyjs/ast": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+                       "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/helper-module-context": "1.9.0",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                               "@webassemblyjs/wast-parser": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/floating-point-hex-parser": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+                       "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-api-error": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+                       "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-buffer": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+                       "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-code-frame": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+                       "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/wast-printer": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/helper-fsm": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+                       "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-module-context": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+                       "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/helper-wasm-bytecode": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+                       "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
+                       "dev": true
+               },
+               "@webassemblyjs/helper-wasm-section": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+                       "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0",
+                               "@webassemblyjs/helper-buffer": "1.9.0",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                               "@webassemblyjs/wasm-gen": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/ieee754": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+                       "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+                       "dev": true,
+                       "requires": {
+                               "@xtuc/ieee754": "^1.2.0"
+                       }
+               },
+               "@webassemblyjs/leb128": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+                       "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+                       "dev": true,
+                       "requires": {
+                               "@xtuc/long": "4.2.2"
+                       }
+               },
+               "@webassemblyjs/utf8": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+                       "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
+                       "dev": true
+               },
+               "@webassemblyjs/wasm-edit": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+                       "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0",
+                               "@webassemblyjs/helper-buffer": "1.9.0",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                               "@webassemblyjs/helper-wasm-section": "1.9.0",
+                               "@webassemblyjs/wasm-gen": "1.9.0",
+                               "@webassemblyjs/wasm-opt": "1.9.0",
+                               "@webassemblyjs/wasm-parser": "1.9.0",
+                               "@webassemblyjs/wast-printer": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/wasm-gen": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+                       "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                               "@webassemblyjs/ieee754": "1.9.0",
+                               "@webassemblyjs/leb128": "1.9.0",
+                               "@webassemblyjs/utf8": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/wasm-opt": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+                       "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0",
+                               "@webassemblyjs/helper-buffer": "1.9.0",
+                               "@webassemblyjs/wasm-gen": "1.9.0",
+                               "@webassemblyjs/wasm-parser": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/wasm-parser": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+                       "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0",
+                               "@webassemblyjs/helper-api-error": "1.9.0",
+                               "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+                               "@webassemblyjs/ieee754": "1.9.0",
+                               "@webassemblyjs/leb128": "1.9.0",
+                               "@webassemblyjs/utf8": "1.9.0"
+                       }
+               },
+               "@webassemblyjs/wast-parser": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+                       "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0",
+                               "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+                               "@webassemblyjs/helper-api-error": "1.9.0",
+                               "@webassemblyjs/helper-code-frame": "1.9.0",
+                               "@webassemblyjs/helper-fsm": "1.9.0",
+                               "@xtuc/long": "4.2.2"
+                       }
+               },
+               "@webassemblyjs/wast-printer": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+                       "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+                       "dev": true,
+                       "requires": {
+                               "@webassemblyjs/ast": "1.9.0",
+                               "@webassemblyjs/wast-parser": "1.9.0",
+                               "@xtuc/long": "4.2.2"
+                       }
+               },
+               "@wordpress/babel-plugin-import-jsx-pragma": {
+                       "version": "2.7.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-2.7.0.tgz",
+                       "integrity": "sha512-yR+rSyfHKfevW84vKBOERpjEslD/o00CaYMftywVYOjsOQ8GLS6xv/VgDcpQ8JomJ9eRRInLRpeGKTM3lOa4xQ==",
+                       "dev": true
+               },
+               "@wordpress/babel-preset-default": {
+                       "version": "4.17.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-4.17.0.tgz",
+                       "integrity": "sha512-9SvyQIC2oYerc+zsZJtQH/P8KqKOJJJH+QrmCIrD2PQ1cw9QrF456sV/xHuNfaAoV3QGFLxP+0wVFOLKdU22DQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/core": "^7.9.0",
+                               "@babel/plugin-transform-react-jsx": "^7.9.4",
+                               "@babel/plugin-transform-runtime": "^7.9.0",
+                               "@babel/preset-env": "^7.9.0",
+                               "@babel/runtime": "^7.9.2",
+                               "@wordpress/babel-plugin-import-jsx-pragma": "^2.7.0",
+                               "@wordpress/browserslist-config": "^2.7.0",
+                               "@wordpress/element": "^2.16.0",
+                               "@wordpress/warning": "^1.2.0",
+                               "core-js": "^3.6.4"
+                       }
+               },
+               "@wordpress/base-styles": {
+                       "version": "2.0.1",
+                       "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-2.0.1.tgz",
+                       "integrity": "sha512-nwm0OK/AkxkTkdvZTMeBxkO01RXFYP8TXdqAsx6Fn022o7YV40V89yLr7zTRoQ8MSNy6c/WmRxnLKapLdUCDUg==",
+                       "dev": true
+               },
+               "@wordpress/browserslist-config": {
+                       "version": "2.7.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-2.7.0.tgz",
+                       "integrity": "sha512-pB45JlfmHuEigNFZ1X+CTgIsOT3/TTb9iZxw1DHXge/7ytY8FNhtcNwTfF9IgnS6/xaFRZBqzw4DyH4sP1Lyxg==",
+                       "dev": true
+               },
+               "@wordpress/dependency-extraction-webpack-plugin": {
+                       "version": "2.8.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-2.8.0.tgz",
+                       "integrity": "sha512-fEOsSl1kYY8gkiAe7OM9IopmSOtaAug37OQwKVeda5fK6xLsnpqprP5iwHHOApNWMEzgmVGS6/iW5IZoi7qv/A==",
+                       "dev": true,
+                       "requires": {
+                               "json2php": "^0.0.4",
+                               "webpack": "^4.8.3",
+                               "webpack-sources": "^1.3.0"
+                       }
+               },
+               "@wordpress/element": {
+                       "version": "2.16.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-2.16.0.tgz",
+                       "integrity": "sha512-1ijo/GR/uBfL4teCQ3oFdUTqkeV2EZ32SCvXl30iPbqYmaNSzT1ZI1dlW8GO5o5UBja9BG11hnaOwm93pE2y2A==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/runtime": "^7.9.2",
+                               "@wordpress/escape-html": "^1.9.0",
+                               "lodash": "^4.17.15",
+                               "react": "^16.9.0",
+                               "react-dom": "^16.9.0"
+                       }
+               },
+               "@wordpress/escape-html": {
+                       "version": "1.9.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-1.9.0.tgz",
+                       "integrity": "sha512-XW0GGqxpFauOgTjfQ9603hCDnUE+HhD0HVFMIEphIrTpTreLW3lJbfTibPTn0dWWPATqanH2TlPurOagUubh4g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/runtime": "^7.9.2"
+                       }
+               },
+               "@wordpress/eslint-plugin": {
+                       "version": "7.1.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-7.1.0.tgz",
+                       "integrity": "sha512-FTrKkpEa8vZg7/7M6GBhd1YW24hnh5rFGzKgKX4MGyB0Jw8GGSwld9J23eRbQ5JQWGFP/tmOMeiu6W1/arxy7Q==",
+                       "dev": true,
+                       "requires": {
+                               "@wordpress/prettier-config": "^0.3.0",
+                               "babel-eslint": "^10.1.0",
+                               "eslint-config-prettier": "^6.10.1",
+                               "eslint-plugin-jest": "^23.8.2",
+                               "eslint-plugin-jsdoc": "^26.0.0",
+                               "eslint-plugin-jsx-a11y": "^6.2.3",
+                               "eslint-plugin-prettier": "^3.1.2",
+                               "eslint-plugin-react": "^7.20.0",
+                               "eslint-plugin-react-hooks": "^4.0.4",
+                               "globals": "^12.0.0",
+                               "prettier": "npm:wp-prettier@2.0.5",
+                               "requireindex": "^1.2.0"
+                       },
+                       "dependencies": {
+                               "globals": {
+                                       "version": "12.4.0",
+                                       "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+                                       "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+                                       "dev": true,
+                                       "requires": {
+                                               "type-fest": "^0.8.1"
+                                       }
+                               }
+                       }
+               },
+               "@wordpress/jest-console": {
+                       "version": "3.7.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-3.7.0.tgz",
+                       "integrity": "sha512-+PLH0jbY7xuKJckrkbtRk7zfyg4YDHFVulqydEBzSiU+LsZ2f/9hdRbb4/JDUneG7NpROO2smqxmaACxu5o9gw==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/runtime": "^7.9.2",
+                               "jest-matcher-utils": "^25.3.0",
+                               "lodash": "^4.17.15"
+                       }
+               },
+               "@wordpress/jest-preset-default": {
+                       "version": "6.2.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-6.2.0.tgz",
+                       "integrity": "sha512-o8Yu+DnBWVXTLrbKYwWMRuF56quMiEK7+A9LSBQNrQ8PejTomhTF7lw8aGsUb7KdPgjbL941tbxVNJ/mKcbaJw==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/reporters": "^25.3.0",
+                               "@wordpress/jest-console": "^3.7.0",
+                               "babel-jest": "^25.3.0",
+                               "enzyme": "^3.11.0",
+                               "enzyme-adapter-react-16": "^1.15.2",
+                               "enzyme-to-json": "^3.4.4"
+                       }
+               },
+               "@wordpress/npm-package-json-lint-config": {
+                       "version": "3.1.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-3.1.0.tgz",
+                       "integrity": "sha512-SYRWpzpQaSsBUiRO+ssqg6AHjgCF4j2npstGTGaKdVs/B720fLFzeyONuMmo1ZtMb9v6MyEWxVz5ON6dDgmVYg==",
+                       "dev": true
+               },
+               "@wordpress/postcss-plugins-preset": {
+                       "version": "1.3.1",
+                       "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-1.3.1.tgz",
+                       "integrity": "sha512-BNZhZwUB0r1OQ+5J89foptarBRnjY+a8F4LtoeY2iMUbAYvT+Y6lkIyJOp5NR6oyeiV9IT1Tcih9ViqZlR+c+w==",
+                       "dev": true,
+                       "requires": {
+                               "@wordpress/base-styles": "^2.0.1",
+                               "@wordpress/postcss-themes": "^2.6.0",
+                               "autoprefixer": "^9.4.5",
+                               "postcss-custom-properties": "^9.1.1"
+                       }
+               },
+               "@wordpress/postcss-themes": {
+                       "version": "2.6.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/postcss-themes/-/postcss-themes-2.6.0.tgz",
+                       "integrity": "sha512-Q22s1KSVdtoK0Z0ND06V2QwTx/U4KvJhWFmoI8IzYW/LGlk8BkQJhHH157Y9vFliwpMlQpqfXW6/zOg2XtvHzQ==",
+                       "dev": true,
+                       "requires": {
+                               "postcss": "^7.0.32"
+                       }
+               },
+               "@wordpress/prettier-config": {
+                       "version": "0.3.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-0.3.0.tgz",
+                       "integrity": "sha512-wL1ztV+so5Ttwz23lDmb8ZmREmND96sf+Dh/kbP2nyAw/DWt3K8uj31qbczVmjwfoetTiRoH9Z1CasgPs4bccg==",
+                       "dev": true
+               },
+               "@wordpress/scripts": {
+                       "version": "12.1.1",
+                       "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-12.1.1.tgz",
+                       "integrity": "sha512-PC8M9h6LkNJgzbRIVBuZrAchVNaEaWPSF47yljKRrg01xWlPtWRQwWWoYvleHuBrLozSElJYrA73W8d/vPPrtg==",
+                       "dev": true,
+                       "requires": {
+                               "@svgr/webpack": "^5.2.0",
+                               "@wordpress/babel-preset-default": "^4.17.0",
+                               "@wordpress/dependency-extraction-webpack-plugin": "^2.8.0",
+                               "@wordpress/eslint-plugin": "^7.1.0",
+                               "@wordpress/jest-preset-default": "^6.2.0",
+                               "@wordpress/npm-package-json-lint-config": "^3.1.0",
+                               "@wordpress/postcss-plugins-preset": "^1.3.1",
+                               "@wordpress/prettier-config": "^0.3.0",
+                               "babel-jest": "^25.3.0",
+                               "babel-loader": "^8.1.0",
+                               "chalk": "^4.0.0",
+                               "check-node-version": "^3.1.1",
+                               "clean-webpack-plugin": "^3.0.0",
+                               "cross-spawn": "^5.1.0",
+                               "css-loader": "^3.5.2",
+                               "dir-glob": "^3.0.1",
+                               "eslint": "^7.1.0",
+                               "eslint-plugin-markdown": "^1.0.2",
+                               "ignore-emit-webpack-plugin": "^2.0.2",
+                               "jest": "^25.3.0",
+                               "jest-puppeteer": "^4.4.0",
+                               "markdownlint": "^0.18.0",
+                               "markdownlint-cli": "^0.21.0",
+                               "mini-css-extract-plugin": "^0.9.0",
+                               "minimist": "^1.2.0",
+                               "node-sass": "^4.13.1",
+                               "npm-package-json-lint": "^5.0.0",
+                               "postcss-loader": "^3.0.0",
+                               "prettier": "npm:wp-prettier@2.0.5",
+                               "puppeteer": "npm:puppeteer-core@3.0.0",
+                               "read-pkg-up": "^1.0.1",
+                               "resolve-bin": "^0.4.0",
+                               "sass-loader": "^8.0.2",
+                               "source-map-loader": "^0.2.4",
+                               "stylelint": "^13.6.0",
+                               "stylelint-config-wordpress": "^17.0.0",
+                               "terser-webpack-plugin": "^3.0.3",
+                               "thread-loader": "^2.1.3",
+                               "url-loader": "^3.0.0",
+                               "webpack": "^4.42.0",
+                               "webpack-bundle-analyzer": "^3.6.1",
+                               "webpack-cli": "^3.3.11",
+                               "webpack-livereload-plugin": "^2.3.0"
+                       }
+               },
+               "@wordpress/warning": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-1.2.0.tgz",
+                       "integrity": "sha512-Q3WqbXHaoEuGddpFvVEmG9Xwpr5QMhi/NT+Q1td6J414fyNhafkmwGVd3roJB7/2y+ek2UDDegc32B8lkyW19A==",
+                       "dev": true
+               },
+               "@xtuc/ieee754": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+                       "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+                       "dev": true
+               },
+               "@xtuc/long": {
+                       "version": "4.2.2",
+                       "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+                       "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+                       "dev": true
+               },
+               "abab": {
+                       "version": "2.0.4",
+                       "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
+                       "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==",
+                       "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": "6.4.1",
+                       "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+                       "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
+                       "dev": true
+               },
+               "acorn-globals": {
+                       "version": "4.3.4",
+                       "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
+                       "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
+                       "dev": true,
+                       "requires": {
+                               "acorn": "^6.0.1",
+                               "acorn-walk": "^6.0.1"
+                       }
+               },
+               "acorn-jsx": {
+                       "version": "5.2.0",
+                       "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
+                       "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+                       "dev": true
+               },
+               "acorn-walk": {
+                       "version": "6.2.0",
+                       "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
+                       "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
+                       "dev": true
+               },
+               "agent-base": {
+                       "version": "5.1.1",
+                       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
+                       "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
+                       "dev": true
+               },
+               "aggregate-error": {
+                       "version": "3.0.1",
+                       "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
+                       "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==",
+                       "dev": true,
+                       "requires": {
+                               "clean-stack": "^2.0.0",
+                               "indent-string": "^4.0.0"
+                       },
+                       "dependencies": {
+                               "indent-string": {
+                                       "version": "4.0.0",
+                                       "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+                                       "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "airbnb-prop-types": {
+                       "version": "2.16.0",
+                       "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz",
+                       "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==",
+                       "dev": true,
+                       "requires": {
+                               "array.prototype.find": "^2.1.1",
+                               "function.prototype.name": "^1.1.2",
+                               "is-regex": "^1.1.0",
+                               "object-is": "^1.1.2",
+                               "object.assign": "^4.1.0",
+                               "object.entries": "^1.1.2",
+                               "prop-types": "^15.7.2",
+                               "prop-types-exact": "^1.2.0",
+                               "react-is": "^16.13.1"
+                       }
+               },
+               "ajv": {
+                       "version": "6.12.3",
+                       "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+                       "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+                       "dev": true,
+                       "requires": {
+                               "fast-deep-equal": "^3.1.1",
+                               "fast-json-stable-stringify": "^2.0.0",
+                               "json-schema-traverse": "^0.4.1",
+                               "uri-js": "^4.2.2"
+                       }
+               },
+               "ajv-errors": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+                       "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+                       "dev": true
+               },
+               "ajv-keywords": {
+                       "version": "3.5.2",
+                       "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+                       "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+                       "dev": true
+               },
+               "amdefine": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+                       "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
+                       "dev": true
+               },
+               "ansi-colors": {
+                       "version": "4.1.1",
+                       "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+                       "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+                       "dev": true
+               },
+               "ansi-escapes": {
+                       "version": "4.3.1",
+                       "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+                       "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+                       "dev": true,
+                       "requires": {
+                               "type-fest": "^0.11.0"
+                       },
+                       "dependencies": {
+                               "type-fest": {
+                                       "version": "0.11.0",
+                                       "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+                                       "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "ansi-regex": {
+                       "version": "4.1.0",
+                       "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+                       "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+                       "dev": true
+               },
+               "ansi-styles": {
+                       "version": "3.2.1",
+                       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+                       "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+                       "dev": true,
+                       "requires": {
+                               "color-convert": "^1.9.0"
+                       }
+               },
+               "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"
+                       }
+               },
+               "aproba": {
+                       "version": "1.2.0",
+                       "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+                       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+                       "dev": true
+               },
+               "are-we-there-yet": {
+                       "version": "1.1.5",
+                       "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+                       "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+                       "dev": true,
+                       "requires": {
+                               "delegates": "^1.0.0",
+                               "readable-stream": "^2.0.6"
+                       }
+               },
+               "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"
+                       }
+               },
+               "aria-query": {
+                       "version": "4.2.2",
+                       "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+                       "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/runtime": "^7.10.2",
+                               "@babel/runtime-corejs3": "^7.10.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-equal": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+                       "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
+                       "dev": true
+               },
+               "array-filter": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
+                       "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",
+                       "dev": true
+               },
+               "array-find-index": {
+                       "version": "1.0.2",
+                       "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+                       "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+                       "dev": true
+               },
+               "array-flatten": {
+                       "version": "1.1.1",
+                       "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+                       "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+                       "dev": true
+               },
+               "array-includes": {
+                       "version": "3.1.1",
+                       "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz",
+                       "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==",
+                       "dev": true,
+                       "requires": {
+                               "define-properties": "^1.1.3",
+                               "es-abstract": "^1.17.0",
+                               "is-string": "^1.0.5"
+                       }
+               },
+               "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"
+                       }
+               },
+               "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
+               },
+               "array.prototype.find": {
+                       "version": "2.1.1",
+                       "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.1.tgz",
+                       "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==",
+                       "dev": true,
+                       "requires": {
+                               "define-properties": "^1.1.3",
+                               "es-abstract": "^1.17.4"
+                       }
+               },
+               "array.prototype.flat": {
+                       "version": "1.2.3",
+                       "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
+                       "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
+                       "dev": true,
+                       "requires": {
+                               "define-properties": "^1.1.3",
+                               "es-abstract": "^1.17.0-next.1"
+                       }
+               },
+               "array.prototype.flatmap": {
+                       "version": "1.2.3",
+                       "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
+                       "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
+                       "dev": true,
+                       "requires": {
+                               "define-properties": "^1.1.3",
+                               "es-abstract": "^1.17.0-next.1",
+                               "function-bind": "^1.1.1"
+                       }
+               },
+               "arrify": {
+                       "version": "1.0.1",
+                       "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+                       "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+                       "dev": true
+               },
+               "asn1": {
+                       "version": "0.2.4",
+                       "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+                       "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+                       "dev": true,
+                       "requires": {
+                               "safer-buffer": "~2.1.0"
+                       }
+               },
+               "asn1.js": {
+                       "version": "4.10.1",
+                       "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+                       "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+                       "dev": true,
+                       "requires": {
+                               "bn.js": "^4.0.0",
+                               "inherits": "^2.0.1",
+                               "minimalistic-assert": "^1.0.0"
+                       },
+                       "dependencies": {
+                               "bn.js": {
+                                       "version": "4.11.9",
+                                       "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+                                       "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+                                       "dev": true
+                               }
+                       }
+               },
+               "assert": {
+                       "version": "1.5.0",
+                       "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+                       "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+                       "dev": true,
+                       "requires": {
+                               "object-assign": "^4.1.1",
+                               "util": "0.10.3"
+                       },
+                       "dependencies": {
+                               "inherits": {
+                                       "version": "2.0.1",
+                                       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+                                       "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+                                       "dev": true
+                               },
+                               "util": {
+                                       "version": "0.10.3",
+                                       "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+                                       "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+                                       "dev": true,
+                                       "requires": {
+                                               "inherits": "2.0.1"
+                                       }
+                               }
+                       }
+               },
+               "assert-plus": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+                       "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+                       "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
+               },
+               "ast-types-flow": {
+                       "version": "0.0.7",
+                       "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+                       "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+                       "dev": true
+               },
+               "astral-regex": {
+                       "version": "1.0.0",
+                       "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+                       "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+                       "dev": true
+               },
+               "async": {
+                       "version": "2.6.3",
+                       "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+                       "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+                       "dev": true,
+                       "requires": {
+                               "lodash": "^4.17.14"
+                       }
+               },
+               "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,
+                       "optional": true
+               },
+               "async-foreach": {
+                       "version": "0.1.3",
+                       "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+                       "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+                       "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
+               },
+               "asynckit": {
+                       "version": "0.4.0",
+                       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+                       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+                       "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
+               },
+               "autoprefixer": {
+                       "version": "9.8.6",
+                       "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz",
+                       "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==",
+                       "dev": true,
+                       "requires": {
+                               "browserslist": "^4.12.0",
+                               "caniuse-lite": "^1.0.30001109",
+                               "colorette": "^1.2.1",
+                               "normalize-range": "^0.1.2",
+                               "num2fraction": "^1.2.2",
+                               "postcss": "^7.0.32",
+                               "postcss-value-parser": "^4.1.0"
+                       }
+               },
+               "aws-sign2": {
+                       "version": "0.7.0",
+                       "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+                       "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+                       "dev": true
+               },
+               "aws4": {
+                       "version": "1.10.0",
+                       "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
+                       "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==",
+                       "dev": true
+               },
+               "axe-core": {
+                       "version": "3.5.5",
+                       "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz",
+                       "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==",
+                       "dev": true
+               },
+               "axobject-query": {
+                       "version": "2.2.0",
+                       "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+                       "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+                       "dev": true
+               },
+               "babel-eslint": {
+                       "version": "10.1.0",
+                       "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+                       "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/code-frame": "^7.0.0",
+                               "@babel/parser": "^7.7.0",
+                               "@babel/traverse": "^7.7.0",
+                               "@babel/types": "^7.7.0",
+                               "eslint-visitor-keys": "^1.0.0",
+                               "resolve": "^1.12.0"
+                       }
+               },
+               "babel-jest": {
+                       "version": "25.5.1",
+                       "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
+                       "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
+                       "dev": true,
+                       "requires": {
+                               "@jest/transform": "^25.5.1",
+                               "@jest/types": "^25.5.0",
+                               "@types/babel__core": "^7.1.7",
+                               "babel-plugin-istanbul": "^6.0.0",
+                               "babel-preset-jest": "^25.5.0",
+                               "chalk": "^3.0.0",
+                               "graceful-fs": "^4.2.4",
+                               "slash": "^3.0.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"
+                                       }
+                               },
+                               "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"
+                                       }
+                               },
+                               "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
+                               },
+                               "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
+                               },
+                               "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"
+                                       }
+                               }
+                       }
+               },
+               "babel-loader": {
+                       "version": "8.1.0",
+                       "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
+                       "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
+                       "dev": true,
+                       "requires": {
+                               "find-cache-dir": "^2.1.0",
+                               "loader-utils": "^1.4.0",
+                               "mkdirp": "^0.5.3",
+                               "pify": "^4.0.1",
+                               "schema-utils": "^2.6.5"
+                       },
+                       "dependencies": {
+                               "json5": {
+                                       "version": "1.0.1",
+                                       "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+                                       "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+                                       "dev": true,
+                                       "requires": {
+                                               "minimist": "^1.2.0"
+                                       }
+                               },
+                               "loader-utils": {
+                                       "version": "1.4.0",
+                                       "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+                                       "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+                                       "dev": true,
+                                       "requires": {
+                                               "big.js": "^5.2.2",
+                                               "emojis-list": "^3.0.0",
+                                               "json5": "^1.0.1"
+                                       }
+                               },
+                               "schema-utils": {
+                                       "version": "2.7.0",
+                                       "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
+                                       "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+                                       "dev": true,
+                                       "requires": {
+                                               "@types/json-schema": "^7.0.4",
+                                               "ajv": "^6.12.2",
+                                               "ajv-keywords": "^3.4.1"
+                                       }
+                               }
+                       }
+               },
+               "babel-plugin-dynamic-import-node": {
+                       "version": "2.3.3",
+                       "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+                       "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+                       "dev": true,
+                       "requires": {
+                               "object.assign": "^4.1.0"
+                       }
+               },
+               "babel-plugin-istanbul": {
+                       "version": "6.0.0",
+                       "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz",
+                       "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/helper-plugin-utils": "^7.0.0",
+                               "@istanbuljs/load-nyc-config": "^1.0.0",
+                               "@istanbuljs/schema": "^0.1.2",
+                               "istanbul-lib-instrument": "^4.0.0",
+                               "test-exclude": "^6.0.0"
+                       }
+               },
+               "babel-plugin-jest-hoist": {
+                       "version": "25.5.0",
+                       "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz",
+                       "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/template": "^7.3.3",
+                               "@babel/types": "^7.3.3",
+                               "@types/babel__traverse": "^7.0.6"
+                       }
+               },
+               "babel-preset-current-node-syntax": {
+                       "version": "0.1.3",
+                       "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz",
+                       "integrity": "sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==",
+                       "dev": true,
+                       "requires": {
+                               "@babel/plugin-syntax-async-generators": "^7.8.4",
+                               "@babel/plugin-syntax-bigint": "^7.8.3",
+                               "@babel/plugin-syntax-class-properties": "^7.8.3",
+                               "@babel/plugin-syntax-import-meta": "^7.8.3