express-graphql
Version:
Production ready GraphQL HTTP middleware.
63 lines (62 loc) • 967 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.renderGraphiQL = void 0;
// Ensures string values are safe to be used within a <script> tag.
function safeSerialize(data) {
return data != null
? JSON.stringify(data).replace(/\//g, '\\/')
: 'undefined';
}
/**
* When express-graphql receives a request which does not Accept JSON, but does
* Accept HTML, it may present GraphiQL, the in-browser GraphQL explorer IDE.
*
* When shown, it will be pre-populated with the result of having executed the
* requested query.
*/
function renderGraphiQL(data, options) {
const queryString = data.query;
const variablesString = data.variables != null ? JSON.stringify(data.variables, null, 2) : null;
const resultString = data.result != null ? JSON.stringify(data.result, null, 2) : null;
const operationName = data.operationName;
const defaultQuery = options === null || options === void 0 ? void 0 : options.defaultQuery;
const headerEditorEnabled = options === null || options === void 0 ? void 0 : options.headerEditorEnabled;
return `<!--
The request to this GraphQL server provided the header "Accept: text/html"
and as a result has been presented GraphiQL - an in-browser IDE for
exploring GraphQL.
If you wish to receive JSON, provide the header "Accept: application/json" or
add "&raw" to the end of the URL within a browser.
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>GraphiQL</title>
<meta name="robots" content="noindex" />
<meta name="referrer" content="origin" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
body {
margin: 0;
overflow: hidden;
}
#graphiql {
height: 100vh;
}
</style>
<style>
/* graphiql/graphiql.css */
${".graphiql-container,\n.graphiql-container button,\n.graphiql-container input {\n color: #141823;\n font-family:\n system,\n -apple-system,\n 'San Francisco',\n '.SFNSDisplay-Regular',\n 'Segoe UI',\n Segoe,\n 'Segoe WP',\n 'Helvetica Neue',\n helvetica,\n 'Lucida Grande',\n arial,\n sans-serif;\n font-size: 14px;\n}\n\n.graphiql-container {\n display: flex;\n flex-direction: row;\n height: 100%;\n margin: 0;\n overflow: hidden;\n width: 100%;\n}\n\n.graphiql-container .editorWrap {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow-x: hidden;\n}\n\n.graphiql-container .title {\n font-size: 18px;\n}\n\n.graphiql-container .title em {\n font-family: georgia;\n font-size: 19px;\n}\n\n.graphiql-container .topBarWrap {\n display: flex;\n flex-direction: row;\n}\n\n.graphiql-container .topBar {\n align-items: center;\n background: linear-gradient(#f7f7f7, #e2e2e2);\n border-bottom: 1px solid #d0d0d0;\n cursor: default;\n display: flex;\n flex-direction: row;\n flex: 1;\n height: 34px;\n overflow-y: visible;\n padding: 7px 14px 6px;\n user-select: none;\n}\n\n.graphiql-container .toolbar {\n overflow-x: visible;\n display: flex;\n}\n\n.graphiql-container .docExplorerShow,\n.graphiql-container .historyShow {\n background: linear-gradient(#f7f7f7, #e2e2e2);\n border-radius: 0;\n border-bottom: 1px solid #d0d0d0;\n border-right: none;\n border-top: none;\n color: #3B5998;\n cursor: pointer;\n font-size: 14px;\n margin: 0;\n padding: 2px 20px 0 18px;\n}\n\n.graphiql-container .docExplorerShow {\n border-left: 1px solid rgba(0, 0, 0, 0.2);\n}\n\n.graphiql-container .historyShow {\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n border-left: 0;\n}\n\n.graphiql-container .docExplorerShow:before {\n border-left: 2px solid #3B5998;\n border-top: 2px solid #3B5998;\n content: '';\n display: inline-block;\n height: 9px;\n margin: 0 3px -1px 0;\n position: relative;\n transform: rotate(-45deg);\n width: 9px;\n}\n\n.graphiql-container .editorBar {\n display: flex;\n flex-direction: row;\n flex: 1;\n}\n\n.graphiql-container .queryWrap {\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n.graphiql-container .resultWrap {\n border-left: solid 1px #e0e0e0;\n display: flex;\n flex-direction: column;\n flex: 1;\n flex-basis: 1em;\n position: relative;\n}\n\n.graphiql-container .docExplorerWrap,\n.graphiql-container .historyPaneWrap {\n background: white;\n box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);\n position: relative;\n z-index: 3;\n}\n\n.graphiql-container .historyPaneWrap {\n min-width: 230px;\n z-index: 5;\n}\n\n.graphiql-container .docExplorerResizer {\n cursor: col-resize;\n height: 100%;\n left: -5px;\n position: absolute;\n top: 0;\n width: 10px;\n z-index: 10;\n}\n\n.graphiql-container .docExplorerHide {\n cursor: pointer;\n font-size: 18px;\n margin: -7px -8px -6px 0;\n padding: 18px 16px 15px 12px;\n background: 0;\n border: 0;\n line-height: 14px;\n}\n\n.graphiql-container div .query-editor {\n flex: 1;\n position: relative;\n}\n\n.graphiql-container .secondary-editor {\n display: flex;\n flex-direction: column;\n height: 30px;\n position: relative;\n}\n\n.graphiql-container .secondary-editor-title {\n background: #eeeeee;\n border-bottom: 1px solid #d6d6d6;\n border-top: 1px solid #e0e0e0;\n color: #777;\n font-variant: small-caps;\n font-weight: bold;\n letter-spacing: 1px;\n line-height: 14px;\n padding: 6px 0 8px 43px;\n text-transform: lowercase;\n user-select: none;\n}\n\n.graphiql-container .codemirrorWrap {\n flex: 1;\n height: 100%;\n position: relative;\n}\n\n.graphiql-container .result-window {\n flex: 1;\n height: 100%;\n position: relative;\n}\n\n.graphiql-container .footer {\n background: #f6f7f8;\n border-left: 1px solid #e0e0e0;\n border-top: 1px solid #e0e0e0;\n margin-left: 12px;\n position: relative;\n}\n\n.graphiql-container .footer:before {\n background: #eeeeee;\n bottom: 0;\n content: \" \";\n left: -13px;\n position: absolute;\n top: -1px;\n width: 12px;\n}\n\n/* No `.graphiql-container` here so themes can overwrite */\n\n.result-window .CodeMirror {\n background: #f6f7f8;\n}\n\n.graphiql-container .result-window .CodeMirror-gutters {\n background-color: #eeeeee;\n border-color: #e0e0e0;\n cursor: col-resize;\n}\n\n.graphiql-container .result-window .CodeMirror-foldgutter,\n.graphiql-container .result-window .CodeMirror-foldgutter-open:after,\n.graphiql-container .result-window .CodeMirror-foldgutter-folded:after {\n padding-left: 3px;\n}\n\n.graphiql-container .toolbar-button {\n background: #fdfdfd;\n background: linear-gradient(#f9f9f9, #ececec);\n border: 0;\n border-radius: 3px;\n box-shadow:\n inset 0 0 0 1px rgba(0,0,0,0.20),\n 0 1px 0 rgba(255,255,255, 0.7),\n inset 0 1px #fff;\n color: #555;\n cursor: pointer;\n display: inline-block;\n margin: 0 5px;\n padding: 3px 11px 5px;\n text-decoration: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 150px;\n}\n\n.graphiql-container .toolbar-button:active {\n background: linear-gradient(#ececec, #d5d5d5);\n box-shadow:\n 0 1px 0 rgba(255, 255, 255, 0.7),\n inset 0 0 0 1px rgba(0,0,0,0.10),\n inset 0 1px 1px 1px rgba(0, 0, 0, 0.12),\n inset 0 0 5px rgba(0, 0, 0, 0.1);\n}\n\n.graphiql-container .toolbar-button.error {\n background: linear-gradient(#fdf3f3, #e6d6d7);\n color: #b00;\n}\n\n.graphiql-container .toolbar-button-group {\n margin: 0 5px;\n white-space: nowrap;\n}\n\n.graphiql-container .toolbar-button-group > * {\n margin: 0;\n}\n\n.graphiql-container .toolbar-button-group > *:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.graphiql-container .toolbar-button-group > *:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n margin-left: -1px;\n}\n\n.graphiql-container .execute-button-wrap {\n height: 34px;\n margin: 0 14px 0 28px;\n position: relative;\n}\n\n.graphiql-container .execute-button {\n background: linear-gradient(#fdfdfd, #d2d3d6);\n border-radius: 17px;\n border: 1px solid rgba(0,0,0,0.25);\n box-shadow: 0 1px 0 #fff;\n cursor: pointer;\n fill: #444;\n height: 34px;\n margin: 0;\n padding: 0;\n width: 34px;\n}\n\n.graphiql-container .execute-button svg {\n pointer-events: none;\n}\n\n.graphiql-container .execute-button:active {\n background: linear-gradient(#e6e6e6, #c3c3c3);\n box-shadow:\n 0 1px 0 #fff,\n inset 0 0 2px rgba(0, 0, 0, 0.2),\n inset 0 0 6px rgba(0, 0, 0, 0.1);\n}\n\n.graphiql-container .toolbar-menu,\n.graphiql-container .toolbar-select {\n position: relative;\n}\n\n.graphiql-container .execute-options,\n.graphiql-container .toolbar-menu-items,\n.graphiql-container .toolbar-select-options {\n background: #fff;\n box-shadow:\n 0 0 0 1px rgba(0,0,0,0.1),\n 0 2px 4px rgba(0,0,0,0.25);\n margin: 0;\n padding: 6px 0;\n position: absolute;\n z-index: 100;\n}\n\n.graphiql-container .execute-options {\n min-width: 100px;\n top: 37px;\n left: -1px;\n}\n\n.graphiql-container .toolbar-menu-items {\n left: 1px;\n margin-top: -1px;\n min-width: 110%;\n top: 100%;\n visibility: hidden;\n}\n\n.graphiql-container .toolbar-menu-items.open {\n visibility: visible;\n}\n\n.graphiql-container .toolbar-select-options {\n left: 0;\n min-width: 100%;\n top: -5px;\n visibility: hidden;\n}\n\n.graphiql-container .toolbar-select-options.open {\n visibility: visible;\n}\n\n.graphiql-container .execute-options > li,\n.graphiql-container .toolbar-menu-items > li,\n.graphiql-container .toolbar-select-options > li {\n cursor: pointer;\n display: block;\n margin: none;\n max-width: 300px;\n overflow: hidden;\n padding: 2px 20px 4px 11px;\n white-space: nowrap;\n}\n\n.graphiql-container .execute-options > li.selected,\n.graphiql-container .toolbar-menu-items > li.hover,\n.graphiql-container .toolbar-menu-items > li:active,\n.graphiql-container .toolbar-menu-items > li:hover,\n.graphiql-container .toolbar-select-options > li.hover,\n.graphiql-container .toolbar-select-options > li:active,\n.graphiql-container .toolbar-select-options > li:hover,\n.graphiql-container .history-contents > li:hover,\n.graphiql-container .history-contents > li:active {\n background: #e10098;\n color: #fff;\n}\n\n.graphiql-container .toolbar-select-options > li > svg {\n display: inline;\n fill: #666;\n margin: 0 -6px 0 6px;\n pointer-events: none;\n vertical-align: middle;\n}\n\n.graphiql-container .toolbar-select-options > li.hover > svg,\n.graphiql-container .toolbar-select-options > li:active > svg,\n.graphiql-container .toolbar-select-options > li:hover > svg {\n fill: #fff;\n}\n\n.graphiql-container .CodeMirror-scroll {\n overflow-scrolling: touch;\n}\n\n.graphiql-container .CodeMirror {\n color: #141823;\n font-family:\n 'Consolas',\n 'Inconsolata',\n 'Droid Sans Mono',\n 'Monaco',\n monospace;\n font-size: 13px;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.graphiql-container .CodeMirror-lines {\n padding: 20px 0;\n}\n\n.CodeMirror-hint-information .content {\n box-orient: vertical;\n color: #141823;\n display: flex;\n font-family: system, -apple-system, 'San Francisco', '.SFNSDisplay-Regular', 'Segoe UI', Segoe, 'Segoe WP', 'Helvetica Neue', helvetica, 'Lucida Grande', arial, sans-serif;\n font-size: 13px;\n line-clamp: 3;\n line-height: 16px;\n max-height: 48px;\n overflow: hidden;\n text-overflow: -o-ellipsis-lastline;\n}\n\n.CodeMirror-hint-information .content p:first-child {\n margin-top: 0;\n}\n\n.CodeMirror-hint-information .content p:last-child {\n margin-bottom: 0;\n}\n\n.CodeMirror-hint-information .infoType {\n color: #CA9800;\n cursor: pointer;\n display: inline;\n margin-right: 0.5em;\n}\n\n.autoInsertedLeaf.cm-property {\n animation-duration: 6s;\n animation-name: insertionFade;\n border-bottom: 2px solid rgba(255, 255, 255, 0);\n border-radius: 2px;\n margin: -2px -4px -1px;\n padding: 2px 4px 1px;\n}\n\n@keyframes insertionFade {\n from, to {\n background: rgba(255, 255, 255, 0);\n border-color: rgba(255, 255, 255, 0);\n }\n\n 15%, 85% {\n background: #fbffc9;\n border-color: #f0f3c0;\n }\n}\n\ndiv.CodeMirror-lint-tooltip {\n background-color: white;\n border-radius: 2px;\n border: 0;\n color: #141823;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);\n font-size: 13px;\n line-height: 16px;\n max-width: 430px;\n opacity: 0;\n padding: 8px 10px;\n transition: opacity 0.15s;\n white-space: pre-wrap;\n}\n\ndiv.CodeMirror-lint-tooltip > * {\n padding-left: 23px;\n}\n\ndiv.CodeMirror-lint-tooltip > * + * {\n margin-top: 12px;\n}\n\n/* COLORS */\n\n.graphiql-container .CodeMirror-foldmarker {\n border-radius: 4px;\n background: #08f;\n background: linear-gradient(#43A8FF, #0F83E8);\n box-shadow:\n 0 1px 1px rgba(0, 0, 0, 0.2),\n inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n color: white;\n font-family: arial;\n font-size: 12px;\n line-height: 0;\n margin: 0 3px;\n padding: 0px 4px 1px;\n text-shadow: 0 -1px rgba(0, 0, 0, 0.1);\n}\n\n.graphiql-container div.CodeMirror span.CodeMirror-matchingbracket {\n color: #555;\n text-decoration: underline;\n}\n\n.graphiql-container div.CodeMirror span.CodeMirror-nonmatchingbracket {\n color: #f00;\n}\n\n/* Comment */\n\n.cm-comment {\n color: #999;\n}\n\n/* Punctuation */\n\n.cm-punctuation {\n color: #555;\n}\n\n/* Keyword */\n\n.cm-keyword {\n color: #B11A04;\n}\n\n/* OperationName, FragmentName */\n\n.cm-def {\n color: #D2054E;\n}\n\n/* FieldName */\n\n.cm-property {\n color: #1F61A0;\n}\n\n/* FieldAlias */\n\n.cm-qualifier {\n color: #1C92A9;\n}\n\n/* ArgumentName and ObjectFieldName */\n\n.cm-attribute {\n color: #8B2BB9;\n}\n\n/* Number */\n\n.cm-number {\n color: #2882F9;\n}\n\n/* String */\n\n.cm-string {\n color: #D64292;\n}\n\n/* Boolean */\n\n.cm-builtin {\n color: #D47509;\n}\n\n/* EnumValue */\n\n.cm-string-2 {\n color: #0B7FC7;\n}\n\n/* Variable */\n\n.cm-variable {\n color: #397D13;\n}\n\n/* Directive */\n\n.cm-meta {\n color: #B33086;\n}\n\n/* Type */\n\n.cm-atom {\n color: #CA9800;\n}\n\n/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n color: black;\n font-family: monospace;\n height: 300px;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n padding: 4px 0; /* Vertical padding around content */\n}\n\n.CodeMirror pre {\n padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n}\n\n.CodeMirror-linenumbers {}\n\n.CodeMirror-linenumber {\n color: #999;\n min-width: 20px;\n padding: 0 3px 0 5px;\n text-align: right;\n white-space: nowrap;\n}\n\n.CodeMirror-guttermarker { color: black; }\n\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror .CodeMirror-cursor {\n border-left: 1px solid black;\n}\n\n/* Shown when moving in bi-directional text */\n\n.CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n}\n\n.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {\n background: #7e7;\n border: 0;\n width: auto;\n}\n\n.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1;\n}\n\n.cm-animate-fat-cursor {\n animation: blink 1.06s steps(1) infinite;\n border: 0;\n width: auto;\n}\n\n@keyframes blink {\n 0% { background: #7e7; }\n 50% { background: none; }\n 100% { background: #7e7; }\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\n\ndiv.CodeMirror-overwrite div.CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-ruler {\n border-left: 1px solid #ccc;\n position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-keyword {color: #708;}\n\n.cm-s-default .cm-atom {color: #219;}\n\n.cm-s-default .cm-number {color: #164;}\n\n.cm-s-default .cm-def {color: #00f;}\n\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n\n.cm-s-default .cm-variable-2 {color: #05a;}\n\n.cm-s-default .cm-variable-3 {color: #085;}\n\n.cm-s-default .cm-comment {color: #a50;}\n\n.cm-s-default .cm-string {color: #a11;}\n\n.cm-s-default .cm-string-2 {color: #f50;}\n\n.cm-s-default .cm-meta {color: #555;}\n\n.cm-s-default .cm-qualifier {color: #555;}\n\n.cm-s-default .cm-builtin {color: #30a;}\n\n.cm-s-default .cm-bracket {color: #997;}\n\n.cm-s-default .cm-tag {color: #170;}\n\n.cm-s-default .cm-attribute {color: #00c;}\n\n.cm-s-default .cm-header {color: blue;}\n\n.cm-s-default .cm-quote {color: #090;}\n\n.cm-s-default .cm-hr {color: #999;}\n\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-negative {color: #d44;}\n\n.cm-positive {color: #292;}\n\n.cm-header, .cm-strong {font-weight: bold;}\n\n.cm-em {font-style: italic;}\n\n.cm-link {text-decoration: underline;}\n\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-error {color: #f00;}\n\n.cm-invalidchar {color: #f00;}\n\n.CodeMirror-composing { border-bottom: 2px solid; }\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}\n\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}\n\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n background: white;\n overflow: hidden;\n position: relative;\n}\n\n.CodeMirror-scroll {\n height: 100%;\n /* 30px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -30px; margin-right: -30px;\n outline: none; /* Prevent dragging from highlighting the element */\n overflow: scroll !important; /* Things will break if this is overridden */\n padding-bottom: 30px;\n position: relative;\n}\n\n.CodeMirror-sizer {\n border-right: 30px solid transparent;\n position: relative;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n display: none;\n position: absolute;\n z-index: 6;\n}\n\n.CodeMirror-vscrollbar {\n overflow-x: hidden;\n overflow-y: scroll;\n right: 0; top: 0;\n}\n\n.CodeMirror-hscrollbar {\n bottom: 0; left: 0;\n overflow-x: scroll;\n overflow-y: hidden;\n}\n\n.CodeMirror-scrollbar-filler {\n right: 0; bottom: 0;\n}\n\n.CodeMirror-gutter-filler {\n left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n min-height: 100%;\n position: absolute; left: 0; top: 0;\n z-index: 3;\n}\n\n.CodeMirror-gutter {\n display: inline-block;\n height: 100%;\n margin-bottom: -30px;\n vertical-align: top;\n white-space: normal;\n /* Hack to make IE7 behave */\n *zoom:1;\n *display:inline;\n}\n\n.CodeMirror-gutter-wrapper {\n background: none !important;\n border: none !important;\n position: absolute;\n z-index: 4;\n}\n\n.CodeMirror-gutter-background {\n position: absolute;\n top: 0; bottom: 0;\n z-index: 4;\n}\n\n.CodeMirror-gutter-elt {\n cursor: default;\n position: absolute;\n z-index: 4;\n}\n\n.CodeMirror-gutter-wrapper {\n user-select: none;\n}\n\n.CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n}\n\n.CodeMirror pre {\n -webkit-tap-highlight-color: transparent;\n /* Reset some styles that the rest of the page might have set */\n background: transparent;\n border-radius: 0;\n border-width: 0;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-variant-ligatures: none;\n line-height: inherit;\n margin: 0;\n overflow: visible;\n position: relative;\n white-space: pre;\n word-wrap: normal;\n z-index: 2;\n}\n\n.CodeMirror-wrap pre {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n}\n\n.CodeMirror-linebackground {\n position: absolute;\n left: 0; right: 0; top: 0; bottom: 0;\n z-index: 0;\n}\n\n.CodeMirror-linewidget {\n overflow: auto;\n position: relative;\n z-index: 2;\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-code {\n outline: none;\n}\n\n/* Force content-box sizing for the elements where we expect it */\n\n.CodeMirror-scroll,\n.CodeMirror-sizer,\n.CodeMirror-gutter,\n.CodeMirror-gutters,\n.CodeMirror-linenumber {\n box-sizing: content-box;\n}\n\n.CodeMirror-measure {\n height: 0;\n overflow: hidden;\n position: absolute;\n visibility: hidden;\n width: 100%;\n}\n\n.CodeMirror-cursor { position: absolute; }\n\n.CodeMirror-measure pre { position: static; }\n\ndiv.CodeMirror-cursors {\n position: relative;\n visibility: hidden;\n z-index: 3;\n}\n\ndiv.CodeMirror-dragcursors {\n visibility: visible;\n}\n\n.CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n\n.CodeMirror-crosshair { cursor: crosshair; }\n\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\n\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n background: #ffa;\n background: rgba(255, 255, 0, .4);\n}\n\n/* IE7 hack to prevent it from returning funny offsetTops on the spans */\n\n.CodeMirror span { *vertical-align: text-bottom; }\n\n/* Used to force a border model for a node */\n\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n}\n\n/* See issue #2901 */\n\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\n\nspan.CodeMirror-selectedtext { background: none; }\n\n.CodeMirror-dialog {\n background: inherit;\n color: inherit;\n left: 0; right: 0;\n overflow: hidden;\n padding: .1em .8em;\n position: absolute;\n z-index: 15;\n}\n\n.CodeMirror-dialog-top {\n border-bottom: 1px solid #eee;\n top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n border-top: 1px solid #eee;\n bottom: 0;\n}\n\n.CodeMirror-dialog input {\n background: transparent;\n border: 1px solid #d3d6db;\n color: inherit;\n font-family: monospace;\n outline: none;\n width: 20em;\n}\n\n.CodeMirror-dialog button {\n font-size: 70%;\n}\n\n.CodeMirror-foldmarker {\n color: blue;\n cursor: pointer;\n font-family: arial;\n line-height: .3;\n text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;\n}\n.CodeMirror-foldgutter {\n width: .7em;\n}\n.CodeMirror-foldgutter-open,\n.CodeMirror-foldgutter-folded {\n cursor: pointer;\n}\n.CodeMirror-foldgutter-open:after {\n content: \"\\25BE\";\n}\n.CodeMirror-foldgutter-folded:after {\n content: \"\\25B8\";\n}\n\n.CodeMirror-info {\n background: white;\n border-radius: 2px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);\n box-sizing: border-box;\n color: #555;\n font-family:\n system,\n -apple-system,\n 'San Francisco',\n '.SFNSDisplay-Regular',\n 'Segoe UI',\n Segoe,\n 'Segoe WP',\n 'Helvetica Neue',\n helvetica,\n 'Lucida Grande',\n arial,\n sans-serif;\n font-size: 13px;\n line-height: 16px;\n margin: 8px -8px;\n max-width: 400px;\n opacity: 0;\n overflow: hidden;\n padding: 8px 8px;\n position: fixed;\n transition: opacity 0.15s;\n z-index: 50;\n}\n\n.CodeMirror-info :first-child {\n margin-top: 0;\n}\n\n.CodeMirror-info :last-child {\n margin-bottom: 0;\n}\n\n.CodeMirror-info p {\n margin: 1em 0;\n}\n\n.CodeMirror-info .info-description {\n color: #777;\n line-height: 16px;\n margin-top: 1em;\n max-height: 80px;\n overflow: hidden;\n}\n\n.CodeMirror-info .info-deprecation {\n background: #fffae8;\n box-shadow: inset 0 1px 1px -1px #bfb063;\n color: #867F70;\n line-height: 16px;\n margin: -8px;\n margin-top: 8px;\n max-height: 80px;\n overflow: hidden;\n padding: 8px;\n}\n\n.CodeMirror-info .info-deprecation-label {\n color: #c79b2e;\n cursor: default;\n display: block;\n font-size: 9px;\n font-weight: bold;\n letter-spacing: 1px;\n line-height: 1;\n padding-bottom: 5px;\n text-transform: uppercase;\n user-select: none;\n}\n\n.CodeMirror-info .info-deprecation-label + * {\n margin-top: 0;\n}\n\n.CodeMirror-info a {\n text-decoration: none;\n}\n\n.CodeMirror-info a:hover {\n text-decoration: underline;\n}\n\n.CodeMirror-info .type-name {\n color: #CA9800;\n}\n\n.CodeMirror-info .field-name {\n color: #1F61A0;\n}\n\n.CodeMirror-info .enum-value {\n color: #0B7FC7;\n}\n\n.CodeMirror-info .arg-name {\n color: #8B2BB9;\n}\n\n.CodeMirror-info .directive-name {\n color: #B33086;\n}\n\n.CodeMirror-jump-token {\n text-decoration: underline;\n cursor: pointer;\n}\n\n/* The lint marker gutter */\n.CodeMirror-lint-markers {\n width: 16px;\n}\n.CodeMirror-lint-tooltip {\n background-color: infobackground;\n border-radius: 4px 4px 4px 4px;\n border: 1px solid black;\n color: infotext;\n font-family: monospace;\n font-size: 10pt;\n max-width: 600px;\n opacity: 0;\n overflow: hidden;\n padding: 2px 5px;\n position: fixed;\n transition: opacity .4s;\n white-space: pre-wrap;\n z-index: 100;\n}\n.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {\n background-position: left bottom;\n background-repeat: repeat-x;\n}\n.CodeMirror-lint-mark-error {\n background-image:\n url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==\")\n ;\n}\n.CodeMirror-lint-mark-warning {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=\");\n}\n.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {\n background-position: center center;\n background-repeat: no-repeat;\n cursor: pointer;\n display: inline-block;\n height: 16px;\n position: relative;\n vertical-align: middle;\n width: 16px;\n}\n.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {\n background-position: top left;\n background-repeat: no-repeat;\n padding-left: 18px;\n}\n.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=\");\n}\n.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=\");\n}\n.CodeMirror-lint-marker-multiple {\n background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC\");\n background-position: right bottom;\n background-repeat: no-repeat;\n width: 100%; height: 100%;\n}\n\n.graphiql-container .spinner-container {\n height: 36px;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 36px;\n z-index: 10;\n}\n\n.graphiql-container .spinner {\n animation: rotation .6s infinite linear;\n border-bottom: 6px solid rgba(150, 150, 150, .15);\n border-left: 6px solid rgba(150, 150, 150, .15);\n border-radius: 100%;\n border-right: 6px solid rgba(150, 150, 150, .15);\n border-top: 6px solid rgba(150, 150, 150, .8);\n display: inline-block;\n height: 24px;\n position: absolute;\n vertical-align: middle;\n width: 24px;\n}\n\n@keyframes rotation {\n from { transform: rotate(0deg); }\n to { transform: rotate(359deg); }\n}\n\n.CodeMirror-hints {\n background: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);\n font-family: 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace;\n font-size: 13px;\n list-style: none;\n margin-left: -6px;\n margin: 0;\n max-height: 14.5em;\n overflow: hidden;\n overflow-y: auto;\n padding: 0;\n position: absolute;\n z-index: 10;\n}\n\n.CodeMirror-hint {\n border-top: solid 1px #f7f7f7;\n color: #141823;\n cursor: pointer;\n margin: 0;\n max-width: 300px;\n overflow: hidden;\n padding: 2px 6px;\n white-space: pre;\n}\n\nli.CodeMirror-hint-active {\n background-color: #08f;\n border-top-color: white;\n color: white;\n}\n\n.CodeMirror-hint-information {\n border-top: solid 1px #c0c0c0;\n max-width: 300px;\n padding: 4px 6px;\n position: relative;\n z-index: 1;\n}\n\n.CodeMirror-hint-information:first-child {\n border-bottom: solid 1px #c0c0c0;\n border-top: none;\n margin-bottom: -1px;\n}\n\n.CodeMirror-hint-deprecation {\n background: #fffae8;\n box-shadow: inset 0 1px 1px -1px #bfb063;\n color: #867F70;\n font-family:\n system,\n -apple-system,\n 'San Francisco',\n '.SFNSDisplay-Regular',\n 'Segoe UI',\n Segoe,\n 'Segoe WP',\n 'Helvetica Neue',\n helvetica,\n 'Lucida Grande',\n arial,\n sans-serif;\n font-size: 13px;\n line-height: 16px;\n margin-top: 4px;\n max-height: 80px;\n overflow: hidden;\n padding: 6px;\n}\n\n.CodeMirror-hint-deprecation .deprecation-label {\n color: #c79b2e;\n cursor: default;\n display: block;\n font-size: 9px;\n font-weight: bold;\n letter-spacing: 1px;\n line-height: 1;\n padding-bottom: 5px;\n text-transform: uppercase;\n user-select: none;\n}\n\n.CodeMirror-hint-deprecation .deprecation-label + * {\n margin-top: 0;\n}\n\n.CodeMirror-hint-deprecation :last-child {\n margin-bottom: 0;\n}\n\n.graphiql-container .doc-explorer {\n background: white;\n}\n\n.graphiql-container .doc-explorer-title-bar,\n.graphiql-container .history-title-bar {\n cursor: default;\n display: flex;\n height: 34px;\n line-height: 14px;\n padding: 8px 8px 5px;\n position: relative;\n user-select: none;\n}\n\n.graphiql-container .doc-explorer-title,\n.graphiql-container .history-title {\n flex: 1;\n font-weight: bold;\n overflow-x: hidden;\n padding: 10px 0 10px 10px;\n text-align: center;\n text-overflow: ellipsis;\n user-select: text;\n white-space: nowrap;\n}\n\n.graphiql-container .doc-explorer-back {\n color: #3B5998;\n cursor: pointer;\n margin: -7px 0 -6px -8px;\n overflow-x: hidden;\n padding: 17px 12px 16px 16px;\n text-overflow: ellipsis;\n white-space: nowrap;\n background: 0;\n border: 0;\n line-height: 14px;\n}\n\n.doc-explorer-narrow .doc-explorer-back {\n width: 0;\n}\n\n.graphiql-container .doc-explorer-back:before {\n border-left: 2px solid #3B5998;\n border-top: 2px solid #3B5998;\n content: '';\n display: inline-block;\n height: 9px;\n margin: 0 3px -1px 0;\n position: relative;\n transform: rotate(-45deg);\n width: 9px;\n}\n\n.graphiql-container .doc-explorer-rhs {\n position: relative;\n}\n\n.graphiql-container .doc-explorer-contents,\n.graphiql-container .history-contents {\n background-color: #ffffff;\n border-top: 1px solid #d6d6d6;\n bottom: 0;\n left: 0;\n overflow-y: auto;\n padding: 20px 15px;\n position: absolute;\n right: 0;\n top: 47px;\n}\n\n.graphiql-container .doc-explorer-contents {\n min-width: 300px;\n}\n\n.graphiql-container .doc-type-description p:first-child ,\n.graphiql-container .doc-type-description blockquote:first-child {\n margin-top: 0;\n}\n\n.graphiql-container .doc-explorer-contents a {\n cursor: pointer;\n text-decoration: none;\n}\n\n.graphiql-container .doc-explorer-contents a:hover {\n text-decoration: underline;\n}\n\n.graphiql-container .doc-value-description > :first-child {\n margin-top: 4px;\n}\n\n.graphiql-container .doc-value-description > :last-child {\n margin-bottom: 4px;\n}\n\n.graphiql-container .doc-type-description code,\n.graphiql-container .doc-type-description pre,\n.graphiql-container .doc-category code,\n.graphiql-container .doc-category pre {\n --saf-0: rgba(var(--sk_foreground_low,29,28,29),0.13);\n font-size: 12px;\n line-height: 1.50001;\n font-variant-ligatures: none;\n white-space: pre;\n white-space: pre-wrap;\n word-wrap: break-word;\n word-break: normal;\n -webkit-tab-size: 4;\n -moz-tab-size: 4;\n tab-size: 4;\n}\n\n.graphiql-container .doc-type-description code,\n.graphiql-container .doc-category code {\n padding: 2px 3px 1px;\n border: 1px solid var(--saf-0);\n border-radius: 3px;\n background-color: rgba(var(--sk_foreground_min,29,28,29),.04);\n color: #e01e5a;\n background-color: white;\n}\n\n.graphiql-container .doc-category {\n margin: 20px 0;\n}\n\n.graphiql-container .doc-category-title {\n border-bottom: 1px solid #e0e0e0;\n color: #777;\n cursor: default;\n font-size: 14px;\n font-variant: small-caps;\n font-weight: bold;\n letter-spacing: 1px;\n margin: 0 -15px 10px 0;\n padding: 10px 0;\n user-select: none;\n}\n\n.graphiql-container .doc-category-item {\n margin: 12px 0;\n color: #555;\n}\n\n.graphiql-container .keyword {\n color: #B11A04;\n}\n\n.graphiql-container .type-name {\n color: #CA9800;\n}\n\n.graphiql-container .field-name {\n color: #1F61A0;\n}\n\n.graphiql-container .field-short-description {\n color: #999;\n margin-left: 5px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.graphiql-container .enum-value {\n color: #0B7FC7;\n}\n\n.graphiql-container .arg-name {\n color: #8B2BB9;\n}\n\n.graphiql-container .arg {\n display: block;\n margin-left: 1em;\n}\n\n.graphiql-container .arg:first-child:last-child,\n.graphiql-container .arg:first-child:nth-last-child(2),\n.graphiql-container .arg:first-child:nth-last-child(2) ~ .arg {\n display: inherit;\n margin: inherit;\n}\n\n.graphiql-container .arg:first-child:nth-last-child(2):after {\n content: ', ';\n}\n\n.graphiql-container .arg-default-value {\n color: #43A047;\n}\n\n.graphiql-container .doc-deprecation {\n background: #fffae8;\n box-shadow: inset 0 0 1px #bfb063;\n color: #867F70;\n line-height: 16px;\n margin: 8px -8px;\n max-height: 80px;\n overflow: hidden;\n padding: 8px;\n border-radius: 3px;\n}\n\n.graphiql-container .doc-deprecation:before {\n content: 'Deprecated:';\n color: #c79b2e;\n cursor: default;\n display: block;\n font-size: 9px;\n font-weight: bold;\n letter-spacing: 1px;\n line-height: 1;\n padding-bottom: 5px;\n text-transform: uppercase;\n user-select: none;\n}\n\n.graphiql-container .doc-deprecation > :first-child {\n margin-top: 0;\n}\n\n.graphiql-container .doc-deprecation > :last-child {\n margin-bottom: 0;\n}\n\n.graphiql-container .show-btn {\n -webkit-appearance: initial;\n display: block;\n border-radius: 3px;\n border: solid 1px #ccc;\n text-align: center;\n padding: 8px 12px 10px;\n width: 100%;\n box-sizing: border-box;\n background: #fbfcfc;\n color: #555;\n cursor: pointer;\n}\n\n.graphiql-container .search-box {\n border-bottom: 1px solid #d3d6db;\n display: block;\n font-size: 14px;\n margin: -15px -15px 12px 0;\n position: relative;\n}\n\n.graphiql-container .search-box-icon {\n cursor: pointer;\n display: block;\n font-size: 24px;\n position: absolute;\n top: -2px;\n transform: rotate(-45deg);\n user-select: none;\n}\n\n.graphiql-container .search-box .search-box-clear {\n background-color: #d0d0d0;\n border-radius: 12px;\n color: #fff;\n cursor: pointer;\n font-size: 11px;\n padding: 1px 5px 2px;\n position: absolute;\n right: 3px;\n top: 8px;\n user-select: none;\n border: 0;\n}\n\n.graphiql-container .search-box .search-box-clear:hover {\n background-color: #b9b9b9;\n}\n\n.graphiql-container .search-box > input {\n border: none;\n box-sizing: border-box;\n font-size: 14px;\n outline: none;\n padding: 6px 24px 8px 20px;\n width: 100%;\n}\n\n.graphiql-container .error-container {\n font-weight: bold;\n left: 0;\n letter-spacing: 1px;\n opacity: 0.5;\n position: absolute;\n right: 0;\n text-align: center;\n text-transform: uppercase;\n top: 50%;\n transform: translate(0, -50%);\n}\n\n.graphiql-container .history-contents {\n font-family: 'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace;\n}\n\n.graphiql-container .history-contents {\n margin: 0;\n padding: 0;\n}\n\n.graphiql-container .history-contents li {\n align-items: center;\n display: flex;\n font-size: 12px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin: 0;\n padding: 8px;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.graphiql-container .history-contents li button:not(.history-label) {\n display: none;\n margin-left: 10px;\n}\n\n.graphiql-container .history-contents li:hover button:not(.history-label),\n.graphiql-container .history-contents li:focus-within button:not(.history-label) {\n display: inline-block;\n}\n\n.graphiql-container .history-contents input,\n.graphiql-container .history-contents button {\n padding: 0;\n background: 0;\n border: 0;\n font-size: inherit;\n font-family: inherit;\n line-height: 14px;\n color: inherit;\n}\n\n.graphiql-container .history-contents input {\n flex-grow: 1;\n}\n\n.graphiql-container .history-contents input::placeholder {\n color: inherit;\n}\n\n.graphiql-container .history-contents button {\n cursor: pointer;\n text-align: left;\n}\n\n.graphiql-container .history-contents .history-label {\n flex-grow: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n"}
</style>
<script>
// promise-polyfill/dist/polyfill.min.js
${"!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t():\"function\"==typeof define&&define.amd?define(t):t()}(0,function(){\"use strict\";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function o(e,n){if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var f=n.then;if(\"function\"==typeof f)return void f.call(n,function(t){o(e,t)},function(n){r[e]={status:\"rejected\",reason:n},0==--i&&t(r)})}r[e]={status:\"fulfilled\",value:n},0==--i&&t(r)}if(!e||\"undefined\"==typeof e.length)return n(new TypeError(typeof e+\" \"+e+\" is not iterable(cannot read property Symbol(Symbol.iterator))\"));var r=Array.prototype.slice.call(e);if(0===r.length)return t([]);for(var i=r.length,f=0;r.length>f;f++)o(f,r[f])})}function n(e){return!(!e||\"undefined\"==typeof e.length)}function o(){}function r(e){if(!(this instanceof r))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],l(e,this)}function i(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var o;try{o=n(e._value)}catch(r){return void u(t.promise,r)}f(t.promise,o)}else(1===e._state?f:u)(t.promise,e._value)})):e._deferreds.push(t)}function f(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof r)return e._state=3,e._value=t,void c(e);if(\"function\"==typeof n)return void l(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,c(e)}catch(o){u(e,o)}}function u(e,t){e._state=2,e._value=t,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)i(e,e._deferreds[t]);e._deferreds=null}function l(e,t){var n=!1;try{e(function(e){n||(n=!0,f(t,e))},function(e){n||(n=!0,u(t,e))})}catch(o){if(n)return;n=!0,u(t,o)}}var a=setTimeout;r.prototype[\"catch\"]=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var n=new this.constructor(o);return i(this,new function(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}(e,t,n)),n},r.prototype[\"finally\"]=e,r.all=function(e){return new r(function(t,o){function r(e,n){try{if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var u=n.then;if(\"function\"==typeof u)return void u.call(n,function(t){r(e,t)},o)}i[e]=n,0==--f&&t(i)}catch(c){o(c)}}if(!n(e))return o(new TypeError(\"Promise.all accepts an array\"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},r.allSettled=t,r.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===r?e:new r(function(t){t(e)})},r.reject=function(e){return new r(function(t,n){n(e)})},r.race=function(e){return new r(function(t,o){if(!n(e))return o(new TypeError(\"Promise.race accepts an array\"));for(var i=0,f=e.length;f>i;i++)r.resolve(e[i]).then(t,o)})},r._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){a(e,0)},r._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var s=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw Error(\"unable to locate global object\")}();\"function\"!=typeof s.Promise?s.Promise=r:s.Promise.prototype[\"finally\"]?s.Promise.allSettled||(s.Promise.allSettled=t):s.Promise.prototype[\"finally\"]=e});\n"}
</script>
<script>
// unfetch/dist/unfetch.umd.js
${"!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):e.unfetch=n()}(this,function(){return function(e,n){return n=n||{},new Promise(function(t,o){var r=new XMLHttpRequest,s=[],u=[],i={},f=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:f,headers:{keys:function(){return s},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var a in r.open(n.method||\"get\",e,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){s.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(f())},r.onerror=o,r.withCredentials=\"include\"==n.credentials,n.headers)r.setRequestHeader(a,n.headers[a]);r.send(n.body||null)})}});\n//# sourceMappingURL=unfetch.umd.js.map\n"}
</script>
<script>
// react/umd/react.production.min.js
${"/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';(function(d,r){\"object\"===typeof exports&&\"undefined\"!==typeof module?r(exports):\"function\"===typeof define&&define.amd?define([\"exports\"],r):(d=d||self,r(d.React={}))})(this,function(d){function r(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nfunction w(a,b,c){this.props=a;this.context=b;this.refs=ba;this.updater=c||ca}function da(){}function L(a,b,c){this.props=a;this.context=b;this.refs=ba;this.updater=c||ca}function ea(a,b,c){var g,e={},fa=null,d=null;if(null!=b)for(g in void 0!==b.ref&&(d=b.ref),void 0!==b.key&&(fa=\"\"+b.key),b)ha.call(b,g)&&!ia.hasOwnProperty(g)&&(e[g]=b[g]);var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){for(var k=Array(h),f=0;f<h;f++)k[f]=arguments[f+2];e.children=k}if(a&&a.defaultProps)for(g in h=a.defaultProps,\nh)void 0===e[g]&&(e[g]=h[g]);return{$$typeof:x,type:a,key:fa,ref:d,props:e,_owner:M.current}}function va(a,b){return{$$typeof:x,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function N(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===x}function wa(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}function ja(a,b,c,g){if(C.length){var e=C.pop();e.result=a;e.keyPrefix=b;e.func=c;e.context=g;e.count=0;return e}return{result:a,keyPrefix:b,func:c,\ncontext:g,count:0}}function ka(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>C.length&&C.push(a)}function O(a,b,c,g){var e=typeof a;if(\"undefined\"===e||\"boolean\"===e)a=null;var d=!1;if(null===a)d=!0;else switch(e){case \"string\":case \"number\":d=!0;break;case \"object\":switch(a.$$typeof){case x:case xa:d=!0}}if(d)return c(g,a,\"\"===b?\".\"+P(a,0):b),1;d=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var f=0;f<a.length;f++){e=a[f];var h=b+P(e,f);d+=O(e,h,c,g)}else if(null===a||\n\"object\"!==typeof a?h=null:(h=la&&a[la]||a[\"@@iterator\"],h=\"function\"===typeof h?h:null),\"function\"===typeof h)for(a=h.call(a),f=0;!(e=a.next()).done;)e=e.value,h=b+P(e,f++),d+=O(e,h,c,g);else if(\"object\"===e)throw c=\"\"+a,Error(r(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return d}function Q(a,b,c){return null==a?0:O(a,\"\",b,c)}function P(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?wa(a.key):b.toString(36)}function ya(a,b,c){a.func.call(a.context,b,\na.count++)}function za(a,b,c){var g=a.result,e=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?R(a,g,c,function(a){return a}):null!=a&&(N(a)&&(a=va(a,e+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(ma,\"$&/\")+\"/\")+c)),g.push(a))}function R(a,b,c,g,e){var d=\"\";null!=c&&(d=(\"\"+c).replace(ma,\"$&/\")+\"/\");b=ja(b,d,g,e);Q(a,za,b);ka(b)}function t(){var a=na.current;if(null===a)throw Error(r(321));return a}function S(a,b){var c=a.length;a.push(b);a:for(;;){var g=c-1>>>1,e=a[g];if(void 0!==\ne&&0<D(e,b))a[g]=b,a[c]=e,c=g;else break a}}function n(a){a=a[0];return void 0===a?null:a}function E(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var g=0,e=a.length;g<e;){var d=2*(g+1)-1,f=a[d],h=d+1,k=a[h];if(void 0!==f&&0>D(f,c))void 0!==k&&0>D(k,f)?(a[g]=k,a[h]=c,g=h):(a[g]=f,a[d]=c,g=d);else if(void 0!==k&&0>D(k,c))a[g]=k,a[h]=c,g=h;else break a}}return b}return null}function D(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}function F(a){for(var b=n(u);null!==\nb;){if(null===b.callback)E(u);else if(b.startTime<=a)E(u),b.sortIndex=b.expirationTime,S(p,b);else break;b=n(u)}}function T(a){y=!1;F(a);if(!v)if(null!==n(p))v=!0,z(U);else{var b=n(u);null!==b&&G(T,b.startTime-a)}}function U(a,b){v=!1;y&&(y=!1,V());H=!0;var c=m;try{F(b);for(l=n(p);null!==l&&(!(l.expirationTime>b)||a&&!W());){var g=l.callback;if(null!==g){l.callback=null;m=l.priorityLevel;var e=g(l.expirationTime<=b);b=q();\"function\"===typeof e?l.callback=e:l===n(p)&&E(p);F(b)}else E(p);l=n(p)}if(null!==\nl)var d=!0;else{var f=n(u);null!==f&&G(T,f.startTime-b);d=!1}return d}finally{l=null,m=c,H=!1}}function oa(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var f=\"function\"===typeof Symbol&&Symbol.for,x=f?Symbol.for(\"react.element\"):60103,xa=f?Symbol.for(\"react.portal\"):60106,Aa=f?Symbol.for(\"react.fragment\"):60107,Ba=f?Symbol.for(\"react.strict_mode\"):60108,Ca=f?Symbol.for(\"react.profiler\"):60114,Da=f?Symbol.for(\"react.provider\"):60109,\nEa=f?Symbol.for(\"react.context\"):60110,Fa=f?Symbol.for(\"react.forward_ref\"):60112,Ga=f?Symbol.for(\"react.suspense\"):60113,Ha=f?Symbol.for(\"react.memo\"):60115,Ia=f?Symbol.for(\"react.lazy\"):60116,la=\"function\"===typeof Symbol&&Symbol.iterator,pa=Object.getOwnPropertySymbols,Ja=Object.prototype.hasOwnProperty,Ka=Object.prototype.propertyIsEnumerable,I=function(){try{if(!Object.assign)return!1;var a=new String(\"abc\");a[5]=\"de\";if(\"5\"===Object.getOwnPropertyNames(a)[0])return!1;var b={};for(a=0;10>a;a++)b[\"_\"+\nString.fromCharCode(a)]=a;if(\"0123456789\"!==Object.getOwnPropertyNames(b).map(function(a){return b[a]}).join(\"\"))return!1;var c={};\"abcdefghijklmnopqrst\".split(\"\").forEach(function(a){c[a]=a});return\"abcdefghijklmnopqrst\"!==Object.keys(Object.assign({},c)).join(\"\")?!1:!0}catch(g){return!1}}()?Object.assign:function(a,b){if(null===a||void 0===a)throw new TypeError(\"Object.assign cannot be called with null or undefined\");var c=Object(a);for(var g,e=1;e<arguments.length;e++){var d=Object(arguments[e]);\nfor(var f in d)Ja.call(d,f)&&(c[f]=d[f]);if(pa){g=pa(d);for(var h=0;h<g.length;h++)Ka.call(d,g[h])&&(c[g[h]]=d[g[h]])}}return c},ca={isMounted:function(a){return!1},enqueueForceUpdate:function(a,b,c){},enqueueReplaceState:function(a,b,c,d){},enqueueSetState:function(a,b,c,d){}},ba={};w.prototype.isReac