From 688e1b2f39eae4470fbdfd4018a20f73ed87845e Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Sat, 30 Jun 2018 15:24:10 +0400 Subject: [PATCH] Update demo --- demo/images/driver.png | Bin 28281 -> 46095 bytes demo/images/driver.svg | 195 ++++++++++++++++++++++++++++++++++ demo/scripts/demo.js | 2 +- demo/styles/demo.scss | 11 ++ dist/demo/driver-demo.min.css | 2 +- dist/demo/driver-demo.min.js | 2 +- dist/demo/driver.png | Bin 0 -> 46095 bytes index.html | 5 +- webpack.config.demo.js | 1 + 9 files changed, 214 insertions(+), 4 deletions(-) create mode 100644 demo/images/driver.svg create mode 100644 dist/demo/driver.png diff --git a/demo/images/driver.png b/demo/images/driver.png index 5d2909e0387d4e41c8fee7865b20bd789446212e..35e1ca95867cda7ea8b5b78ae8d6a532bb66bad1 100644 GIT binary patch literal 46095 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 literal 28281 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Πh8$N{7|72v%dR*QK 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

ScnhU4uHSc9r2#MOjY3~ckUCS;-xRNxe) z@3?j@4+Bl!Aj!}IW?k-o*2`!lDsgld=CS!Wm9b$=)gsm8W7TTaMp4a`Yc*6zZm=&_$4$WsRtXK4MiO#;X0!5NGJu zs#wz66=_F0q;bL!4U1l>t{9TfhvT@UqZpy3r(gmN zB$Pr$nz&p+=n@azwkvcGn~oL5@CfxkUwF=wChxw=jO z001R)MObuXVRU6WV{&C-bY%cCFflhRFf}bRFjO!&Iy5;tF)=GJGCD9Yq^tim0000b zbVXQnWMOn=I&E)cX=Zr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/demo/scripts/demo.js b/demo/scripts/demo.js index 1a266f9..8fb2377 100644 --- a/demo/scripts/demo.js +++ b/demo/scripts/demo.js @@ -10,7 +10,7 @@ document.addEventListener('DOMContentLoaded', function () { nextBtnText: 'Okay, Start!' }, }, { - element: '#logo_emoji', + element: '#logo_img', popover: { title: 'Focus Anything', description: 'You can use it to highlight literally anything, images, text, div, span, li etc.', diff --git a/demo/styles/demo.scss b/demo/styles/demo.scss index c9b3dc8..99a14da 100644 --- a/demo/styles/demo.scss +++ b/demo/styles/demo.scss @@ -8,6 +8,17 @@ img.emoji { vertical-align: -0.1em; } +.brand { + position: relative; + + img { + height: 67px; + position: absolute; + top: -6px; + left: 55px; + } +} + .page-wrap { max-width: 550px; margin: 50px auto; diff --git a/dist/demo/driver-demo.min.css b/dist/demo/driver-demo.min.css index 0aaf1fa..d043f0d 100644 --- a/dist/demo/driver-demo.min.css +++ b/dist/demo/driver-demo.min.css @@ -1 +1 @@ -*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}*,:after,:before{box-sizing:border-box}body,html{position:relative;margin:0;width:100%;height:100%}body{padding-top:1px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.4;color:#fff;background-color:#2e2e30;overflow-x:hidden}label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;cursor:pointer}p{margin-top:0;margin-bottom:20px;line-height:1.5}.hr,hr{display:block;margin:30px 0;border:0;border-bottom:1px solid #eaeaea;height:1px}.hr.hr__fancy,hr.hr__fancy{background:url("./separator.png") repeat-y;height:5px;background-size:cover}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:12px;font-weight:700;line-height:1.2}a,a:focus,a:visited{color:#fff;text-decoration:none;font-weight:600}.form-control{display:block;width:100%;background-color:#f9f9f9;padding:12px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;-webkit-appearance:none;appearance:none;outline:none;margin-bottom:24px}.h1,h1{font-size:32px}.h2,h2{font-size:24px}.h3,h3{font-size:20px}.h4,h4{font-size:18px}.h5,h5{font-size:16px}.h6,h6{font-size:14px}ol li,ul li{list-style-type:none;line-height:1.5;margin-bottom:3px}blockquote{background:#f5f3f1;padding:10px;margin-bottom:35px;border-radius:10px}.top-20{margin-top:20px}.top-30{margin-top:30px}.zero-bottom{margin-bottom:0}.zero-top{margin-top:0}.text-center{text-align:center}div#driver-popover-item{display:none;position:absolute;background:#fff;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px rgba(0,0,0,.4);z-index:1000000000}div#driver-popover-item .driver-popover-tip{border:5px solid #fff;content:"";position:absolute}div#driver-popover-item .driver-popover-tip.bottom{bottom:-10px;border-top-color:#fff;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}div#driver-popover-item .driver-popover-tip.left{left:-10px;top:10px;border-top-color:transparent;border-right-color:#fff;border-bottom-color:transparent;border-left-color:transparent}div#driver-popover-item .driver-popover-tip.right{right:-10px;top:10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#fff}div#driver-popover-item .driver-popover-tip.top{top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:transparent}div#driver-popover-item .driver-popover-footer{display:block;clear:both;margin-top:5px}div#driver-popover-item .driver-popover-footer button{display:inline-block;padding:3px 10px;border:1px solid #d4d4d4;text-decoration:none;text-shadow:1px 1px 0 #fff;color:#2d2d2d;font:11px/normal sans-serif;cursor:pointer;outline:0;background-color:#f1f1f1;border-radius:2px;zoom:1;margin:10px 0 0;line-height:1.3}div#driver-popover-item .driver-popover-footer button.driver-disabled{color:gray;cursor:default;pointer-events:none}div#driver-popover-item .driver-popover-footer .driver-close-btn{float:left}div#driver-popover-item .driver-popover-footer .driver-btn-group{float:right}div#driver-popover-item .driver-popover-title{font:19px/normal sans-serif;margin:0 0 5px;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1}div#driver-popover-item .driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;color:#2d2d2d;font-weight:400;zoom:1}.driver-stage-no-animation{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important;background:transparent!important;outline:5000px solid rgba(0,0,0,.75)}div#driver-page-overlay{background:#000;position:fixed;bottom:0;right:0;display:block;width:100%;height:100%;zoom:1;filter:alpha(opacity=75);opacity:.75;z-index:100002!important}div#driver-highlighted-element-stage,div#driver-page-overlay{top:0;left:0;-webkit-transition:all .4s;-moz-transition:all .4s;-ms-transition:all .4s;-o-transition:all .4s;transition:all .4s}div#driver-highlighted-element-stage{position:absolute;height:50px;width:300px;background:#fff;z-index:100003!important;display:none;border-radius:2px}.driver-highlighted-element{z-index:100004!important}.driver-position-relative{position:relative!important}.driver-fix-stacking{z-index:auto!important;opacity:1!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important;-webkit-filter:none!important;-moz-filter:none!important;-ms-filter:none!important;-o-filter:none!important;filter:none!important;-webkit-perspective:none!important;-moz-perspective:none!important;-ms-perspective:none!important;-o-perspective:none!important;perspective:none!important;-webkit-transform-style:flat!important;-moz-transform-style:flat!important;-ms-transform-style:flat!important;transform-style:flat!important;-webkit-transform-box:border-box!important;-moz-transform-box:border-box!important;-ms-transform-box:border-box!important;-o-transform-box:border-box!important;transform-box:border-box!important;will-change:unset!important}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.page-wrap{max-width:550px;margin:50px auto;background:#fff;padding:10px 30px;border-radius:5px;color:#1f1f1f}.page-wrap a,.page-wrap a:focus,.page-wrap a:visited{color:#1f1f1f;text-decoration:underline}.page-wrap a.btn__dark{text-decoration:none;color:#fff;background-color:#f44336;padding:0 18px;height:40px;line-height:40px;border-radius:8px;cursor:pointer;transition:background-color .2s,color .2s;font-weight:500;width:195px;font-size:17px;display:inline-block;margin-top:2px}.page-wrap a.btn__run-demo{text-decoration:none;background:#f54336;padding:5px;border-radius:20px;color:#fff;display:block;margin:15px 0 10px;text-align:center}section{margin-bottom:30px}.section__header{margin:10px 0 20px;text-align:center;display:block;padding:10px}.section__header h1{font-size:55px}.section__header h1 .emoji{font-size:45px;top:-4px;margin-right:3px;position:relative}.section__header .tagline{max-width:450px;margin:0 auto 25px;text-align:center}.section__examples .section__example{margin-bottom:20px}.section__examples #creation-input{margin-top:20px}.section__examples input{padding:10px;background-color:#fafbfc;border:3px solid #e1e4e8;border-radius:3px;box-shadow:inset 0 0 10px rgba(27,31,35,.05);margin-bottom:0;margin-top:7px}.position-btns a{text-decoration:none;font-size:13px;padding:10px 15px;background:#f54336;color:#fff!important;border-radius:6px} \ No newline at end of file +*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}*,:after,:before{box-sizing:border-box}body,html{position:relative;margin:0;width:100%;height:100%}body{padding-top:1px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.4;color:#fff;background-color:#2e2e30;overflow-x:hidden}label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;cursor:pointer}p{margin-top:0;margin-bottom:20px;line-height:1.5}.hr,hr{display:block;margin:30px 0;border:0;border-bottom:1px solid #eaeaea;height:1px}.hr.hr__fancy,hr.hr__fancy{background:url("./separator.png") repeat-y;height:5px;background-size:cover}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:12px;font-weight:700;line-height:1.2}a,a:focus,a:visited{color:#fff;text-decoration:none;font-weight:600}.form-control{display:block;width:100%;background-color:#f9f9f9;padding:12px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;-webkit-appearance:none;appearance:none;outline:none;margin-bottom:24px}.h1,h1{font-size:32px}.h2,h2{font-size:24px}.h3,h3{font-size:20px}.h4,h4{font-size:18px}.h5,h5{font-size:16px}.h6,h6{font-size:14px}ol li,ul li{list-style-type:none;line-height:1.5;margin-bottom:3px}blockquote{background:#f5f3f1;padding:10px;margin-bottom:35px;border-radius:10px}.top-20{margin-top:20px}.top-30{margin-top:30px}.zero-bottom{margin-bottom:0}.zero-top{margin-top:0}.text-center{text-align:center}div#driver-popover-item{display:none;position:absolute;background:#fff;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px rgba(0,0,0,.4);z-index:1000000000}div#driver-popover-item .driver-popover-tip{border:5px solid #fff;content:"";position:absolute}div#driver-popover-item .driver-popover-tip.bottom{bottom:-10px;border-top-color:#fff;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}div#driver-popover-item .driver-popover-tip.left{left:-10px;top:10px;border-top-color:transparent;border-right-color:#fff;border-bottom-color:transparent;border-left-color:transparent}div#driver-popover-item .driver-popover-tip.right{right:-10px;top:10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:#fff}div#driver-popover-item .driver-popover-tip.top{top:-10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:#fff;border-left-color:transparent}div#driver-popover-item .driver-popover-footer{display:block;clear:both;margin-top:5px}div#driver-popover-item .driver-popover-footer button{display:inline-block;padding:3px 10px;border:1px solid #d4d4d4;text-decoration:none;text-shadow:1px 1px 0 #fff;color:#2d2d2d;font:11px/normal sans-serif;cursor:pointer;outline:0;background-color:#f1f1f1;border-radius:2px;zoom:1;margin:10px 0 0;line-height:1.3}div#driver-popover-item .driver-popover-footer button.driver-disabled{color:gray;cursor:default;pointer-events:none}div#driver-popover-item .driver-popover-footer .driver-close-btn{float:left}div#driver-popover-item .driver-popover-footer .driver-btn-group{float:right}div#driver-popover-item .driver-popover-title{font:19px/normal sans-serif;margin:0 0 5px;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1}div#driver-popover-item .driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;color:#2d2d2d;font-weight:400;zoom:1}.driver-stage-no-animation{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important;background:transparent!important;outline:5000px solid rgba(0,0,0,.75)}div#driver-page-overlay{background:#000;position:fixed;bottom:0;right:0;display:block;width:100%;height:100%;zoom:1;filter:alpha(opacity=75);opacity:.75;z-index:100002!important}div#driver-highlighted-element-stage,div#driver-page-overlay{top:0;left:0;-webkit-transition:all .4s;-moz-transition:all .4s;-ms-transition:all .4s;-o-transition:all .4s;transition:all .4s}div#driver-highlighted-element-stage{position:absolute;height:50px;width:300px;background:#fff;z-index:100003!important;display:none;border-radius:2px}.driver-highlighted-element{z-index:100004!important}.driver-position-relative{position:relative!important}.driver-fix-stacking{z-index:auto!important;opacity:1!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important;-webkit-filter:none!important;-moz-filter:none!important;-ms-filter:none!important;-o-filter:none!important;filter:none!important;-webkit-perspective:none!important;-moz-perspective:none!important;-ms-perspective:none!important;-o-perspective:none!important;perspective:none!important;-webkit-transform-style:flat!important;-moz-transform-style:flat!important;-ms-transform-style:flat!important;transform-style:flat!important;-webkit-transform-box:border-box!important;-moz-transform-box:border-box!important;-ms-transform-box:border-box!important;-o-transform-box:border-box!important;transform-box:border-box!important;will-change:unset!important}img.emoji{height:1em;width:1em;margin:0 .05em 0 .1em;vertical-align:-.1em}.brand{position:relative}.brand img{height:67px;position:absolute;top:-6px;left:55px}.page-wrap{max-width:550px;margin:50px auto;background:#fff;padding:10px 30px;border-radius:5px;color:#1f1f1f}.page-wrap a,.page-wrap a:focus,.page-wrap a:visited{color:#1f1f1f;text-decoration:underline}.page-wrap a.btn__dark{text-decoration:none;color:#fff;background-color:#f44336;padding:0 18px;height:40px;line-height:40px;border-radius:8px;cursor:pointer;transition:background-color .2s,color .2s;font-weight:500;width:195px;font-size:17px;display:inline-block;margin-top:2px}.page-wrap a.btn__run-demo{text-decoration:none;background:#f54336;padding:5px;border-radius:20px;color:#fff;display:block;margin:15px 0 10px;text-align:center}section{margin-bottom:30px}.section__header{margin:10px 0 20px;text-align:center;display:block;padding:10px}.section__header h1{font-size:55px}.section__header h1 .emoji{font-size:45px;top:-4px;margin-right:3px;position:relative}.section__header .tagline{max-width:450px;margin:0 auto 25px;text-align:center}.section__examples .section__example{margin-bottom:20px}.section__examples #creation-input{margin-top:20px}.section__examples input{padding:10px;background-color:#fafbfc;border:3px solid #e1e4e8;border-radius:3px;box-shadow:inset 0 0 10px rgba(27,31,35,.05);margin-bottom:0;margin-top:7px}.position-btns a{text-decoration:none;font-size:13px;padding:10px 15px;background:#f54336;color:#fff!important;border-radius:6px} \ No newline at end of file diff --git a/dist/demo/driver-demo.min.js b/dist/demo/driver-demo.min.js index 0359238..c627490 100644 --- a/dist/demo/driver-demo.min.js +++ b/dist/demo/driver-demo.min.js @@ -1 +1 @@ -!function(n,g){"object"==typeof exports&&"object"==typeof module?module.exports=g():"function"==typeof define&&define.amd?define([],g):"object"==typeof exports?exports.Driver=g():n.Driver=g()}(window,function(){return function(n){var g={};function t(I){if(g[I])return g[I].exports;var e=g[I]={i:I,l:!1,exports:{}};return n[I].call(e.exports,e,e.exports,t),e.l=!0,e.exports}return t.m=n,t.c=g,t.d=function(n,g,I){t.o(n,g)||Object.defineProperty(n,g,{enumerable:!0,get:I})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,g){if(1&g&&(n=t(n)),8&g)return n;if(4&g&&"object"==typeof n&&n&&n.__esModule)return n;var I=Object.create(null);if(t.r(I),Object.defineProperty(I,"default",{enumerable:!0,value:n}),2&g&&"string"!=typeof n)for(var e in n)t.d(I,e,function(g){return n[g]}.bind(null,e));return I},t.n=function(n){var g=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(g,"a",g),g},t.o=function(n,g){return Object.prototype.hasOwnProperty.call(n,g)},t.p="/dist/demo/",t(t.s=35)}([function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * Turn a string into a node\n * @param {String} htmlString to convert\n * @return {Node} Converted node element\n */\n// eslint-disable-next-line\nvar createNodeFromString = exports.createNodeFromString = function createNodeFromString(htmlString) {\n var div = document.createElement('div');\n div.innerHTML = htmlString.trim();\n\n // Change this to div.childNodes to support multiple top-level nodes\n return div.firstChild;\n};\n\n/**\n * Gets the CSS property from the given element\n * @param {HTMLElement|Node} element\n * @param {string} propertyName\n * @param {boolean} prefixVendor\n * @return {string}\n */\nvar getStyleProperty = exports.getStyleProperty = function getStyleProperty(element, propertyName) {\n var prefixVendor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (prefixVendor) {\n var prefixes = ['', '-webkit-', '-ms-', 'moz-', '-o-'];\n for (var counter = 0; counter < prefixes.length; counter++) {\n var prefixedProperty = prefixes[counter] + propertyName;\n var foundValue = getStyleProperty(element, prefixedProperty);\n\n if (foundValue) {\n return foundValue;\n }\n }\n\n return '';\n }\n\n var propertyValue = '';\n\n if (element.currentStyle) {\n propertyValue = element.currentStyle[propertyName];\n } else if (document.defaultView && document.defaultView.getComputedStyle) {\n propertyValue = document.defaultView.getComputedStyle(element, null).getPropertyValue(propertyName);\n }\n\n return propertyValue && propertyValue.toLowerCase ? propertyValue.toLowerCase() : propertyValue;\n};\n\n/**\n * Checks if the passed element is dom object or not\n * @param element\n * @returns {boolean}\n */\nvar isDomElement = exports.isDomElement = function isDomElement(element) {\n return element && (typeof element === 'undefined' ? 'undefined' : _typeof(element)) === 'object' && 'nodeType' in element;\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvY29tbW9uL3V0aWxzLmpzPzhhYzIiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUdXJuIGEgc3RyaW5nIGludG8gYSBub2RlXG4gKiBAcGFyYW0gIHtTdHJpbmd9IGh0bWxTdHJpbmcgdG8gY29udmVydFxuICogQHJldHVybiB7Tm9kZX0gICBDb252ZXJ0ZWQgbm9kZSBlbGVtZW50XG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuZXhwb3J0IGNvbnN0IGNyZWF0ZU5vZGVGcm9tU3RyaW5nID0gKGh0bWxTdHJpbmcpID0+IHtcbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5pbm5lckhUTUwgPSBodG1sU3RyaW5nLnRyaW0oKTtcblxuICAvLyBDaGFuZ2UgdGhpcyB0byBkaXYuY2hpbGROb2RlcyB0byBzdXBwb3J0IG11bHRpcGxlIHRvcC1sZXZlbCBub2Rlc1xuICByZXR1cm4gZGl2LmZpcnN0Q2hpbGQ7XG59O1xuXG4vKipcbiAqIEdldHMgdGhlIENTUyBwcm9wZXJ0eSBmcm9tIHRoZSBnaXZlbiBlbGVtZW50XG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fE5vZGV9IGVsZW1lbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eU5hbWVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJlZml4VmVuZG9yXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTdHlsZVByb3BlcnR5ID0gKGVsZW1lbnQsIHByb3BlcnR5TmFtZSwgcHJlZml4VmVuZG9yID0gZmFsc2UpID0+IHtcbiAgaWYgKHByZWZpeFZlbmRvcikge1xuICAgIGNvbnN0IHByZWZpeGVzID0gWycnLCAnLXdlYmtpdC0nLCAnLW1zLScsICdtb3otJywgJy1vLSddO1xuICAgIGZvciAobGV0IGNvdW50ZXIgPSAwOyBjb3VudGVyIDwgcHJlZml4ZXMubGVuZ3RoOyBjb3VudGVyKyspIHtcbiAgICAgIGNvbnN0IHByZWZpeGVkUHJvcGVydHkgPSBwcmVmaXhlc1tjb3VudGVyXSArIHByb3BlcnR5TmFtZTtcbiAgICAgIGNvbnN0IGZvdW5kVmFsdWUgPSBnZXRTdHlsZVByb3BlcnR5KGVsZW1lbnQsIHByZWZpeGVkUHJvcGVydHkpO1xuXG4gICAgICBpZiAoZm91bmRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZm91bmRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBsZXQgcHJvcGVydHlWYWx1ZSA9ICcnO1xuXG4gIGlmIChlbGVtZW50LmN1cnJlbnRTdHlsZSkge1xuICAgIHByb3BlcnR5VmFsdWUgPSBlbGVtZW50LmN1cnJlbnRTdHlsZVtwcm9wZXJ0eU5hbWVdO1xuICB9IGVsc2UgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpIHtcbiAgICBwcm9wZXJ0eVZhbHVlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXdcbiAgICAgIC5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpXG4gICAgICAuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHByb3BlcnR5VmFsdWUgJiYgcHJvcGVydHlWYWx1ZS50b0xvd2VyQ2FzZSA/IHByb3BlcnR5VmFsdWUudG9Mb3dlckNhc2UoKSA6IHByb3BlcnR5VmFsdWU7XG59O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcGFzc2VkIGVsZW1lbnQgaXMgZG9tIG9iamVjdCBvciBub3RcbiAqIEBwYXJhbSBlbGVtZW50XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGNvbnN0IGlzRG9tRWxlbWVudCA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50ICYmIHR5cGVvZiBlbGVtZW50ID09PSAnb2JqZWN0JyAmJiAnbm9kZVR5cGUnIGluIGVsZW1lbnQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBT0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar OVERLAY_OPACITY = exports.OVERLAY_OPACITY = 0.75;\nvar OVERLAY_PADDING = exports.OVERLAY_PADDING = 10;\n\nvar SHOULD_ANIMATE_OVERLAY = exports.SHOULD_ANIMATE_OVERLAY = true;\nvar SHOULD_OUTSIDE_CLICK_CLOSE = exports.SHOULD_OUTSIDE_CLICK_CLOSE = true;\nvar ALLOW_KEYBOARD_CONTROL = exports.ALLOW_KEYBOARD_CONTROL = true;\nvar SHOULD_OUTSIDE_CLICK_NEXT = exports.SHOULD_OUTSIDE_CLICK_NEXT = false;\n\nvar ESC_KEY_CODE = exports.ESC_KEY_CODE = 27;\nvar LEFT_KEY_CODE = exports.LEFT_KEY_CODE = 37;\nvar RIGHT_KEY_CODE = exports.RIGHT_KEY_CODE = 39;\n\nvar ID_OVERLAY = exports.ID_OVERLAY = 'driver-page-overlay';\nvar ID_STAGE = exports.ID_STAGE = 'driver-highlighted-element-stage';\nvar ID_POPOVER = exports.ID_POPOVER = 'driver-popover-item';\n\nvar CLASS_DRIVER_HIGHLIGHTED_ELEMENT = exports.CLASS_DRIVER_HIGHLIGHTED_ELEMENT = 'driver-highlighted-element';\nvar CLASS_POSITION_RELATIVE = exports.CLASS_POSITION_RELATIVE = 'driver-position-relative';\nvar CLASS_FIX_STACKING_CONTEXT = exports.CLASS_FIX_STACKING_CONTEXT = 'driver-fix-stacking';\n\nvar CLASS_STAGE_NO_ANIMATION = exports.CLASS_STAGE_NO_ANIMATION = 'driver-stage-no-animation';\nvar CLASS_POPOVER_TIP = exports.CLASS_POPOVER_TIP = 'driver-popover-tip';\nvar CLASS_POPOVER_TITLE = exports.CLASS_POPOVER_TITLE = 'driver-popover-title';\nvar CLASS_POPOVER_DESCRIPTION = exports.CLASS_POPOVER_DESCRIPTION = 'driver-popover-description';\nvar CLASS_POPOVER_FOOTER = exports.CLASS_POPOVER_FOOTER = 'driver-popover-footer';\nvar CLASS_CLOSE_BTN = exports.CLASS_CLOSE_BTN = 'driver-close-btn';\nvar CLASS_NEXT_STEP_BTN = exports.CLASS_NEXT_STEP_BTN = 'driver-next-btn';\nvar CLASS_PREV_STEP_BTN = exports.CLASS_PREV_STEP_BTN = 'driver-prev-btn';\nvar CLASS_BTN_DISABLED = exports.CLASS_BTN_DISABLED = 'driver-disabled';\n\n// It must match the one set in the animations in CSS file\nvar ANIMATION_DURATION_MS = exports.ANIMATION_DURATION_MS = 400;\n\n// language=HTML\nvar POPOVER_HTML = exports.POPOVER_HTML = '\\n

\\n
\\n
Popover Title
\\n
Popover Description
\\n
\\n \\n \\n \\n \\n \\n
\\n
';\n\nvar OVERLAY_HTML = exports.OVERLAY_HTML = '
';\nvar STAGE_HTML = exports.STAGE_HTML = '
';//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvY29tbW9uL2NvbnN0YW50cy5qcz85MTM2Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBPVkVSTEFZX09QQUNJVFkgPSAwLjc1O1xuZXhwb3J0IGNvbnN0IE9WRVJMQVlfUEFERElORyA9IDEwO1xuXG5leHBvcnQgY29uc3QgU0hPVUxEX0FOSU1BVEVfT1ZFUkxBWSA9IHRydWU7XG5leHBvcnQgY29uc3QgU0hPVUxEX09VVFNJREVfQ0xJQ0tfQ0xPU0UgPSB0cnVlO1xuZXhwb3J0IGNvbnN0IEFMTE9XX0tFWUJPQVJEX0NPTlRST0wgPSB0cnVlO1xuZXhwb3J0IGNvbnN0IFNIT1VMRF9PVVRTSURFX0NMSUNLX05FWFQgPSBmYWxzZTtcblxuZXhwb3J0IGNvbnN0IEVTQ19LRVlfQ09ERSA9IDI3O1xuZXhwb3J0IGNvbnN0IExFRlRfS0VZX0NPREUgPSAzNztcbmV4cG9ydCBjb25zdCBSSUdIVF9LRVlfQ09ERSA9IDM5O1xuXG5leHBvcnQgY29uc3QgSURfT1ZFUkxBWSA9ICdkcml2ZXItcGFnZS1vdmVybGF5JztcbmV4cG9ydCBjb25zdCBJRF9TVEFHRSA9ICdkcml2ZXItaGlnaGxpZ2h0ZWQtZWxlbWVudC1zdGFnZSc7XG5leHBvcnQgY29uc3QgSURfUE9QT1ZFUiA9ICdkcml2ZXItcG9wb3Zlci1pdGVtJztcblxuZXhwb3J0IGNvbnN0IENMQVNTX0RSSVZFUl9ISUdITElHSFRFRF9FTEVNRU5UID0gJ2RyaXZlci1oaWdobGlnaHRlZC1lbGVtZW50JztcbmV4cG9ydCBjb25zdCBDTEFTU19QT1NJVElPTl9SRUxBVElWRSA9ICdkcml2ZXItcG9zaXRpb24tcmVsYXRpdmUnO1xuZXhwb3J0IGNvbnN0IENMQVNTX0ZJWF9TVEFDS0lOR19DT05URVhUID0gJ2RyaXZlci1maXgtc3RhY2tpbmcnO1xuXG5leHBvcnQgY29uc3QgQ0xBU1NfU1RBR0VfTk9fQU5JTUFUSU9OID0gJ2RyaXZlci1zdGFnZS1uby1hbmltYXRpb24nO1xuZXhwb3J0IGNvbnN0IENMQVNTX1BPUE9WRVJfVElQID0gJ2RyaXZlci1wb3BvdmVyLXRpcCc7XG5leHBvcnQgY29uc3QgQ0xBU1NfUE9QT1ZFUl9USVRMRSA9ICdkcml2ZXItcG9wb3Zlci10aXRsZSc7XG5leHBvcnQgY29uc3QgQ0xBU1NfUE9QT1ZFUl9ERVNDUklQVElPTiA9ICdkcml2ZXItcG9wb3Zlci1kZXNjcmlwdGlvbic7XG5leHBvcnQgY29uc3QgQ0xBU1NfUE9QT1ZFUl9GT09URVIgPSAnZHJpdmVyLXBvcG92ZXItZm9vdGVyJztcbmV4cG9ydCBjb25zdCBDTEFTU19DTE9TRV9CVE4gPSAnZHJpdmVyLWNsb3NlLWJ0bic7XG5leHBvcnQgY29uc3QgQ0xBU1NfTkVYVF9TVEVQX0JUTiA9ICdkcml2ZXItbmV4dC1idG4nO1xuZXhwb3J0IGNvbnN0IENMQVNTX1BSRVZfU1RFUF9CVE4gPSAnZHJpdmVyLXByZXYtYnRuJztcbmV4cG9ydCBjb25zdCBDTEFTU19CVE5fRElTQUJMRUQgPSAnZHJpdmVyLWRpc2FibGVkJztcblxuLy8gSXQgbXVzdCBtYXRjaCB0aGUgb25lIHNldCBpbiB0aGUgYW5pbWF0aW9ucyBpbiBDU1MgZmlsZVxuZXhwb3J0IGNvbnN0IEFOSU1BVElPTl9EVVJBVElPTl9NUyA9IDQwMDtcblxuLy8gbGFuZ3VhZ2U9SFRNTFxuZXhwb3J0IGNvbnN0IFBPUE9WRVJfSFRNTCA9IGBcbiAgPGRpdiBpZD1cIiR7SURfUE9QT1ZFUn1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiJHtDTEFTU19QT1BPVkVSX1RJUH1cIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiJHtDTEFTU19QT1BPVkVSX1RJVExFfVwiPlBvcG92ZXIgVGl0bGU8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiJHtDTEFTU19QT1BPVkVSX0RFU0NSSVBUSU9OfVwiPlBvcG92ZXIgRGVzY3JpcHRpb248L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiJHtDTEFTU19QT1BPVkVSX0ZPT1RFUn1cIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCIke0NMQVNTX0NMT1NFX0JUTn1cIj5DbG9zZTwvYnV0dG9uPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkcml2ZXItYnRuLWdyb3VwXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCIke0NMQVNTX1BSRVZfU1RFUF9CVE59XCI+JmxhcnI7IFByZXZpb3VzPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCIke0NMQVNTX05FWFRfU1RFUF9CVE59XCI+TmV4dCAmcmFycjs8L2J1dHRvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+YDtcblxuZXhwb3J0IGNvbnN0IE9WRVJMQVlfSFRNTCA9IGA8ZGl2IGlkPVwiJHtJRF9PVkVSTEFZfVwiPjwvZGl2PmA7XG5leHBvcnQgY29uc3QgU1RBR0VfSFRNTCA9IGA8ZGl2IGlkPVwiJHtJRF9TVEFHRX1cIj48L2Rpdj5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWFBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = __webpack_require__(1);\n\nvar _utils = __webpack_require__(0);\n\nvar _position = __webpack_require__(7);\n\nvar _position2 = _interopRequireDefault(_position);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Wrapper around DOMElements to enrich them\n * with the functionality necessary\n */\nvar Element = function () {\n /**\n * DOM element object\n * @param {Node|HTMLElement} node\n * @param {Object} options\n * @param {Popover} popover\n * @param {Stage} stage\n * @param {Overlay} overlay\n * @param {Window} window\n * @param {Document} document\n */\n function Element() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n node = _ref.node,\n options = _ref.options,\n popover = _ref.popover,\n stage = _ref.stage,\n overlay = _ref.overlay,\n window = _ref.window,\n document = _ref.document;\n\n _classCallCheck(this, Element);\n\n this.node = node;\n this.document = document;\n this.window = window;\n this.options = options;\n this.overlay = overlay;\n this.popover = popover;\n this.stage = stage;\n\n this.animationTimeout = null;\n }\n\n /**\n * Checks if the current element is visible in viewport\n * @returns {boolean}\n * @private\n */\n\n\n _createClass(Element, [{\n key: 'isInView',\n value: function isInView() {\n var top = this.node.offsetTop;\n var left = this.node.offsetLeft;\n var width = this.node.offsetWidth;\n var height = this.node.offsetHeight;\n\n var el = this.node;\n\n while (el.offsetParent) {\n el = el.offsetParent;\n top += el.offsetTop;\n left += el.offsetLeft;\n }\n\n return top >= this.window.pageYOffset && left >= this.window.pageXOffset && top + height <= this.window.pageYOffset + this.window.innerHeight && left + width <= this.window.pageXOffset + this.window.innerWidth;\n }\n\n /**\n * Manually scrolls to the position of element if `scrollIntoView` fails\n * @private\n */\n\n }, {\n key: 'scrollManually',\n value: function scrollManually() {\n var elementRect = this.node.getBoundingClientRect();\n var absoluteElementTop = elementRect.top + this.window.pageYOffset;\n var middle = absoluteElementTop - this.window.innerHeight / 2;\n\n this.window.scrollTo(0, middle);\n }\n\n /**\n * Brings the element to middle of the view port if not in view\n * @private\n */\n\n }, {\n key: 'bringInView',\n value: function bringInView() {\n if (this.isInView()) {\n return;\n }\n\n // If browser does not support scrollIntoView\n if (!this.node.scrollIntoView) {\n this.scrollManually();\n return;\n }\n\n try {\n this.node.scrollIntoView(this.options.scrollIntoViewOptions || {\n behavior: 'instant',\n block: 'center'\n });\n } catch (e) {\n // `block` option is not allowed in older versions of firefox, scroll manually\n this.scrollManually();\n }\n }\n\n /**\n * Gets the calculated position on screen, around which\n * we need to draw\n * @public\n */\n\n }, {\n key: 'getCalculatedPosition',\n value: function getCalculatedPosition() {\n var body = this.document.body;\n var documentElement = this.document.documentElement;\n var window = this.window;\n\n var scrollTop = this.window.pageYOffset || documentElement.scrollTop || body.scrollTop;\n var scrollLeft = window.pageXOffset || documentElement.scrollLeft || body.scrollLeft;\n var elementRect = this.node.getBoundingClientRect();\n\n return new _position2.default({\n top: elementRect.top + scrollTop,\n left: elementRect.left + scrollLeft,\n right: elementRect.left + scrollLeft + elementRect.width,\n bottom: elementRect.top + scrollTop + elementRect.height\n });\n }\n\n /**\n * Gets the popover for the current element if any\n * @returns {Popover|*}\n * @public\n */\n\n }, {\n key: 'getPopover',\n value: function getPopover() {\n return this.popover;\n }\n\n /**\n * Is called when element is about to be deselected\n * i.e. when moving the focus to next element of closing\n * @public\n */\n\n }, {\n key: 'onDeselected',\n value: function onDeselected() {\n var hideStage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.hidePopover();\n\n if (hideStage) {\n this.hideStage();\n }\n\n this.removeHighlightClasses();\n\n // If there was any animation in progress, cancel that\n this.window.clearTimeout(this.animationTimeout);\n\n if (this.options.onDeselected) {\n this.options.onDeselected(this);\n }\n }\n\n /**\n * Checks if the given element is same as the current element\n * @param {Element} element\n * @returns {boolean}\n * @public\n */\n\n }, {\n key: 'isSame',\n value: function isSame(element) {\n if (!element || !element.node) {\n return false;\n }\n\n return element.node === this.node;\n }\n\n /**\n * Is called when the element is about to be highlighted\n * @public\n */\n\n }, {\n key: 'onHighlightStarted',\n value: function onHighlightStarted() {\n if (this.options.onHighlightStarted) {\n this.options.onHighlightStarted(this);\n }\n }\n\n /**\n * Is called when the element has been successfully highlighted\n * @public\n */\n\n }, {\n key: 'onHighlighted',\n value: function onHighlighted() {\n this.showPopover();\n this.showStage();\n\n this.addHighlightClasses();\n\n var highlightedElement = this;\n var popoverElement = this.popover;\n\n if (popoverElement && !popoverElement.isInView()) {\n popoverElement.bringInView();\n }\n\n if (!highlightedElement.isInView()) {\n highlightedElement.bringInView();\n }\n\n if (this.options.onHighlighted) {\n this.options.onHighlighted(this);\n }\n }\n\n /**\n * Removes the stacking context fix classes and the highlighter classes\n * @private\n */\n\n }, {\n key: 'removeHighlightClasses',\n value: function removeHighlightClasses() {\n this.node.classList.remove(_constants.CLASS_DRIVER_HIGHLIGHTED_ELEMENT);\n this.node.classList.remove(_constants.CLASS_POSITION_RELATIVE);\n\n var stackFixes = this.document.querySelectorAll('.' + _constants.CLASS_FIX_STACKING_CONTEXT);\n for (var counter = 0; counter < stackFixes.length; counter++) {\n stackFixes[counter].classList.remove(_constants.CLASS_FIX_STACKING_CONTEXT);\n }\n }\n\n /**\n * Adds the highlight class on the current element and \"fixes\"\n * the parent nodes if they\n * @private\n */\n\n }, {\n key: 'addHighlightClasses',\n value: function addHighlightClasses() {\n this.node.classList.add(_constants.CLASS_DRIVER_HIGHLIGHTED_ELEMENT);\n\n // Don't make relative if element already has some position set\n if (this.canMakeRelative()) {\n this.node.classList.add(_constants.CLASS_POSITION_RELATIVE);\n }\n\n // Check and re-define the stacking context\n this.fixStackingContext();\n }\n\n /**\n * Walks through the parents of the current element and fixes\n * the stacking context\n * @private\n */\n\n }, {\n key: 'fixStackingContext',\n value: function fixStackingContext() {\n var parentNode = this.node.parentNode;\n while (parentNode) {\n if (!parentNode.tagName || parentNode.tagName.toLowerCase() === 'body') {\n break;\n }\n\n var zIndex = (0, _utils.getStyleProperty)(parentNode, 'z-index');\n var opacity = parseFloat((0, _utils.getStyleProperty)(parentNode, 'opacity'));\n var transform = (0, _utils.getStyleProperty)(parentNode, 'transform', true);\n var transformStyle = (0, _utils.getStyleProperty)(parentNode, 'transform-style', true);\n var transformBox = (0, _utils.getStyleProperty)(parentNode, 'transform-box', true);\n var filter = (0, _utils.getStyleProperty)(parentNode, 'filter', true);\n var perspective = (0, _utils.getStyleProperty)(parentNode, 'perspective', true);\n\n // Stacking context gets disturbed if\n // - Parent has z-index\n // - Opacity is below 0\n // - Filter/transform or perspective is applied\n if (/[0-9]+/.test(zIndex) || opacity < 1 || transform && transform !== 'none' || transformStyle && transformStyle !== 'flat' || transformBox && transformBox !== 'border-box' || filter && filter !== 'none' || perspective && perspective !== 'none') {\n parentNode.classList.add(_constants.CLASS_FIX_STACKING_CONTEXT);\n }\n\n parentNode = parentNode.parentNode;\n }\n }\n\n /**\n * Checks if we can make the current element relative or not\n * @return {boolean}\n * @private\n */\n\n }, {\n key: 'canMakeRelative',\n value: function canMakeRelative() {\n var currentPosition = this.getStyleProperty('position');\n var avoidPositionsList = ['absolute', 'fixed', 'relative'];\n\n // Because if the element has any of these positions, making it\n // relative will break the UI\n return avoidPositionsList.indexOf(currentPosition) === -1;\n }\n\n /**\n * Get current element's CSS attribute value\n * @param {string} property\n * @returns string\n * @private\n */\n\n }, {\n key: 'getStyleProperty',\n value: function getStyleProperty(property) {\n return (0, _utils.getStyleProperty)(this.node, property);\n }\n\n /**\n * Shows the stage behind the element\n * @public\n */\n\n }, {\n key: 'showStage',\n value: function showStage() {\n this.stage.show(this.getCalculatedPosition());\n }\n\n /**\n * Gets the DOM Element behind this element\n * @returns {Node|HTMLElement|*}\n * @public\n */\n\n }, {\n key: 'getNode',\n value: function getNode() {\n return this.node;\n }\n\n /**\n * Hides the stage\n * @public\n */\n\n }, {\n key: 'hideStage',\n value: function hideStage() {\n this.stage.hide();\n }\n\n /**\n * Hides the popover if possible\n * @public\n */\n\n }, {\n key: 'hidePopover',\n value: function hidePopover() {\n if (!this.popover) {\n return;\n }\n\n this.popover.hide();\n }\n\n /**\n * Shows the popover on the current element\n * @public\n */\n\n }, {\n key: 'showPopover',\n value: function showPopover() {\n var _this = this;\n\n if (!this.popover) {\n return;\n }\n\n var showAtPosition = this.getCalculatedPosition();\n\n // For first highlight, show it immediately because there won't be any animation\n var showAfterMs = _constants.ANIMATION_DURATION_MS;\n // If animation is disabled or if it is the first display, show it immediately\n if (!this.options.animate || !this.overlay.lastHighlightedElement) {\n showAfterMs = 0;\n }\n\n this.animationTimeout = this.window.setTimeout(function () {\n _this.popover.show(showAtPosition);\n }, showAfterMs);\n }\n\n /**\n * @returns {{height: number, width: number}}\n * @public\n */\n\n }, {\n key: 'getFullPageSize',\n value: function getFullPageSize() {\n // eslint-disable-next-line prefer-destructuring\n var body = this.document.body;\n var html = this.document.documentElement;\n\n return {\n height: Math.max(body.scrollHeight, body.offsetHeight, html.scrollHeight, html.offsetHeight),\n width: Math.max(body.scrollWidth, body.offsetWidth, html.scrollWidth, html.offsetWidth)\n };\n }\n\n /**\n * Gets the size for popover\n * @returns {{height: number, width: number}}\n * @public\n */\n\n }, {\n key: 'getSize',\n value: function getSize() {\n return {\n height: Math.max(this.node.scrollHeight, this.node.offsetHeight),\n width: Math.max(this.node.scrollWidth, this.node.offsetWidth)\n };\n }\n }]);\n\n return Element;\n}();\n\nexports.default = Element;\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvY29yZS9lbGVtZW50LmpzPzlkNjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQU5JTUFUSU9OX0RVUkFUSU9OX01TLFxuICBDTEFTU19EUklWRVJfSElHSExJR0hURURfRUxFTUVOVCxcbiAgQ0xBU1NfRklYX1NUQUNLSU5HX0NPTlRFWFQsXG4gIENMQVNTX1BPU0lUSU9OX1JFTEFUSVZFLFxufSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldFN0eWxlUHJvcGVydHkgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IFBvc2l0aW9uIGZyb20gJy4vcG9zaXRpb24nO1xuXG4vKipcbiAqIFdyYXBwZXIgYXJvdW5kIERPTUVsZW1lbnRzIHRvIGVucmljaCB0aGVtXG4gKiB3aXRoIHRoZSBmdW5jdGlvbmFsaXR5IG5lY2Vzc2FyeVxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbGVtZW50IHtcbiAgLyoqXG4gICAqIERPTSBlbGVtZW50IG9iamVjdFxuICAgKiBAcGFyYW0ge05vZGV8SFRNTEVsZW1lbnR9IG5vZGVcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtQb3BvdmVyfSBwb3BvdmVyXG4gICAqIEBwYXJhbSB7U3RhZ2V9IHN0YWdlXG4gICAqIEBwYXJhbSB7T3ZlcmxheX0gb3ZlcmxheVxuICAgKiBAcGFyYW0ge1dpbmRvd30gd2luZG93XG4gICAqIEBwYXJhbSB7RG9jdW1lbnR9IGRvY3VtZW50XG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgbm9kZSxcbiAgICBvcHRpb25zLFxuICAgIHBvcG92ZXIsXG4gICAgc3RhZ2UsXG4gICAgb3ZlcmxheSxcbiAgICB3aW5kb3csXG4gICAgZG9jdW1lbnQsXG4gIH0gPSB7fSkge1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuICAgIHRoaXMud2luZG93ID0gd2luZG93O1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5vdmVybGF5ID0gb3ZlcmxheTtcbiAgICB0aGlzLnBvcG92ZXIgPSBwb3BvdmVyO1xuICAgIHRoaXMuc3RhZ2UgPSBzdGFnZTtcblxuICAgIHRoaXMuYW5pbWF0aW9uVGltZW91dCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgdmlzaWJsZSBpbiB2aWV3cG9ydFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIGlzSW5WaWV3KCkge1xuICAgIGxldCB0b3AgPSB0aGlzLm5vZGUub2Zmc2V0VG9wO1xuICAgIGxldCBsZWZ0ID0gdGhpcy5ub2RlLm9mZnNldExlZnQ7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm5vZGUub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5ub2RlLm9mZnNldEhlaWdodDtcblxuICAgIGxldCBlbCA9IHRoaXMubm9kZTtcblxuICAgIHdoaWxlIChlbC5vZmZzZXRQYXJlbnQpIHtcbiAgICAgIGVsID0gZWwub2Zmc2V0UGFyZW50O1xuICAgICAgdG9wICs9IGVsLm9mZnNldFRvcDtcbiAgICAgIGxlZnQgKz0gZWwub2Zmc2V0TGVmdDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgdG9wID49IHRoaXMud2luZG93LnBhZ2VZT2Zmc2V0ICYmXG4gICAgICBsZWZ0ID49IHRoaXMud2luZG93LnBhZ2VYT2Zmc2V0ICYmXG4gICAgICAodG9wICsgaGVpZ2h0KSA8PSAodGhpcy53aW5kb3cucGFnZVlPZmZzZXQgKyB0aGlzLndpbmRvdy5pbm5lckhlaWdodCkgJiZcbiAgICAgIChsZWZ0ICsgd2lkdGgpIDw9ICh0aGlzLndpbmRvdy5wYWdlWE9mZnNldCArIHRoaXMud2luZG93LmlubmVyV2lkdGgpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW51YWxseSBzY3JvbGxzIHRvIHRoZSBwb3NpdGlvbiBvZiBlbGVtZW50IGlmIGBzY3JvbGxJbnRvVmlld2AgZmFpbHNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHNjcm9sbE1hbnVhbGx5KCkge1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0ID0gdGhpcy5ub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGFic29sdXRlRWxlbWVudFRvcCA9IGVsZW1lbnRSZWN0LnRvcCArIHRoaXMud2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgIGNvbnN0IG1pZGRsZSA9IGFic29sdXRlRWxlbWVudFRvcCAtICh0aGlzLndpbmRvdy5pbm5lckhlaWdodCAvIDIpO1xuXG4gICAgdGhpcy53aW5kb3cuc2Nyb2xsVG8oMCwgbWlkZGxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmluZ3MgdGhlIGVsZW1lbnQgdG8gbWlkZGxlIG9mIHRoZSB2aWV3IHBvcnQgaWYgbm90IGluIHZpZXdcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGJyaW5nSW5WaWV3KCkge1xuICAgIGlmICh0aGlzLmlzSW5WaWV3KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgc2Nyb2xsSW50b1ZpZXdcbiAgICBpZiAoIXRoaXMubm9kZS5zY3JvbGxJbnRvVmlldykge1xuICAgICAgdGhpcy5zY3JvbGxNYW51YWxseSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLm5vZGUuc2Nyb2xsSW50b1ZpZXcodGhpcy5vcHRpb25zLnNjcm9sbEludG9WaWV3T3B0aW9ucyB8fCB7XG4gICAgICAgIGJlaGF2aW9yOiAnaW5zdGFudCcsXG4gICAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGBibG9ja2Agb3B0aW9uIGlzIG5vdCBhbGxvd2VkIGluIG9sZGVyIHZlcnNpb25zIG9mIGZpcmVmb3gsIHNjcm9sbCBtYW51YWxseVxuICAgICAgdGhpcy5zY3JvbGxNYW51YWxseSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjYWxjdWxhdGVkIHBvc2l0aW9uIG9uIHNjcmVlbiwgYXJvdW5kIHdoaWNoXG4gICAqIHdlIG5lZWQgdG8gZHJhd1xuICAgKiBAcHVibGljXG4gICAqL1xuICBnZXRDYWxjdWxhdGVkUG9zaXRpb24oKSB7XG4gICAgY29uc3QgYm9keSA9IHRoaXMuZG9jdW1lbnQuYm9keTtcbiAgICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICBjb25zdCB3aW5kb3cgPSB0aGlzLndpbmRvdztcblxuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMud2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgYm9keS5zY3JvbGxUb3A7XG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHdpbmRvdy5wYWdlWE9mZnNldCB8fCBkb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBib2R5LnNjcm9sbExlZnQ7XG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSB0aGlzLm5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICByZXR1cm4gbmV3IFBvc2l0aW9uKHtcbiAgICAgIHRvcDogZWxlbWVudFJlY3QudG9wICsgc2Nyb2xsVG9wLFxuICAgICAgbGVmdDogZWxlbWVudFJlY3QubGVmdCArIHNjcm9sbExlZnQsXG4gICAgICByaWdodDogZWxlbWVudFJlY3QubGVmdCArIHNjcm9sbExlZnQgKyBlbGVtZW50UmVjdC53aWR0aCxcbiAgICAgIGJvdHRvbTogZWxlbWVudFJlY3QudG9wICsgc2Nyb2xsVG9wICsgZWxlbWVudFJlY3QuaGVpZ2h0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBvcG92ZXIgZm9yIHRoZSBjdXJyZW50IGVsZW1lbnQgaWYgYW55XG4gICAqIEByZXR1cm5zIHtQb3BvdmVyfCp9XG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGdldFBvcG92ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucG9wb3ZlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJcyBjYWxsZWQgd2hlbiBlbGVtZW50IGlzIGFib3V0IHRvIGJlIGRlc2VsZWN0ZWRcbiAgICogaS5lLiB3aGVuIG1vdmluZyB0aGUgZm9jdXMgdG8gbmV4dCBlbGVtZW50IG9mIGNsb3NpbmdcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgb25EZXNlbGVjdGVkKGhpZGVTdGFnZSA9IGZhbHNlKSB7XG4gICAgdGhpcy5oaWRlUG9wb3ZlcigpO1xuXG4gICAgaWYgKGhpZGVTdGFnZSkge1xuICAgICAgdGhpcy5oaWRlU3RhZ2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbW92ZUhpZ2hsaWdodENsYXNzZXMoKTtcblxuICAgIC8vIElmIHRoZXJlIHdhcyBhbnkgYW5pbWF0aW9uIGluIHByb2dyZXNzLCBjYW5jZWwgdGhhdFxuICAgIHRoaXMud2luZG93LmNsZWFyVGltZW91dCh0aGlzLmFuaW1hdGlvblRpbWVvdXQpO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5vbkRlc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5vbkRlc2VsZWN0ZWQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBzYW1lIGFzIHRoZSBjdXJyZW50IGVsZW1lbnRcbiAgICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50XG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKiBAcHVibGljXG4gICAqL1xuICBpc1NhbWUoZWxlbWVudCkge1xuICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5ub2RlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsZW1lbnQubm9kZSA9PT0gdGhpcy5ub2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIElzIGNhbGxlZCB3aGVuIHRoZSBlbGVtZW50IGlzIGFib3V0IHRvIGJlIGhpZ2hsaWdodGVkXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIG9uSGlnaGxpZ2h0U3RhcnRlZCgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLm9uSGlnaGxpZ2h0U3RhcnRlZCkge1xuICAgICAgdGhpcy5vcHRpb25zLm9uSGlnaGxpZ2h0U3RhcnRlZCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXMgY2FsbGVkIHdoZW4gdGhlIGVsZW1lbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGhpZ2hsaWdodGVkXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIG9uSGlnaGxpZ2h0ZWQoKSB7XG4gICAgdGhpcy5zaG93UG9wb3ZlcigpO1xuICAgIHRoaXMuc2hvd1N0YWdlKCk7XG5cbiAgICB0aGlzLmFkZEhpZ2hsaWdodENsYXNzZXMoKTtcblxuICAgIGNvbnN0IGhpZ2hsaWdodGVkRWxlbWVudCA9IHRoaXM7XG4gICAgY29uc3QgcG9wb3ZlckVsZW1lbnQgPSB0aGlzLnBvcG92ZXI7XG5cbiAgICBpZiAocG9wb3ZlckVsZW1lbnQgJiYgIXBvcG92ZXJFbGVtZW50LmlzSW5WaWV3KCkpIHtcbiAgICAgIHBvcG92ZXJFbGVtZW50LmJyaW5nSW5WaWV3KCk7XG4gICAgfVxuXG4gICAgaWYgKCFoaWdobGlnaHRlZEVsZW1lbnQuaXNJblZpZXcoKSkge1xuICAgICAgaGlnaGxpZ2h0ZWRFbGVtZW50LmJyaW5nSW5WaWV3KCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5vbkhpZ2hsaWdodGVkKSB7XG4gICAgICB0aGlzLm9wdGlvbnMub25IaWdobGlnaHRlZCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgc3RhY2tpbmcgY29udGV4dCBmaXggY2xhc3NlcyBhbmQgdGhlIGhpZ2hsaWdodGVyIGNsYXNzZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHJlbW92ZUhpZ2hsaWdodENsYXNzZXMoKSB7XG4gICAgdGhpcy5ub2RlLmNsYXNzTGlzdC5yZW1vdmUoQ0xBU1NfRFJJVkVSX0hJR0hMSUdIVEVEX0VMRU1FTlQpO1xuICAgIHRoaXMubm9kZS5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX1BPU0lUSU9OX1JFTEFUSVZFKTtcblxuICAgIGNvbnN0IHN0YWNrRml4ZXMgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke0NMQVNTX0ZJWF9TVEFDS0lOR19DT05URVhUfWApO1xuICAgIGZvciAobGV0IGNvdW50ZXIgPSAwOyBjb3VudGVyIDwgc3RhY2tGaXhlcy5sZW5ndGg7IGNvdW50ZXIrKykge1xuICAgICAgc3RhY2tGaXhlc1tjb3VudGVyXS5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX0ZJWF9TVEFDS0lOR19DT05URVhUKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGUgaGlnaGxpZ2h0IGNsYXNzIG9uIHRoZSBjdXJyZW50IGVsZW1lbnQgYW5kIFwiZml4ZXNcIlxuICAgKiB0aGUgcGFyZW50IG5vZGVzIGlmIHRoZXlcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGFkZEhpZ2hsaWdodENsYXNzZXMoKSB7XG4gICAgdGhpcy5ub2RlLmNsYXNzTGlzdC5hZGQoQ0xBU1NfRFJJVkVSX0hJR0hMSUdIVEVEX0VMRU1FTlQpO1xuXG4gICAgLy8gRG9uJ3QgbWFrZSByZWxhdGl2ZSBpZiBlbGVtZW50IGFscmVhZHkgaGFzIHNvbWUgcG9zaXRpb24gc2V0XG4gICAgaWYgKHRoaXMuY2FuTWFrZVJlbGF0aXZlKCkpIHtcbiAgICAgIHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKENMQVNTX1BPU0lUSU9OX1JFTEFUSVZFKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBhbmQgcmUtZGVmaW5lIHRoZSBzdGFja2luZyBjb250ZXh0XG4gICAgdGhpcy5maXhTdGFja2luZ0NvbnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXYWxrcyB0aHJvdWdoIHRoZSBwYXJlbnRzIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQgYW5kIGZpeGVzXG4gICAqIHRoZSBzdGFja2luZyBjb250ZXh0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBmaXhTdGFja2luZ0NvbnRleHQoKSB7XG4gICAgbGV0IHBhcmVudE5vZGUgPSB0aGlzLm5vZGUucGFyZW50Tm9kZTtcbiAgICB3aGlsZSAocGFyZW50Tm9kZSkge1xuICAgICAgaWYgKCFwYXJlbnROb2RlLnRhZ05hbWUgfHwgcGFyZW50Tm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdib2R5Jykge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY29uc3QgekluZGV4ID0gZ2V0U3R5bGVQcm9wZXJ0eShwYXJlbnROb2RlLCAnei1pbmRleCcpO1xuICAgICAgY29uc3Qgb3BhY2l0eSA9IHBhcnNlRmxvYXQoZ2V0U3R5bGVQcm9wZXJ0eShwYXJlbnROb2RlLCAnb3BhY2l0eScpKTtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybSA9IGdldFN0eWxlUHJvcGVydHkocGFyZW50Tm9kZSwgJ3RyYW5zZm9ybScsIHRydWUpO1xuICAgICAgY29uc3QgdHJhbnNmb3JtU3R5bGUgPSBnZXRTdHlsZVByb3BlcnR5KHBhcmVudE5vZGUsICd0cmFuc2Zvcm0tc3R5bGUnLCB0cnVlKTtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybUJveCA9IGdldFN0eWxlUHJvcGVydHkocGFyZW50Tm9kZSwgJ3RyYW5zZm9ybS1ib3gnLCB0cnVlKTtcbiAgICAgIGNvbnN0IGZpbHRlciA9IGdldFN0eWxlUHJvcGVydHkocGFyZW50Tm9kZSwgJ2ZpbHRlcicsIHRydWUpO1xuICAgICAgY29uc3QgcGVyc3BlY3RpdmUgPSBnZXRTdHlsZVByb3BlcnR5KHBhcmVudE5vZGUsICdwZXJzcGVjdGl2ZScsIHRydWUpO1xuXG4gICAgICAvLyBTdGFja2luZyBjb250ZXh0IGdldHMgZGlzdHVyYmVkIGlmXG4gICAgICAvLyAtIFBhcmVudCBoYXMgei1pbmRleFxuICAgICAgLy8gLSBPcGFjaXR5IGlzIGJlbG93IDBcbiAgICAgIC8vIC0gRmlsdGVyL3RyYW5zZm9ybSBvciBwZXJzcGVjdGl2ZSBpcyBhcHBsaWVkXG4gICAgICBpZiAoXG4gICAgICAgIC9bMC05XSsvLnRlc3QoekluZGV4KSB8fFxuICAgICAgICBvcGFjaXR5IDwgMSB8fFxuICAgICAgICAodHJhbnNmb3JtICYmIHRyYW5zZm9ybSAhPT0gJ25vbmUnKSB8fFxuICAgICAgICAodHJhbnNmb3JtU3R5bGUgJiYgdHJhbnNmb3JtU3R5bGUgIT09ICdmbGF0JykgfHxcbiAgICAgICAgKHRyYW5zZm9ybUJveCAmJiB0cmFuc2Zvcm1Cb3ggIT09ICdib3JkZXItYm94JykgfHxcbiAgICAgICAgKGZpbHRlciAmJiBmaWx0ZXIgIT09ICdub25lJykgfHxcbiAgICAgICAgKHBlcnNwZWN0aXZlICYmIHBlcnNwZWN0aXZlICE9PSAnbm9uZScpXG4gICAgICApIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jbGFzc0xpc3QuYWRkKENMQVNTX0ZJWF9TVEFDS0lOR19DT05URVhUKTtcbiAgICAgIH1cblxuICAgICAgcGFyZW50Tm9kZSA9IHBhcmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHdlIGNhbiBtYWtlIHRoZSBjdXJyZW50IGVsZW1lbnQgcmVsYXRpdmUgb3Igbm90XG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBjYW5NYWtlUmVsYXRpdmUoKSB7XG4gICAgY29uc3QgY3VycmVudFBvc2l0aW9uID0gdGhpcy5nZXRTdHlsZVByb3BlcnR5KCdwb3NpdGlvbicpO1xuICAgIGNvbnN0IGF2b2lkUG9zaXRpb25zTGlzdCA9IFsnYWJzb2x1dGUnLCAnZml4ZWQnLCAncmVsYXRpdmUnXTtcblxuICAgIC8vIEJlY2F1c2UgaWYgdGhlIGVsZW1lbnQgaGFzIGFueSBvZiB0aGVzZSBwb3NpdGlvbnMsIG1ha2luZyBpdFxuICAgIC8vIHJlbGF0aXZlIHdpbGwgYnJlYWsgdGhlIFVJXG4gICAgcmV0dXJuIGF2b2lkUG9zaXRpb25zTGlzdC5pbmRleE9mKGN1cnJlbnRQb3NpdGlvbikgPT09IC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IGVsZW1lbnQncyBDU1MgYXR0cmlidXRlIHZhbHVlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eVxuICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICogQHByaXZhdGVcbiAgICovXG4gIGdldFN0eWxlUHJvcGVydHkocHJvcGVydHkpIHtcbiAgICByZXR1cm4gZ2V0U3R5bGVQcm9wZXJ0eSh0aGlzLm5vZGUsIHByb3BlcnR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgc3RhZ2UgYmVoaW5kIHRoZSBlbGVtZW50XG4gICAqIEBwdWJsaWNcbiAgICovXG4gIHNob3dTdGFnZSgpIHtcbiAgICB0aGlzLnN0YWdlLnNob3codGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgRE9NIEVsZW1lbnQgYmVoaW5kIHRoaXMgZWxlbWVudFxuICAgKiBAcmV0dXJucyB7Tm9kZXxIVE1MRWxlbWVudHwqfVxuICAgKiBAcHVibGljXG4gICAqL1xuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICAvKipcbiAgICogSGlkZXMgdGhlIHN0YWdlXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGhpZGVTdGFnZSgpIHtcbiAgICB0aGlzLnN0YWdlLmhpZGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgcG9wb3ZlciBpZiBwb3NzaWJsZVxuICAgKiBAcHVibGljXG4gICAqL1xuICBoaWRlUG9wb3ZlcigpIHtcbiAgICBpZiAoIXRoaXMucG9wb3Zlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucG9wb3Zlci5oaWRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIHBvcG92ZXIgb24gdGhlIGN1cnJlbnQgZWxlbWVudFxuICAgKiBAcHVibGljXG4gICAqL1xuICBzaG93UG9wb3ZlcigpIHtcbiAgICBpZiAoIXRoaXMucG9wb3Zlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3dBdFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oKTtcblxuICAgIC8vIEZvciBmaXJzdCBoaWdobGlnaHQsIHNob3cgaXQgaW1tZWRpYXRlbHkgYmVjYXVzZSB0aGVyZSB3b24ndCBiZSBhbnkgYW5pbWF0aW9uXG4gICAgbGV0IHNob3dBZnRlck1zID0gQU5JTUFUSU9OX0RVUkFUSU9OX01TO1xuICAgIC8vIElmIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCBvciAgaWYgaXQgaXMgdGhlIGZpcnN0IGRpc3BsYXksIHNob3cgaXQgaW1tZWRpYXRlbHlcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hbmltYXRlIHx8ICF0aGlzLm92ZXJsYXkubGFzdEhpZ2hsaWdodGVkRWxlbWVudCkge1xuICAgICAgc2hvd0FmdGVyTXMgPSAwO1xuICAgIH1cblxuICAgIHRoaXMuYW5pbWF0aW9uVGltZW91dCA9IHRoaXMud2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5wb3BvdmVyLnNob3coc2hvd0F0UG9zaXRpb24pO1xuICAgIH0sIHNob3dBZnRlck1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7e2hlaWdodDogbnVtYmVyLCB3aWR0aDogbnVtYmVyfX1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0RnVsbFBhZ2VTaXplKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItZGVzdHJ1Y3R1cmluZ1xuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmRvY3VtZW50LmJvZHk7XG4gICAgY29uc3QgaHRtbCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGhlaWdodDogTWF0aC5tYXgoYm9keS5zY3JvbGxIZWlnaHQsIGJvZHkub2Zmc2V0SGVpZ2h0LCBodG1sLnNjcm9sbEhlaWdodCwgaHRtbC5vZmZzZXRIZWlnaHQpLFxuICAgICAgd2lkdGg6IE1hdGgubWF4KGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkub2Zmc2V0V2lkdGgsIGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwub2Zmc2V0V2lkdGgpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2l6ZSBmb3IgcG9wb3ZlclxuICAgKiBAcmV0dXJucyB7e2hlaWdodDogbnVtYmVyLCB3aWR0aDogbnVtYmVyfX1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0U2l6ZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaGVpZ2h0OiBNYXRoLm1heCh0aGlzLm5vZGUuc2Nyb2xsSGVpZ2h0LCB0aGlzLm5vZGUub2Zmc2V0SGVpZ2h0KSxcbiAgICAgIHdpZHRoOiBNYXRoLm1heCh0aGlzLm5vZGUuc2Nyb2xsV2lkdGgsIHRoaXMubm9kZS5vZmZzZXRXaWR0aCksXG4gICAgfTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFLQTtBQUNBO0FBQUE7QUFDQTs7Ozs7OztBQUNBOzs7O0FBSUE7QUFDQTs7Ozs7Ozs7OztBQVVBO0FBUUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBREE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBSUE7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTs7Ozs7O0FBM1hBO0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2\n")},function(module,exports){eval("var ENTITIES = [['Aacute', [193]], ['aacute', [225]], ['Abreve', [258]], ['abreve', [259]], ['ac', [8766]], ['acd', [8767]], ['acE', [8766, 819]], ['Acirc', [194]], ['acirc', [226]], ['acute', [180]], ['Acy', [1040]], ['acy', [1072]], ['AElig', [198]], ['aelig', [230]], ['af', [8289]], ['Afr', [120068]], ['afr', [120094]], ['Agrave', [192]], ['agrave', [224]], ['alefsym', [8501]], ['aleph', [8501]], ['Alpha', [913]], ['alpha', [945]], ['Amacr', [256]], ['amacr', [257]], ['amalg', [10815]], ['amp', [38]], ['AMP', [38]], ['andand', [10837]], ['And', [10835]], ['and', [8743]], ['andd', [10844]], ['andslope', [10840]], ['andv', [10842]], ['ang', [8736]], ['ange', [10660]], ['angle', [8736]], ['angmsdaa', [10664]], ['angmsdab', [10665]], ['angmsdac', [10666]], ['angmsdad', [10667]], ['angmsdae', [10668]], ['angmsdaf', [10669]], ['angmsdag', [10670]], ['angmsdah', [10671]], ['angmsd', [8737]], ['angrt', [8735]], ['angrtvb', [8894]], ['angrtvbd', [10653]], ['angsph', [8738]], ['angst', [197]], ['angzarr', [9084]], ['Aogon', [260]], ['aogon', [261]], ['Aopf', [120120]], ['aopf', [120146]], ['apacir', [10863]], ['ap', [8776]], ['apE', [10864]], ['ape', [8778]], ['apid', [8779]], ['apos', [39]], ['ApplyFunction', [8289]], ['approx', [8776]], ['approxeq', [8778]], ['Aring', [197]], ['aring', [229]], ['Ascr', [119964]], ['ascr', [119990]], ['Assign', [8788]], ['ast', [42]], ['asymp', [8776]], ['asympeq', [8781]], ['Atilde', [195]], ['atilde', [227]], ['Auml', [196]], ['auml', [228]], ['awconint', [8755]], ['awint', [10769]], ['backcong', [8780]], ['backepsilon', [1014]], ['backprime', [8245]], ['backsim', [8765]], ['backsimeq', [8909]], ['Backslash', [8726]], ['Barv', [10983]], ['barvee', [8893]], ['barwed', [8965]], ['Barwed', [8966]], ['barwedge', [8965]], ['bbrk', [9141]], ['bbrktbrk', [9142]], ['bcong', [8780]], ['Bcy', [1041]], ['bcy', [1073]], ['bdquo', [8222]], ['becaus', [8757]], ['because', [8757]], ['Because', [8757]], ['bemptyv', [10672]], ['bepsi', [1014]], ['bernou', [8492]], ['Bernoullis', [8492]], ['Beta', [914]], ['beta', [946]], ['beth', [8502]], ['between', [8812]], ['Bfr', [120069]], ['bfr', [120095]], ['bigcap', [8898]], ['bigcirc', [9711]], ['bigcup', [8899]], ['bigodot', [10752]], ['bigoplus', [10753]], ['bigotimes', [10754]], ['bigsqcup', [10758]], ['bigstar', [9733]], ['bigtriangledown', [9661]], ['bigtriangleup', [9651]], ['biguplus', [10756]], ['bigvee', [8897]], ['bigwedge', [8896]], ['bkarow', [10509]], ['blacklozenge', [10731]], ['blacksquare', [9642]], ['blacktriangle', [9652]], ['blacktriangledown', [9662]], ['blacktriangleleft', [9666]], ['blacktriangleright', [9656]], ['blank', [9251]], ['blk12', [9618]], ['blk14', [9617]], ['blk34', [9619]], ['block', [9608]], ['bne', [61, 8421]], ['bnequiv', [8801, 8421]], ['bNot', [10989]], ['bnot', [8976]], ['Bopf', [120121]], ['bopf', [120147]], ['bot', [8869]], ['bottom', [8869]], ['bowtie', [8904]], ['boxbox', [10697]], ['boxdl', [9488]], ['boxdL', [9557]], ['boxDl', [9558]], ['boxDL', [9559]], ['boxdr', [9484]], ['boxdR', [9554]], ['boxDr', [9555]], ['boxDR', [9556]], ['boxh', [9472]], ['boxH', [9552]], ['boxhd', [9516]], ['boxHd', [9572]], ['boxhD', [9573]], ['boxHD', [9574]], ['boxhu', [9524]], ['boxHu', [9575]], ['boxhU', [9576]], ['boxHU', [9577]], ['boxminus', [8863]], ['boxplus', [8862]], ['boxtimes', [8864]], ['boxul', [9496]], ['boxuL', [9563]], ['boxUl', [9564]], ['boxUL', [9565]], ['boxur', [9492]], ['boxuR', [9560]], ['boxUr', [9561]], ['boxUR', [9562]], ['boxv', [9474]], ['boxV', [9553]], ['boxvh', [9532]], ['boxvH', [9578]], ['boxVh', [9579]], ['boxVH', [9580]], ['boxvl', [9508]], ['boxvL', [9569]], ['boxVl', [9570]], ['boxVL', [9571]], ['boxvr', [9500]], ['boxvR', [9566]], ['boxVr', [9567]], ['boxVR', [9568]], ['bprime', [8245]], ['breve', [728]], ['Breve', [728]], ['brvbar', [166]], ['bscr', [119991]], ['Bscr', [8492]], ['bsemi', [8271]], ['bsim', [8765]], ['bsime', [8909]], ['bsolb', [10693]], ['bsol', [92]], ['bsolhsub', [10184]], ['bull', [8226]], ['bullet', [8226]], ['bump', [8782]], ['bumpE', [10926]], ['bumpe', [8783]], ['Bumpeq', [8782]], ['bumpeq', [8783]], ['Cacute', [262]], ['cacute', [263]], ['capand', [10820]], ['capbrcup', [10825]], ['capcap', [10827]], ['cap', [8745]], ['Cap', [8914]], ['capcup', [10823]], ['capdot', [10816]], ['CapitalDifferentialD', [8517]], ['caps', [8745, 65024]], ['caret', [8257]], ['caron', [711]], ['Cayleys', [8493]], ['ccaps', [10829]], ['Ccaron', [268]], ['ccaron', [269]], ['Ccedil', [199]], ['ccedil', [231]], ['Ccirc', [264]], ['ccirc', [265]], ['Cconint', [8752]], ['ccups', [10828]], ['ccupssm', [10832]], ['Cdot', [266]], ['cdot', [267]], ['cedil', [184]], ['Cedilla', [184]], ['cemptyv', [10674]], ['cent', [162]], ['centerdot', [183]], ['CenterDot', [183]], ['cfr', [120096]], ['Cfr', [8493]], ['CHcy', [1063]], ['chcy', [1095]], ['check', [10003]], ['checkmark', [10003]], ['Chi', [935]], ['chi', [967]], ['circ', [710]], ['circeq', [8791]], ['circlearrowleft', [8634]], ['circlearrowright', [8635]], ['circledast', [8859]], ['circledcirc', [8858]], ['circleddash', [8861]], ['CircleDot', [8857]], ['circledR', [174]], ['circledS', [9416]], ['CircleMinus', [8854]], ['CirclePlus', [8853]], ['CircleTimes', [8855]], ['cir', [9675]], ['cirE', [10691]], ['cire', [8791]], ['cirfnint', [10768]], ['cirmid', [10991]], ['cirscir', [10690]], ['ClockwiseContourIntegral', [8754]], ['clubs', [9827]], ['clubsuit', [9827]], ['colon', [58]], ['Colon', [8759]], ['Colone', [10868]], ['colone', [8788]], ['coloneq', [8788]], ['comma', [44]], ['commat', [64]], ['comp', [8705]], ['compfn', [8728]], ['complement', [8705]], ['complexes', [8450]], ['cong', [8773]], ['congdot', [10861]], ['Congruent', [8801]], ['conint', [8750]], ['Conint', [8751]], ['ContourIntegral', [8750]], ['copf', [120148]], ['Copf', [8450]], ['coprod', [8720]], ['Coproduct', [8720]], ['copy', [169]], ['COPY', [169]], ['copysr', [8471]], ['CounterClockwiseContourIntegral', [8755]], ['crarr', [8629]], ['cross', [10007]], ['Cross', [10799]], ['Cscr', [119966]], ['cscr', [119992]], ['csub', [10959]], ['csube', [10961]], ['csup', [10960]], ['csupe', [10962]], ['ctdot', [8943]], ['cudarrl', [10552]], ['cudarrr', [10549]], ['cuepr', [8926]], ['cuesc', [8927]], ['cularr', [8630]], ['cularrp', [10557]], ['cupbrcap', [10824]], ['cupcap', [10822]], ['CupCap', [8781]], ['cup', [8746]], ['Cup', [8915]], ['cupcup', [10826]], ['cupdot', [8845]], ['cupor', [10821]], ['cups', [8746, 65024]], ['curarr', [8631]], ['curarrm', [10556]], ['curlyeqprec', [8926]], ['curlyeqsucc', [8927]], ['curlyvee', [8910]], ['curlywedge', [8911]], ['curren', [164]], ['curvearrowleft', [8630]], ['curvearrowright', [8631]], ['cuvee', [8910]], ['cuwed', [8911]], ['cwconint', [8754]], ['cwint', [8753]], ['cylcty', [9005]], ['dagger', [8224]], ['Dagger', [8225]], ['daleth', [8504]], ['darr', [8595]], ['Darr', [8609]], ['dArr', [8659]], ['dash', [8208]], ['Dashv', [10980]], ['dashv', [8867]], ['dbkarow', [10511]], ['dblac', [733]], ['Dcaron', [270]], ['dcaron', [271]], ['Dcy', [1044]], ['dcy', [1076]], ['ddagger', [8225]], ['ddarr', [8650]], ['DD', [8517]], ['dd', [8518]], ['DDotrahd', [10513]], ['ddotseq', [10871]], ['deg', [176]], ['Del', [8711]], ['Delta', [916]], ['delta', [948]], ['demptyv', [10673]], ['dfisht', [10623]], ['Dfr', [120071]], ['dfr', [120097]], ['dHar', [10597]], ['dharl', [8643]], ['dharr', [8642]], ['DiacriticalAcute', [180]], ['DiacriticalDot', [729]], ['DiacriticalDoubleAcute', [733]], ['DiacriticalGrave', [96]], ['DiacriticalTilde', [732]], ['diam', [8900]], ['diamond', [8900]], ['Diamond', [8900]], ['diamondsuit', [9830]], ['diams', [9830]], ['die', [168]], ['DifferentialD', [8518]], ['digamma', [989]], ['disin', [8946]], ['div', [247]], ['divide', [247]], ['divideontimes', [8903]], ['divonx', [8903]], ['DJcy', [1026]], ['djcy', [1106]], ['dlcorn', [8990]], ['dlcrop', [8973]], ['dollar', [36]], ['Dopf', [120123]], ['dopf', [120149]], ['Dot', [168]], ['dot', [729]], ['DotDot', [8412]], ['doteq', [8784]], ['doteqdot', [8785]], ['DotEqual', [8784]], ['dotminus', [8760]], ['dotplus', [8724]], ['dotsquare', [8865]], ['doublebarwedge', [8966]], ['DoubleContourIntegral', [8751]], ['DoubleDot', [168]], ['DoubleDownArrow', [8659]], ['DoubleLeftArrow', [8656]], ['DoubleLeftRightArrow', [8660]], ['DoubleLeftTee', [10980]], ['DoubleLongLeftArrow', [10232]], ['DoubleLongLeftRightArrow', [10234]], ['DoubleLongRightArrow', [10233]], ['DoubleRightArrow', [8658]], ['DoubleRightTee', [8872]], ['DoubleUpArrow', [8657]], ['DoubleUpDownArrow', [8661]], ['DoubleVerticalBar', [8741]], ['DownArrowBar', [10515]], ['downarrow', [8595]], ['DownArrow', [8595]], ['Downarrow', [8659]], ['DownArrowUpArrow', [8693]], ['DownBreve', [785]], ['downdownarrows', [8650]], ['downharpoonleft', [8643]], ['downharpoonright', [8642]], ['DownLeftRightVector', [10576]], ['DownLeftTeeVector', [10590]], ['DownLeftVectorBar', [10582]], ['DownLeftVector', [8637]], ['DownRightTeeVector', [10591]], ['DownRightVectorBar', [10583]], ['DownRightVector', [8641]], ['DownTeeArrow', [8615]], ['DownTee', [8868]], ['drbkarow', [10512]], ['drcorn', [8991]], ['drcrop', [8972]], ['Dscr', [119967]], ['dscr', [119993]], ['DScy', [1029]], ['dscy', [1109]], ['dsol', [10742]], ['Dstrok', [272]], ['dstrok', [273]], ['dtdot', [8945]], ['dtri', [9663]], ['dtrif', [9662]], ['duarr', [8693]], ['duhar', [10607]], ['dwangle', [10662]], ['DZcy', [1039]], ['dzcy', [1119]], ['dzigrarr', [10239]], ['Eacute', [201]], ['eacute', [233]], ['easter', [10862]], ['Ecaron', [282]], ['ecaron', [283]], ['Ecirc', [202]], ['ecirc', [234]], ['ecir', [8790]], ['ecolon', [8789]], ['Ecy', [1069]], ['ecy', [1101]], ['eDDot', [10871]], ['Edot', [278]], ['edot', [279]], ['eDot', [8785]], ['ee', [8519]], ['efDot', [8786]], ['Efr', [120072]], ['efr', [120098]], ['eg', [10906]], ['Egrave', [200]], ['egrave', [232]], ['egs', [10902]], ['egsdot', [10904]], ['el', [10905]], ['Element', [8712]], ['elinters', [9191]], ['ell', [8467]], ['els', [10901]], ['elsdot', [10903]], ['Emacr', [274]], ['emacr', [275]], ['empty', [8709]], ['emptyset', [8709]], ['EmptySmallSquare', [9723]], ['emptyv', [8709]], ['EmptyVerySmallSquare', [9643]], ['emsp13', [8196]], ['emsp14', [8197]], ['emsp', [8195]], ['ENG', [330]], ['eng', [331]], ['ensp', [8194]], ['Eogon', [280]], ['eogon', [281]], ['Eopf', [120124]], ['eopf', [120150]], ['epar', [8917]], ['eparsl', [10723]], ['eplus', [10865]], ['epsi', [949]], ['Epsilon', [917]], ['epsilon', [949]], ['epsiv', [1013]], ['eqcirc', [8790]], ['eqcolon', [8789]], ['eqsim', [8770]], ['eqslantgtr', [10902]], ['eqslantless', [10901]], ['Equal', [10869]], ['equals', [61]], ['EqualTilde', [8770]], ['equest', [8799]], ['Equilibrium', [8652]], ['equiv', [8801]], ['equivDD', [10872]], ['eqvparsl', [10725]], ['erarr', [10609]], ['erDot', [8787]], ['escr', [8495]], ['Escr', [8496]], ['esdot', [8784]], ['Esim', [10867]], ['esim', [8770]], ['Eta', [919]], ['eta', [951]], ['ETH', [208]], ['eth', [240]], ['Euml', [203]], ['euml', [235]], ['euro', [8364]], ['excl', [33]], ['exist', [8707]], ['Exists', [8707]], ['expectation', [8496]], ['exponentiale', [8519]], ['ExponentialE', [8519]], ['fallingdotseq', [8786]], ['Fcy', [1060]], ['fcy', [1092]], ['female', [9792]], ['ffilig', [64259]], ['fflig', [64256]], ['ffllig', [64260]], ['Ffr', [120073]], ['ffr', [120099]], ['filig', [64257]], ['FilledSmallSquare', [9724]], ['FilledVerySmallSquare', [9642]], ['fjlig', [102, 106]], ['flat', [9837]], ['fllig', [64258]], ['fltns', [9649]], ['fnof', [402]], ['Fopf', [120125]], ['fopf', [120151]], ['forall', [8704]], ['ForAll', [8704]], ['fork', [8916]], ['forkv', [10969]], ['Fouriertrf', [8497]], ['fpartint', [10765]], ['frac12', [189]], ['frac13', [8531]], ['frac14', [188]], ['frac15', [8533]], ['frac16', [8537]], ['frac18', [8539]], ['frac23', [8532]], ['frac25', [8534]], ['frac34', [190]], ['frac35', [8535]], ['frac38', [8540]], ['frac45', [8536]], ['frac56', [8538]], ['frac58', [8541]], ['frac78', [8542]], ['frasl', [8260]], ['frown', [8994]], ['fscr', [119995]], ['Fscr', [8497]], ['gacute', [501]], ['Gamma', [915]], ['gamma', [947]], ['Gammad', [988]], ['gammad', [989]], ['gap', [10886]], ['Gbreve', [286]], ['gbreve', [287]], ['Gcedil', [290]], ['Gcirc', [284]], ['gcirc', [285]], ['Gcy', [1043]], ['gcy', [1075]], ['Gdot', [288]], ['gdot', [289]], ['ge', [8805]], ['gE', [8807]], ['gEl', [10892]], ['gel', [8923]], ['geq', [8805]], ['geqq', [8807]], ['geqslant', [10878]], ['gescc', [10921]], ['ges', [10878]], ['gesdot', [10880]], ['gesdoto', [10882]], ['gesdotol', [10884]], ['gesl', [8923, 65024]], ['gesles', [10900]], ['Gfr', [120074]], ['gfr', [120100]], ['gg', [8811]], ['Gg', [8921]], ['ggg', [8921]], ['gimel', [8503]], ['GJcy', [1027]], ['gjcy', [1107]], ['gla', [10917]], ['gl', [8823]], ['glE', [10898]], ['glj', [10916]], ['gnap', [10890]], ['gnapprox', [10890]], ['gne', [10888]], ['gnE', [8809]], ['gneq', [10888]], ['gneqq', [8809]], ['gnsim', [8935]], ['Gopf', [120126]], ['gopf', [120152]], ['grave', [96]], ['GreaterEqual', [8805]], ['GreaterEqualLess', [8923]], ['GreaterFullEqual', [8807]], ['GreaterGreater', [10914]], ['GreaterLess', [8823]], ['GreaterSlantEqual', [10878]], ['GreaterTilde', [8819]], ['Gscr', [119970]], ['gscr', [8458]], ['gsim', [8819]], ['gsime', [10894]], ['gsiml', [10896]], ['gtcc', [10919]], ['gtcir', [10874]], ['gt', [62]], ['GT', [62]], ['Gt', [8811]], ['gtdot', [8919]], ['gtlPar', [10645]], ['gtquest', [10876]], ['gtrapprox', [10886]], ['gtrarr', [10616]], ['gtrdot', [8919]], ['gtreqless', [8923]], ['gtreqqless', [10892]], ['gtrless', [8823]], ['gtrsim', [8819]], ['gvertneqq', [8809, 65024]], ['gvnE', [8809, 65024]], ['Hacek', [711]], ['hairsp', [8202]], ['half', [189]], ['hamilt', [8459]], ['HARDcy', [1066]], ['hardcy', [1098]], ['harrcir', [10568]], ['harr', [8596]], ['hArr', [8660]], ['harrw', [8621]], ['Hat', [94]], ['hbar', [8463]], ['Hcirc', [292]], ['hcirc', [293]], ['hearts', [9829]], ['heartsuit', [9829]], ['hellip', [8230]], ['hercon', [8889]], ['hfr', [120101]], ['Hfr', [8460]], ['HilbertSpace', [8459]], ['hksearow', [10533]], ['hkswarow', [10534]], ['hoarr', [8703]], ['homtht', [8763]], ['hookleftarrow', [8617]], ['hookrightarrow', [8618]], ['hopf', [120153]], ['Hopf', [8461]], ['horbar', [8213]], ['HorizontalLine', [9472]], ['hscr', [119997]], ['Hscr', [8459]], ['hslash', [8463]], ['Hstrok', [294]], ['hstrok', [295]], ['HumpDownHump', [8782]], ['HumpEqual', [8783]], ['hybull', [8259]], ['hyphen', [8208]], ['Iacute', [205]], ['iacute', [237]], ['ic', [8291]], ['Icirc', [206]], ['icirc', [238]], ['Icy', [1048]], ['icy', [1080]], ['Idot', [304]], ['IEcy', [1045]], ['iecy', [1077]], ['iexcl', [161]], ['iff', [8660]], ['ifr', [120102]], ['Ifr', [8465]], ['Igrave', [204]], ['igrave', [236]], ['ii', [8520]], ['iiiint', [10764]], ['iiint', [8749]], ['iinfin', [10716]], ['iiota', [8489]], ['IJlig', [306]], ['ijlig', [307]], ['Imacr', [298]], ['imacr', [299]], ['image', [8465]], ['ImaginaryI', [8520]], ['imagline', [8464]], ['imagpart', [8465]], ['imath', [305]], ['Im', [8465]], ['imof', [8887]], ['imped', [437]], ['Implies', [8658]], ['incare', [8453]], ['in', [8712]], ['infin', [8734]], ['infintie', [10717]], ['inodot', [305]], ['intcal', [8890]], ['int', [8747]], ['Int', [8748]], ['integers', [8484]], ['Integral', [8747]], ['intercal', [8890]], ['Intersection', [8898]], ['intlarhk', [10775]], ['intprod', [10812]], ['InvisibleComma', [8291]], ['InvisibleTimes', [8290]], ['IOcy', [1025]], ['iocy', [1105]], ['Iogon', [302]], ['iogon', [303]], ['Iopf', [120128]], ['iopf', [120154]], ['Iota', [921]], ['iota', [953]], ['iprod', [10812]], ['iquest', [191]], ['iscr', [119998]], ['Iscr', [8464]], ['isin', [8712]], ['isindot', [8949]], ['isinE', [8953]], ['isins', [8948]], ['isinsv', [8947]], ['isinv', [8712]], ['it', [8290]], ['Itilde', [296]], ['itilde', [297]], ['Iukcy', [1030]], ['iukcy', [1110]], ['Iuml', [207]], ['iuml', [239]], ['Jcirc', [308]], ['jcirc', [309]], ['Jcy', [1049]], ['jcy', [1081]], ['Jfr', [120077]], ['jfr', [120103]], ['jmath', [567]], ['Jopf', [120129]], ['jopf', [120155]], ['Jscr', [119973]], ['jscr', [119999]], ['Jsercy', [1032]], ['jsercy', [1112]], ['Jukcy', [1028]], ['jukcy', [1108]], ['Kappa', [922]], ['kappa', [954]], ['kappav', [1008]], ['Kcedil', [310]], ['kcedil', [311]], ['Kcy', [1050]], ['kcy', [1082]], ['Kfr', [120078]], ['kfr', [120104]], ['kgreen', [312]], ['KHcy', [1061]], ['khcy', [1093]], ['KJcy', [1036]], ['kjcy', [1116]], ['Kopf', [120130]], ['kopf', [120156]], ['Kscr', [119974]], ['kscr', [120000]], ['lAarr', [8666]], ['Lacute', [313]], ['lacute', [314]], ['laemptyv', [10676]], ['lagran', [8466]], ['Lambda', [923]], ['lambda', [955]], ['lang', [10216]], ['Lang', [10218]], ['langd', [10641]], ['langle', [10216]], ['lap', [10885]], ['Laplacetrf', [8466]], ['laquo', [171]], ['larrb', [8676]], ['larrbfs', [10527]], ['larr', [8592]], ['Larr', [8606]], ['lArr', [8656]], ['larrfs', [10525]], ['larrhk', [8617]], ['larrlp', [8619]], ['larrpl', [10553]], ['larrsim', [10611]], ['larrtl', [8610]], ['latail', [10521]], ['lAtail', [10523]], ['lat', [10923]], ['late', [10925]], ['lates', [10925, 65024]], ['lbarr', [10508]], ['lBarr', [10510]], ['lbbrk', [10098]], ['lbrace', [123]], ['lbrack', [91]], ['lbrke', [10635]], ['lbrksld', [10639]], ['lbrkslu', [10637]], ['Lcaron', [317]], ['lcaron', [318]], ['Lcedil', [315]], ['lcedil', [316]], ['lceil', [8968]], ['lcub', [123]], ['Lcy', [1051]], ['lcy', [1083]], ['ldca', [10550]], ['ldquo', [8220]], ['ldquor', [8222]], ['ldrdhar', [10599]], ['ldrushar', [10571]], ['ldsh', [8626]], ['le', [8804]], ['lE', [8806]], ['LeftAngleBracket', [10216]], ['LeftArrowBar', [8676]], ['leftarrow', [8592]], ['LeftArrow', [8592]], ['Leftarrow', [8656]], ['LeftArrowRightArrow', [8646]], ['leftarrowtail', [8610]], ['LeftCeiling', [8968]], ['LeftDoubleBracket', [10214]], ['LeftDownTeeVector', [10593]], ['LeftDownVectorBar', [10585]], ['LeftDownVector', [8643]], ['LeftFloor', [8970]], ['leftharpoondown', [8637]], ['leftharpoonup', [8636]], ['leftleftarrows', [8647]], ['leftrightarrow', [8596]], ['LeftRightArrow', [8596]], ['Leftrightarrow', [8660]], ['leftrightarrows', [8646]], ['leftrightharpoons', [8651]], ['leftrightsquigarrow', [8621]], ['LeftRightVector', [10574]], ['LeftTeeArrow', [8612]], ['LeftTee', [8867]], ['LeftTeeVector', [10586]], ['leftthreetimes', [8907]], ['LeftTriangleBar', [10703]], ['LeftTriangle', [8882]], ['LeftTriangleEqual', [8884]], ['LeftUpDownVector', [10577]], ['LeftUpTeeVector', [10592]], ['LeftUpVectorBar', [10584]], ['LeftUpVector', [8639]], ['LeftVectorBar', [10578]], ['LeftVector', [8636]], ['lEg', [10891]], ['leg', [8922]], ['leq', [8804]], ['leqq', [8806]], ['leqslant', [10877]], ['lescc', [10920]], ['les', [10877]], ['lesdot', [10879]], ['lesdoto', [10881]], ['lesdotor', [10883]], ['lesg', [8922, 65024]], ['lesges', [10899]], ['lessapprox', [10885]], ['lessdot', [8918]], ['lesseqgtr', [8922]], ['lesseqqgtr', [10891]], ['LessEqualGreater', [8922]], ['LessFullEqual', [8806]], ['LessGreater', [8822]], ['lessgtr', [8822]], ['LessLess', [10913]], ['lesssim', [8818]], ['LessSlantEqual', [10877]], ['LessTilde', [8818]], ['lfisht', [10620]], ['lfloor', [8970]], ['Lfr', [120079]], ['lfr', [120105]], ['lg', [8822]], ['lgE', [10897]], ['lHar', [10594]], ['lhard', [8637]], ['lharu', [8636]], ['lharul', [10602]], ['lhblk', [9604]], ['LJcy', [1033]], ['ljcy', [1113]], ['llarr', [8647]], ['ll', [8810]], ['Ll', [8920]], ['llcorner', [8990]], ['Lleftarrow', [8666]], ['llhard', [10603]], ['lltri', [9722]], ['Lmidot', [319]], ['lmidot', [320]], ['lmoustache', [9136]], ['lmoust', [9136]], ['lnap', [10889]], ['lnapprox', [10889]], ['lne', [10887]], ['lnE', [8808]], ['lneq', [10887]], ['lneqq', [8808]], ['lnsim', [8934]], ['loang', [10220]], ['loarr', [8701]], ['lobrk', [10214]], ['longleftarrow', [10229]], ['LongLeftArrow', [10229]], ['Longleftarrow', [10232]], ['longleftrightarrow', [10231]], ['LongLeftRightArrow', [10231]], ['Longleftrightarrow', [10234]], ['longmapsto', [10236]], ['longrightarrow', [10230]], ['LongRightArrow', [10230]], ['Longrightarrow', [10233]], ['looparrowleft', [8619]], ['looparrowright', [8620]], ['lopar', [10629]], ['Lopf', [120131]], ['lopf', [120157]], ['loplus', [10797]], ['lotimes', [10804]], ['lowast', [8727]], ['lowbar', [95]], ['LowerLeftArrow', [8601]], ['LowerRightArrow', [8600]], ['loz', [9674]], ['lozenge', [9674]], ['lozf', [10731]], ['lpar', [40]], ['lparlt', [10643]], ['lrarr', [8646]], ['lrcorner', [8991]], ['lrhar', [8651]], ['lrhard', [10605]], ['lrm', [8206]], ['lrtri', [8895]], ['lsaquo', [8249]], ['lscr', [120001]], ['Lscr', [8466]], ['lsh', [8624]], ['Lsh', [8624]], ['lsim', [8818]], ['lsime', [10893]], ['lsimg', [10895]], ['lsqb', [91]], ['lsquo', [8216]], ['lsquor', [8218]], ['Lstrok', [321]], ['lstrok', [322]], ['ltcc', [10918]], ['ltcir', [10873]], ['lt', [60]], ['LT', [60]], ['Lt', [8810]], ['ltdot', [8918]], ['lthree', [8907]], ['ltimes', [8905]], ['ltlarr', [10614]], ['ltquest', [10875]], ['ltri', [9667]], ['ltrie', [8884]], ['ltrif', [9666]], ['ltrPar', [10646]], ['lurdshar', [10570]], ['luruhar', [10598]], ['lvertneqq', [8808, 65024]], ['lvnE', [8808, 65024]], ['macr', [175]], ['male', [9794]], ['malt', [10016]], ['maltese', [10016]], ['Map', [10501]], ['map', [8614]], ['mapsto', [8614]], ['mapstodown', [8615]], ['mapstoleft', [8612]], ['mapstoup', [8613]], ['marker', [9646]], ['mcomma', [10793]], ['Mcy', [1052]], ['mcy', [1084]], ['mdash', [8212]], ['mDDot', [8762]], ['measuredangle', [8737]], ['MediumSpace', [8287]], ['Mellintrf', [8499]], ['Mfr', [120080]], ['mfr', [120106]], ['mho', [8487]], ['micro', [181]], ['midast', [42]], ['midcir', [10992]], ['mid', [8739]], ['middot', [183]], ['minusb', [8863]], ['minus', [8722]], ['minusd', [8760]], ['minusdu', [10794]], ['MinusPlus', [8723]], ['mlcp', [10971]], ['mldr', [8230]], ['mnplus', [8723]], ['models', [8871]], ['Mopf', [120132]], ['mopf', [120158]], ['mp', [8723]], ['mscr', [120002]], ['Mscr', [8499]], ['mstpos', [8766]], ['Mu', [924]], ['mu', [956]], ['multimap', [8888]], ['mumap', [8888]], ['nabla', [8711]], ['Nacute', [323]], ['nacute', [324]], ['nang', [8736, 8402]], ['nap', [8777]], ['napE', [10864, 824]], ['napid', [8779, 824]], ['napos', [329]], ['napprox', [8777]], ['natural', [9838]], ['naturals', [8469]], ['natur', [9838]], ['nbsp', [160]], ['nbump', [8782, 824]], ['nbumpe', [8783, 824]], ['ncap', [10819]], ['Ncaron', [327]], ['ncaron', [328]], ['Ncedil', [325]], ['ncedil', [326]], ['ncong', [8775]], ['ncongdot', [10861, 824]], ['ncup', [10818]], ['Ncy', [1053]], ['ncy', [1085]], ['ndash', [8211]], ['nearhk', [10532]], ['nearr', [8599]], ['neArr', [8663]], ['nearrow', [8599]], ['ne', [8800]], ['nedot', [8784, 824]], ['NegativeMediumSpace', [8203]], ['NegativeThickSpace', [8203]], ['NegativeThinSpace', [8203]], ['NegativeVeryThinSpace', [8203]], ['nequiv', [8802]], ['nesear', [10536]], ['nesim', [8770, 824]], ['NestedGreaterGreater', [8811]], ['NestedLessLess', [8810]], ['nexist', [8708]], ['nexists', [8708]], ['Nfr', [120081]], ['nfr', [120107]], ['ngE', [8807, 824]], ['nge', [8817]], ['ngeq', [8817]], ['ngeqq', [8807, 824]], ['ngeqslant', [10878, 824]], ['nges', [10878, 824]], ['nGg', [8921, 824]], ['ngsim', [8821]], ['nGt', [8811, 8402]], ['ngt', [8815]], ['ngtr', [8815]], ['nGtv', [8811, 824]], ['nharr', [8622]], ['nhArr', [8654]], ['nhpar', [10994]], ['ni', [8715]], ['nis', [8956]], ['nisd', [8954]], ['niv', [8715]], ['NJcy', [1034]], ['njcy', [1114]], ['nlarr', [8602]], ['nlArr', [8653]], ['nldr', [8229]], ['nlE', [8806, 824]], ['nle', [8816]], ['nleftarrow', [8602]], ['nLeftarrow', [8653]], ['nleftrightarrow', [8622]], ['nLeftrightarrow', [8654]], ['nleq', [8816]], ['nleqq', [8806, 824]], ['nleqslant', [10877, 824]], ['nles', [10877, 824]], ['nless', [8814]], ['nLl', [8920, 824]], ['nlsim', [8820]], ['nLt', [8810, 8402]], ['nlt', [8814]], ['nltri', [8938]], ['nltrie', [8940]], ['nLtv', [8810, 824]], ['nmid', [8740]], ['NoBreak', [8288]], ['NonBreakingSpace', [160]], ['nopf', [120159]], ['Nopf', [8469]], ['Not', [10988]], ['not', [172]], ['NotCongruent', [8802]], ['NotCupCap', [8813]], ['NotDoubleVerticalBar', [8742]], ['NotElement', [8713]], ['NotEqual', [8800]], ['NotEqualTilde', [8770, 824]], ['NotExists', [8708]], ['NotGreater', [8815]], ['NotGreaterEqual', [8817]], ['NotGreaterFullEqual', [8807, 824]], ['NotGreaterGreater', [8811, 824]], ['NotGreaterLess', [8825]], ['NotGreaterSlantEqual', [10878, 824]], ['NotGreaterTilde', [8821]], ['NotHumpDownHump', [8782, 824]], ['NotHumpEqual', [8783, 824]], ['notin', [8713]], ['notindot', [8949, 824]], ['notinE', [8953, 824]], ['notinva', [8713]], ['notinvb', [8951]], ['notinvc', [8950]], ['NotLeftTriangleBar', [10703, 824]], ['NotLeftTriangle', [8938]], ['NotLeftTriangleEqual', [8940]], ['NotLess', [8814]], ['NotLessEqual', [8816]], ['NotLessGreater', [8824]], ['NotLessLess', [8810, 824]], ['NotLessSlantEqual', [10877, 824]], ['NotLessTilde', [8820]], ['NotNestedGreaterGreater', [10914, 824]], ['NotNestedLessLess', [10913, 824]], ['notni', [8716]], ['notniva', [8716]], ['notnivb', [8958]], ['notnivc', [8957]], ['NotPrecedes', [8832]], ['NotPrecedesEqual', [10927, 824]], ['NotPrecedesSlantEqual', [8928]], ['NotReverseElement', [8716]], ['NotRightTriangleBar', [10704, 824]], ['NotRightTriangle', [8939]], ['NotRightTriangleEqual', [8941]], ['NotSquareSubset', [8847, 824]], ['NotSquareSubsetEqual', [8930]], ['NotSquareSuperset', [8848, 824]], ['NotSquareSupersetEqual', [8931]], ['NotSubset', [8834, 8402]], ['NotSubsetEqual', [8840]], ['NotSucceeds', [8833]], ['NotSucceedsEqual', [10928, 824]], ['NotSucceedsSlantEqual', [8929]], ['NotSucceedsTilde', [8831, 824]], ['NotSuperset', [8835, 8402]], ['NotSupersetEqual', [8841]], ['NotTilde', [8769]], ['NotTildeEqual', [8772]], ['NotTildeFullEqual', [8775]], ['NotTildeTilde', [8777]], ['NotVerticalBar', [8740]], ['nparallel', [8742]], ['npar', [8742]], ['nparsl', [11005, 8421]], ['npart', [8706, 824]], ['npolint', [10772]], ['npr', [8832]], ['nprcue', [8928]], ['nprec', [8832]], ['npreceq', [10927, 824]], ['npre', [10927, 824]], ['nrarrc', [10547, 824]], ['nrarr', [8603]], ['nrArr', [8655]], ['nrarrw', [8605, 824]], ['nrightarrow', [8603]], ['nRightarrow', [8655]], ['nrtri', [8939]], ['nrtrie', [8941]], ['nsc', [8833]], ['nsccue', [8929]], ['nsce', [10928, 824]], ['Nscr', [119977]], ['nscr', [120003]], ['nshortmid', [8740]], ['nshortparallel', [8742]], ['nsim', [8769]], ['nsime', [8772]], ['nsimeq', [8772]], ['nsmid', [8740]], ['nspar', [8742]], ['nsqsube', [8930]], ['nsqsupe', [8931]], ['nsub', [8836]], ['nsubE', [10949, 824]], ['nsube', [8840]], ['nsubset', [8834, 8402]], ['nsubseteq', [8840]], ['nsubseteqq', [10949, 824]], ['nsucc', [8833]], ['nsucceq', [10928, 824]], ['nsup', [8837]], ['nsupE', [10950, 824]], ['nsupe', [8841]], ['nsupset', [8835, 8402]], ['nsupseteq', [8841]], ['nsupseteqq', [10950, 824]], ['ntgl', [8825]], ['Ntilde', [209]], ['ntilde', [241]], ['ntlg', [8824]], ['ntriangleleft', [8938]], ['ntrianglelefteq', [8940]], ['ntriangleright', [8939]], ['ntrianglerighteq', [8941]], ['Nu', [925]], ['nu', [957]], ['num', [35]], ['numero', [8470]], ['numsp', [8199]], ['nvap', [8781, 8402]], ['nvdash', [8876]], ['nvDash', [8877]], ['nVdash', [8878]], ['nVDash', [8879]], ['nvge', [8805, 8402]], ['nvgt', [62, 8402]], ['nvHarr', [10500]], ['nvinfin', [10718]], ['nvlArr', [10498]], ['nvle', [8804, 8402]], ['nvlt', [60, 8402]], ['nvltrie', [8884, 8402]], ['nvrArr', [10499]], ['nvrtrie', [8885, 8402]], ['nvsim', [8764, 8402]], ['nwarhk', [10531]], ['nwarr', [8598]], ['nwArr', [8662]], ['nwarrow', [8598]], ['nwnear', [10535]], ['Oacute', [211]], ['oacute', [243]], ['oast', [8859]], ['Ocirc', [212]], ['ocirc', [244]], ['ocir', [8858]], ['Ocy', [1054]], ['ocy', [1086]], ['odash', [8861]], ['Odblac', [336]], ['odblac', [337]], ['odiv', [10808]], ['odot', [8857]], ['odsold', [10684]], ['OElig', [338]], ['oelig', [339]], ['ofcir', [10687]], ['Ofr', [120082]], ['ofr', [120108]], ['ogon', [731]], ['Ograve', [210]], ['ograve', [242]], ['ogt', [10689]], ['ohbar', [10677]], ['ohm', [937]], ['oint', [8750]], ['olarr', [8634]], ['olcir', [10686]], ['olcross', [10683]], ['oline', [8254]], ['olt', [10688]], ['Omacr', [332]], ['omacr', [333]], ['Omega', [937]], ['omega', [969]], ['Omicron', [927]], ['omicron', [959]], ['omid', [10678]], ['ominus', [8854]], ['Oopf', [120134]], ['oopf', [120160]], ['opar', [10679]], ['OpenCurlyDoubleQuote', [8220]], ['OpenCurlyQuote', [8216]], ['operp', [10681]], ['oplus', [8853]], ['orarr', [8635]], ['Or', [10836]], ['or', [8744]], ['ord', [10845]], ['order', [8500]], ['orderof', [8500]], ['ordf', [170]], ['ordm', [186]], ['origof', [8886]], ['oror', [10838]], ['orslope', [10839]], ['orv', [10843]], ['oS', [9416]], ['Oscr', [119978]], ['oscr', [8500]], ['Oslash', [216]], ['oslash', [248]], ['osol', [8856]], ['Otilde', [213]], ['otilde', [245]], ['otimesas', [10806]], ['Otimes', [10807]], ['otimes', [8855]], ['Ouml', [214]], ['ouml', [246]], ['ovbar', [9021]], ['OverBar', [8254]], ['OverBrace', [9182]], ['OverBracket', [9140]], ['OverParenthesis', [9180]], ['para', [182]], ['parallel', [8741]], ['par', [8741]], ['parsim', [10995]], ['parsl', [11005]], ['part', [8706]], ['PartialD', [8706]], ['Pcy', [1055]], ['pcy', [1087]], ['percnt', [37]], ['period', [46]], ['permil', [8240]], ['perp', [8869]], ['pertenk', [8241]], ['Pfr', [120083]], ['pfr', [120109]], ['Phi', [934]], ['phi', [966]], ['phiv', [981]], ['phmmat', [8499]], ['phone', [9742]], ['Pi', [928]], ['pi', [960]], ['pitchfork', [8916]], ['piv', [982]], ['planck', [8463]], ['planckh', [8462]], ['plankv', [8463]], ['plusacir', [10787]], ['plusb', [8862]], ['pluscir', [10786]], ['plus', [43]], ['plusdo', [8724]], ['plusdu', [10789]], ['pluse', [10866]], ['PlusMinus', [177]], ['plusmn', [177]], ['plussim', [10790]], ['plustwo', [10791]], ['pm', [177]], ['Poincareplane', [8460]], ['pointint', [10773]], ['popf', [120161]], ['Popf', [8473]], ['pound', [163]], ['prap', [10935]], ['Pr', [10939]], ['pr', [8826]], ['prcue', [8828]], ['precapprox', [10935]], ['prec', [8826]], ['preccurlyeq', [8828]], ['Precedes', [8826]], ['PrecedesEqual', [10927]], ['PrecedesSlantEqual', [8828]], ['PrecedesTilde', [8830]], ['preceq', [10927]], ['precnapprox', [10937]], ['precneqq', [10933]], ['precnsim', [8936]], ['pre', [10927]], ['prE', [10931]], ['precsim', [8830]], ['prime', [8242]], ['Prime', [8243]], ['primes', [8473]], ['prnap', [10937]], ['prnE', [10933]], ['prnsim', [8936]], ['prod', [8719]], ['Product', [8719]], ['profalar', [9006]], ['profline', [8978]], ['profsurf', [8979]], ['prop', [8733]], ['Proportional', [8733]], ['Proportion', [8759]], ['propto', [8733]], ['prsim', [8830]], ['prurel', [8880]], ['Pscr', [119979]], ['pscr', [120005]], ['Psi', [936]], ['psi', [968]], ['puncsp', [8200]], ['Qfr', [120084]], ['qfr', [120110]], ['qint', [10764]], ['qopf', [120162]], ['Qopf', [8474]], ['qprime', [8279]], ['Qscr', [119980]], ['qscr', [120006]], ['quaternions', [8461]], ['quatint', [10774]], ['quest', [63]], ['questeq', [8799]], ['quot', [34]], ['QUOT', [34]], ['rAarr', [8667]], ['race', [8765, 817]], ['Racute', [340]], ['racute', [341]], ['radic', [8730]], ['raemptyv', [10675]], ['rang', [10217]], ['Rang', [10219]], ['rangd', [10642]], ['range', [10661]], ['rangle', [10217]], ['raquo', [187]], ['rarrap', [10613]], ['rarrb', [8677]], ['rarrbfs', [10528]], ['rarrc', [10547]], ['rarr', [8594]], ['Rarr', [8608]], ['rArr', [8658]], ['rarrfs', [10526]], ['rarrhk', [8618]], ['rarrlp', [8620]], ['rarrpl', [10565]], ['rarrsim', [10612]], ['Rarrtl', [10518]], ['rarrtl', [8611]], ['rarrw', [8605]], ['ratail', [10522]], ['rAtail', [10524]], ['ratio', [8758]], ['rationals', [8474]], ['rbarr', [10509]], ['rBarr', [10511]], ['RBarr', [10512]], ['rbbrk', [10099]], ['rbrace', [125]], ['rbrack', [93]], ['rbrke', [10636]], ['rbrksld', [10638]], ['rbrkslu', [10640]], ['Rcaron', [344]], ['rcaron', [345]], ['Rcedil', [342]], ['rcedil', [343]], ['rceil', [8969]], ['rcub', [125]], ['Rcy', [1056]], ['rcy', [1088]], ['rdca', [10551]], ['rdldhar', [10601]], ['rdquo', [8221]], ['rdquor', [8221]], ['CloseCurlyDoubleQuote', [8221]], ['rdsh', [8627]], ['real', [8476]], ['realine', [8475]], ['realpart', [8476]], ['reals', [8477]], ['Re', [8476]], ['rect', [9645]], ['reg', [174]], ['REG', [174]], ['ReverseElement', [8715]], ['ReverseEquilibrium', [8651]], ['ReverseUpEquilibrium', [10607]], ['rfisht', [10621]], ['rfloor', [8971]], ['rfr', [120111]], ['Rfr', [8476]], ['rHar', [10596]], ['rhard', [8641]], ['rharu', [8640]], ['rharul', [10604]], ['Rho', [929]], ['rho', [961]], ['rhov', [1009]], ['RightAngleBracket', [10217]], ['RightArrowBar', [8677]], ['rightarrow', [8594]], ['RightArrow', [8594]], ['Rightarrow', [8658]], ['RightArrowLeftArrow', [8644]], ['rightarrowtail', [8611]], ['RightCeiling', [8969]], ['RightDoubleBracket', [10215]], ['RightDownTeeVector', [10589]], ['RightDownVectorBar', [10581]], ['RightDownVector', [8642]], ['RightFloor', [8971]], ['rightharpoondown', [8641]], ['rightharpoonup', [8640]], ['rightleftarrows', [8644]], ['rightleftharpoons', [8652]], ['rightrightarrows', [8649]], ['rightsquigarrow', [8605]], ['RightTeeArrow', [8614]], ['RightTee', [8866]], ['RightTeeVector', [10587]], ['rightthreetimes', [8908]], ['RightTriangleBar', [10704]], ['RightTriangle', [8883]], ['RightTriangleEqual', [8885]], ['RightUpDownVector', [10575]], ['RightUpTeeVector', [10588]], ['RightUpVectorBar', [10580]], ['RightUpVector', [8638]], ['RightVectorBar', [10579]], ['RightVector', [8640]], ['ring', [730]], ['risingdotseq', [8787]], ['rlarr', [8644]], ['rlhar', [8652]], ['rlm', [8207]], ['rmoustache', [9137]], ['rmoust', [9137]], ['rnmid', [10990]], ['roang', [10221]], ['roarr', [8702]], ['robrk', [10215]], ['ropar', [10630]], ['ropf', [120163]], ['Ropf', [8477]], ['roplus', [10798]], ['rotimes', [10805]], ['RoundImplies', [10608]], ['rpar', [41]], ['rpargt', [10644]], ['rppolint', [10770]], ['rrarr', [8649]], ['Rrightarrow', [8667]], ['rsaquo', [8250]], ['rscr', [120007]], ['Rscr', [8475]], ['rsh', [8625]], ['Rsh', [8625]], ['rsqb', [93]], ['rsquo', [8217]], ['rsquor', [8217]], ['CloseCurlyQuote', [8217]], ['rthree', [8908]], ['rtimes', [8906]], ['rtri', [9657]], ['rtrie', [8885]], ['rtrif', [9656]], ['rtriltri', [10702]], ['RuleDelayed', [10740]], ['ruluhar', [10600]], ['rx', [8478]], ['Sacute', [346]], ['sacute', [347]], ['sbquo', [8218]], ['scap', [10936]], ['Scaron', [352]], ['scaron', [353]], ['Sc', [10940]], ['sc', [8827]], ['sccue', [8829]], ['sce', [10928]], ['scE', [10932]], ['Scedil', [350]], ['scedil', [351]], ['Scirc', [348]], ['scirc', [349]], ['scnap', [10938]], ['scnE', [10934]], ['scnsim', [8937]], ['scpolint', [10771]], ['scsim', [8831]], ['Scy', [1057]], ['scy', [1089]], ['sdotb', [8865]], ['sdot', [8901]], ['sdote', [10854]], ['searhk', [10533]], ['searr', [8600]], ['seArr', [8664]], ['searrow', [8600]], ['sect', [167]], ['semi', [59]], ['seswar', [10537]], ['setminus', [8726]], ['setmn', [8726]], ['sext', [10038]], ['Sfr', [120086]], ['sfr', [120112]], ['sfrown', [8994]], ['sharp', [9839]], ['SHCHcy', [1065]], ['shchcy', [1097]], ['SHcy', [1064]], ['shcy', [1096]], ['ShortDownArrow', [8595]], ['ShortLeftArrow', [8592]], ['shortmid', [8739]], ['shortparallel', [8741]], ['ShortRightArrow', [8594]], ['ShortUpArrow', [8593]], ['shy', [173]], ['Sigma', [931]], ['sigma', [963]], ['sigmaf', [962]], ['sigmav', [962]], ['sim', [8764]], ['simdot', [10858]], ['sime', [8771]], ['simeq', [8771]], ['simg', [10910]], ['simgE', [10912]], ['siml', [10909]], ['simlE', [10911]], ['simne', [8774]], ['simplus', [10788]], ['simrarr', [10610]], ['slarr', [8592]], ['SmallCircle', [8728]], ['smallsetminus', [8726]], ['smashp', [10803]], ['smeparsl', [10724]], ['smid', [8739]], ['smile', [8995]], ['smt', [10922]], ['smte', [10924]], ['smtes', [10924, 65024]], ['SOFTcy', [1068]], ['softcy', [1100]], ['solbar', [9023]], ['solb', [10692]], ['sol', [47]], ['Sopf', [120138]], ['sopf', [120164]], ['spades', [9824]], ['spadesuit', [9824]], ['spar', [8741]], ['sqcap', [8851]], ['sqcaps', [8851, 65024]], ['sqcup', [8852]], ['sqcups', [8852, 65024]], ['Sqrt', [8730]], ['sqsub', [8847]], ['sqsube', [8849]], ['sqsubset', [8847]], ['sqsubseteq', [8849]], ['sqsup', [8848]], ['sqsupe', [8850]], ['sqsupset', [8848]], ['sqsupseteq', [8850]], ['square', [9633]], ['Square', [9633]], ['SquareIntersection', [8851]], ['SquareSubset', [8847]], ['SquareSubsetEqual', [8849]], ['SquareSuperset', [8848]], ['SquareSupersetEqual', [8850]], ['SquareUnion', [8852]], ['squarf', [9642]], ['squ', [9633]], ['squf', [9642]], ['srarr', [8594]], ['Sscr', [119982]], ['sscr', [120008]], ['ssetmn', [8726]], ['ssmile', [8995]], ['sstarf', [8902]], ['Star', [8902]], ['star', [9734]], ['starf', [9733]], ['straightepsilon', [1013]], ['straightphi', [981]], ['strns', [175]], ['sub', [8834]], ['Sub', [8912]], ['subdot', [10941]], ['subE', [10949]], ['sube', [8838]], ['subedot', [10947]], ['submult', [10945]], ['subnE', [10955]], ['subne', [8842]], ['subplus', [10943]], ['subrarr', [10617]], ['subset', [8834]], ['Subset', [8912]], ['subseteq', [8838]], ['subseteqq', [10949]], ['SubsetEqual', [8838]], ['subsetneq', [8842]], ['subsetneqq', [10955]], ['subsim', [10951]], ['subsub', [10965]], ['subsup', [10963]], ['succapprox', [10936]], ['succ', [8827]], ['succcurlyeq', [8829]], ['Succeeds', [8827]], ['SucceedsEqual', [10928]], ['SucceedsSlantEqual', [8829]], ['SucceedsTilde', [8831]], ['succeq', [10928]], ['succnapprox', [10938]], ['succneqq', [10934]], ['succnsim', [8937]], ['succsim', [8831]], ['SuchThat', [8715]], ['sum', [8721]], ['Sum', [8721]], ['sung', [9834]], ['sup1', [185]], ['sup2', [178]], ['sup3', [179]], ['sup', [8835]], ['Sup', [8913]], ['supdot', [10942]], ['supdsub', [10968]], ['supE', [10950]], ['supe', [8839]], ['supedot', [10948]], ['Superset', [8835]], ['SupersetEqual', [8839]], ['suphsol', [10185]], ['suphsub', [10967]], ['suplarr', [10619]], ['supmult', [10946]], ['supnE', [10956]], ['supne', [8843]], ['supplus', [10944]], ['supset', [8835]], ['Supset', [8913]], ['supseteq', [8839]], ['supseteqq', [10950]], ['supsetneq', [8843]], ['supsetneqq', [10956]], ['supsim', [10952]], ['supsub', [10964]], ['supsup', [10966]], ['swarhk', [10534]], ['swarr', [8601]], ['swArr', [8665]], ['swarrow', [8601]], ['swnwar', [10538]], ['szlig', [223]], ['Tab', [9]], ['target', [8982]], ['Tau', [932]], ['tau', [964]], ['tbrk', [9140]], ['Tcaron', [356]], ['tcaron', [357]], ['Tcedil', [354]], ['tcedil', [355]], ['Tcy', [1058]], ['tcy', [1090]], ['tdot', [8411]], ['telrec', [8981]], ['Tfr', [120087]], ['tfr', [120113]], ['there4', [8756]], ['therefore', [8756]], ['Therefore', [8756]], ['Theta', [920]], ['theta', [952]], ['thetasym', [977]], ['thetav', [977]], ['thickapprox', [8776]], ['thicksim', [8764]], ['ThickSpace', [8287, 8202]], ['ThinSpace', [8201]], ['thinsp', [8201]], ['thkap', [8776]], ['thksim', [8764]], ['THORN', [222]], ['thorn', [254]], ['tilde', [732]], ['Tilde', [8764]], ['TildeEqual', [8771]], ['TildeFullEqual', [8773]], ['TildeTilde', [8776]], ['timesbar', [10801]], ['timesb', [8864]], ['times', [215]], ['timesd', [10800]], ['tint', [8749]], ['toea', [10536]], ['topbot', [9014]], ['topcir', [10993]], ['top', [8868]], ['Topf', [120139]], ['topf', [120165]], ['topfork', [10970]], ['tosa', [10537]], ['tprime', [8244]], ['trade', [8482]], ['TRADE', [8482]], ['triangle', [9653]], ['triangledown', [9663]], ['triangleleft', [9667]], ['trianglelefteq', [8884]], ['triangleq', [8796]], ['triangleright', [9657]], ['trianglerighteq', [8885]], ['tridot', [9708]], ['trie', [8796]], ['triminus', [10810]], ['TripleDot', [8411]], ['triplus', [10809]], ['trisb', [10701]], ['tritime', [10811]], ['trpezium', [9186]], ['Tscr', [119983]], ['tscr', [120009]], ['TScy', [1062]], ['tscy', [1094]], ['TSHcy', [1035]], ['tshcy', [1115]], ['Tstrok', [358]], ['tstrok', [359]], ['twixt', [8812]], ['twoheadleftarrow', [8606]], ['twoheadrightarrow', [8608]], ['Uacute', [218]], ['uacute', [250]], ['uarr', [8593]], ['Uarr', [8607]], ['uArr', [8657]], ['Uarrocir', [10569]], ['Ubrcy', [1038]], ['ubrcy', [1118]], ['Ubreve', [364]], ['ubreve', [365]], ['Ucirc', [219]], ['ucirc', [251]], ['Ucy', [1059]], ['ucy', [1091]], ['udarr', [8645]], ['Udblac', [368]], ['udblac', [369]], ['udhar', [10606]], ['ufisht', [10622]], ['Ufr', [120088]], ['ufr', [120114]], ['Ugrave', [217]], ['ugrave', [249]], ['uHar', [10595]], ['uharl', [8639]], ['uharr', [8638]], ['uhblk', [9600]], ['ulcorn', [8988]], ['ulcorner', [8988]], ['ulcrop', [8975]], ['ultri', [9720]], ['Umacr', [362]], ['umacr', [363]], ['uml', [168]], ['UnderBar', [95]], ['UnderBrace', [9183]], ['UnderBracket', [9141]], ['UnderParenthesis', [9181]], ['Union', [8899]], ['UnionPlus', [8846]], ['Uogon', [370]], ['uogon', [371]], ['Uopf', [120140]], ['uopf', [120166]], ['UpArrowBar', [10514]], ['uparrow', [8593]], ['UpArrow', [8593]], ['Uparrow', [8657]], ['UpArrowDownArrow', [8645]], ['updownarrow', [8597]], ['UpDownArrow', [8597]], ['Updownarrow', [8661]], ['UpEquilibrium', [10606]], ['upharpoonleft', [8639]], ['upharpoonright', [8638]], ['uplus', [8846]], ['UpperLeftArrow', [8598]], ['UpperRightArrow', [8599]], ['upsi', [965]], ['Upsi', [978]], ['upsih', [978]], ['Upsilon', [933]], ['upsilon', [965]], ['UpTeeArrow', [8613]], ['UpTee', [8869]], ['upuparrows', [8648]], ['urcorn', [8989]], ['urcorner', [8989]], ['urcrop', [8974]], ['Uring', [366]], ['uring', [367]], ['urtri', [9721]], ['Uscr', [119984]], ['uscr', [120010]], ['utdot', [8944]], ['Utilde', [360]], ['utilde', [361]], ['utri', [9653]], ['utrif', [9652]], ['uuarr', [8648]], ['Uuml', [220]], ['uuml', [252]], ['uwangle', [10663]], ['vangrt', [10652]], ['varepsilon', [1013]], ['varkappa', [1008]], ['varnothing', [8709]], ['varphi', [981]], ['varpi', [982]], ['varpropto', [8733]], ['varr', [8597]], ['vArr', [8661]], ['varrho', [1009]], ['varsigma', [962]], ['varsubsetneq', [8842, 65024]], ['varsubsetneqq', [10955, 65024]], ['varsupsetneq', [8843, 65024]], ['varsupsetneqq', [10956, 65024]], ['vartheta', [977]], ['vartriangleleft', [8882]], ['vartriangleright', [8883]], ['vBar', [10984]], ['Vbar', [10987]], ['vBarv', [10985]], ['Vcy', [1042]], ['vcy', [1074]], ['vdash', [8866]], ['vDash', [8872]], ['Vdash', [8873]], ['VDash', [8875]], ['Vdashl', [10982]], ['veebar', [8891]], ['vee', [8744]], ['Vee', [8897]], ['veeeq', [8794]], ['vellip', [8942]], ['verbar', [124]], ['Verbar', [8214]], ['vert', [124]], ['Vert', [8214]], ['VerticalBar', [8739]], ['VerticalLine', [124]], ['VerticalSeparator', [10072]], ['VerticalTilde', [8768]], ['VeryThinSpace', [8202]], ['Vfr', [120089]], ['vfr', [120115]], ['vltri', [8882]], ['vnsub', [8834, 8402]], ['vnsup', [8835, 8402]], ['Vopf', [120141]], ['vopf', [120167]], ['vprop', [8733]], ['vrtri', [8883]], ['Vscr', [119985]], ['vscr', [120011]], ['vsubnE', [10955, 65024]], ['vsubne', [8842, 65024]], ['vsupnE', [10956, 65024]], ['vsupne', [8843, 65024]], ['Vvdash', [8874]], ['vzigzag', [10650]], ['Wcirc', [372]], ['wcirc', [373]], ['wedbar', [10847]], ['wedge', [8743]], ['Wedge', [8896]], ['wedgeq', [8793]], ['weierp', [8472]], ['Wfr', [120090]], ['wfr', [120116]], ['Wopf', [120142]], ['wopf', [120168]], ['wp', [8472]], ['wr', [8768]], ['wreath', [8768]], ['Wscr', [119986]], ['wscr', [120012]], ['xcap', [8898]], ['xcirc', [9711]], ['xcup', [8899]], ['xdtri', [9661]], ['Xfr', [120091]], ['xfr', [120117]], ['xharr', [10231]], ['xhArr', [10234]], ['Xi', [926]], ['xi', [958]], ['xlarr', [10229]], ['xlArr', [10232]], ['xmap', [10236]], ['xnis', [8955]], ['xodot', [10752]], ['Xopf', [120143]], ['xopf', [120169]], ['xoplus', [10753]], ['xotime', [10754]], ['xrarr', [10230]], ['xrArr', [10233]], ['Xscr', [119987]], ['xscr', [120013]], ['xsqcup', [10758]], ['xuplus', [10756]], ['xutri', [9651]], ['xvee', [8897]], ['xwedge', [8896]], ['Yacute', [221]], ['yacute', [253]], ['YAcy', [1071]], ['yacy', [1103]], ['Ycirc', [374]], ['ycirc', [375]], ['Ycy', [1067]], ['ycy', [1099]], ['yen', [165]], ['Yfr', [120092]], ['yfr', [120118]], ['YIcy', [1031]], ['yicy', [1111]], ['Yopf', [120144]], ['yopf', [120170]], ['Yscr', [119988]], ['yscr', [120014]], ['YUcy', [1070]], ['yucy', [1102]], ['yuml', [255]], ['Yuml', [376]], ['Zacute', [377]], ['zacute', [378]], ['Zcaron', [381]], ['zcaron', [382]], ['Zcy', [1047]], ['zcy', [1079]], ['Zdot', [379]], ['zdot', [380]], ['zeetrf', [8488]], ['ZeroWidthSpace', [8203]], ['Zeta', [918]], ['zeta', [950]], ['zfr', [120119]], ['Zfr', [8488]], ['ZHcy', [1046]], ['zhcy', [1078]], ['zigrarr', [8669]], ['zopf', [120171]], ['Zopf', [8484]], ['Zscr', [119989]], ['zscr', [120015]], ['zwj', [8205]], ['zwnj', [8204]]];\n\nvar alphaIndex = {};\nvar charIndex = {};\n\ncreateIndexes(alphaIndex, charIndex);\n\n/**\n * @constructor\n */\nfunction Html5Entities() {}\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.decode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/&(#?[\\w\\d]+);?/g, function(s, entity) {\n var chr;\n if (entity.charAt(0) === \"#\") {\n var code = entity.charAt(1) === 'x' ?\n parseInt(entity.substr(2).toLowerCase(), 16) :\n parseInt(entity.substr(1));\n\n if (!(isNaN(code) || code < -32768 || code > 65535)) {\n chr = String.fromCharCode(code);\n }\n } else {\n chr = alphaIndex[entity];\n }\n return chr || s;\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.decode = function(str) {\n return new Html5Entities().decode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.encode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var charInfo = charIndex[str.charCodeAt(i)];\n if (charInfo) {\n var alpha = charInfo[str.charCodeAt(i + 1)];\n if (alpha) {\n i++;\n } else {\n alpha = charInfo[''];\n }\n if (alpha) {\n result += \"&\" + alpha + \";\";\n i++;\n continue;\n }\n }\n result += str.charAt(i);\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.encode = function(str) {\n return new Html5Entities().encode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.encodeNonUTF = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n var charInfo = charIndex[c];\n if (charInfo) {\n var alpha = charInfo[str.charCodeAt(i + 1)];\n if (alpha) {\n i++;\n } else {\n alpha = charInfo[''];\n }\n if (alpha) {\n result += \"&\" + alpha + \";\";\n i++;\n continue;\n }\n }\n if (c < 32 || c > 126) {\n result += '&#' + c + ';';\n } else {\n result += str.charAt(i);\n }\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.encodeNonUTF = function(str) {\n return new Html5Entities().encodeNonUTF(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml5Entities.prototype.encodeNonASCII = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n if (c <= 255) {\n result += str[i++];\n continue;\n }\n result += '&#' + c + ';';\n i++\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n Html5Entities.encodeNonASCII = function(str) {\n return new Html5Entities().encodeNonASCII(str);\n };\n\n/**\n * @param {Object} alphaIndex Passed by reference.\n * @param {Object} charIndex Passed by reference.\n */\nfunction createIndexes(alphaIndex, charIndex) {\n var i = ENTITIES.length;\n var _results = [];\n while (i--) {\n var e = ENTITIES[i];\n var alpha = e[0];\n var chars = e[1];\n var chr = chars[0];\n var addChar = (chr < 32 || chr > 126) || chr === 62 || chr === 60 || chr === 38 || chr === 34 || chr === 39;\n var charInfo;\n if (addChar) {\n charInfo = charIndex[chr] = charIndex[chr] || {};\n }\n if (chars[1]) {\n var chr2 = chars[1];\n alphaIndex[alpha] = String.fromCharCode(chr) + String.fromCharCode(chr2);\n _results.push(addChar && (charInfo[chr2] = alpha));\n } else {\n alphaIndex[alpha] = String.fromCharCode(chr);\n _results.push(addChar && (charInfo[''] = alpha));\n }\n }\n}\n\nmodule.exports = Html5Entities;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci8uL25vZGVfbW9kdWxlcy9odG1sLWVudGl0aWVzL2xpYi9odG1sNS1lbnRpdGllcy5qcz8xN2ZmIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBFTlRJVElFUyA9IFtbJ0FhY3V0ZScsIFsxOTNdXSwgWydhYWN1dGUnLCBbMjI1XV0sIFsnQWJyZXZlJywgWzI1OF1dLCBbJ2FicmV2ZScsIFsyNTldXSwgWydhYycsIFs4NzY2XV0sIFsnYWNkJywgWzg3NjddXSwgWydhY0UnLCBbODc2NiwgODE5XV0sIFsnQWNpcmMnLCBbMTk0XV0sIFsnYWNpcmMnLCBbMjI2XV0sIFsnYWN1dGUnLCBbMTgwXV0sIFsnQWN5JywgWzEwNDBdXSwgWydhY3knLCBbMTA3Ml1dLCBbJ0FFbGlnJywgWzE5OF1dLCBbJ2FlbGlnJywgWzIzMF1dLCBbJ2FmJywgWzgyODldXSwgWydBZnInLCBbMTIwMDY4XV0sIFsnYWZyJywgWzEyMDA5NF1dLCBbJ0FncmF2ZScsIFsxOTJdXSwgWydhZ3JhdmUnLCBbMjI0XV0sIFsnYWxlZnN5bScsIFs4NTAxXV0sIFsnYWxlcGgnLCBbODUwMV1dLCBbJ0FscGhhJywgWzkxM11dLCBbJ2FscGhhJywgWzk0NV1dLCBbJ0FtYWNyJywgWzI1Nl1dLCBbJ2FtYWNyJywgWzI1N11dLCBbJ2FtYWxnJywgWzEwODE1XV0sIFsnYW1wJywgWzM4XV0sIFsnQU1QJywgWzM4XV0sIFsnYW5kYW5kJywgWzEwODM3XV0sIFsnQW5kJywgWzEwODM1XV0sIFsnYW5kJywgWzg3NDNdXSwgWydhbmRkJywgWzEwODQ0XV0sIFsnYW5kc2xvcGUnLCBbMTA4NDBdXSwgWydhbmR2JywgWzEwODQyXV0sIFsnYW5nJywgWzg3MzZdXSwgWydhbmdlJywgWzEwNjYwXV0sIFsnYW5nbGUnLCBbODczNl1dLCBbJ2FuZ21zZGFhJywgWzEwNjY0XV0sIFsnYW5nbXNkYWInLCBbMTA2NjVdXSwgWydhbmdtc2RhYycsIFsxMDY2Nl1dLCBbJ2FuZ21zZGFkJywgWzEwNjY3XV0sIFsnYW5nbXNkYWUnLCBbMTA2NjhdXSwgWydhbmdtc2RhZicsIFsxMDY2OV1dLCBbJ2FuZ21zZGFnJywgWzEwNjcwXV0sIFsnYW5nbXNkYWgnLCBbMTA2NzFdXSwgWydhbmdtc2QnLCBbODczN11dLCBbJ2FuZ3J0JywgWzg3MzVdXSwgWydhbmdydHZiJywgWzg4OTRdXSwgWydhbmdydHZiZCcsIFsxMDY1M11dLCBbJ2FuZ3NwaCcsIFs4NzM4XV0sIFsnYW5nc3QnLCBbMTk3XV0sIFsnYW5nemFycicsIFs5MDg0XV0sIFsnQW9nb24nLCBbMjYwXV0sIFsnYW9nb24nLCBbMjYxXV0sIFsnQW9wZicsIFsxMjAxMjBdXSwgWydhb3BmJywgWzEyMDE0Nl1dLCBbJ2FwYWNpcicsIFsxMDg2M11dLCBbJ2FwJywgWzg3NzZdXSwgWydhcEUnLCBbMTA4NjRdXSwgWydhcGUnLCBbODc3OF1dLCBbJ2FwaWQnLCBbODc3OV1dLCBbJ2Fwb3MnLCBbMzldXSwgWydBcHBseUZ1bmN0aW9uJywgWzgyODldXSwgWydhcHByb3gnLCBbODc3Nl1dLCBbJ2FwcHJveGVxJywgWzg3NzhdXSwgWydBcmluZycsIFsxOTddXSwgWydhcmluZycsIFsyMjldXSwgWydBc2NyJywgWzExOTk2NF1dLCBbJ2FzY3InLCBbMTE5OTkwXV0sIFsnQXNzaWduJywgWzg3ODhdXSwgWydhc3QnLCBbNDJdXSwgWydhc3ltcCcsIFs4Nzc2XV0sIFsnYXN5bXBlcScsIFs4NzgxXV0sIFsnQXRpbGRlJywgWzE5NV1dLCBbJ2F0aWxkZScsIFsyMjddXSwgWydBdW1sJywgWzE5Nl1dLCBbJ2F1bWwnLCBbMjI4XV0sIFsnYXdjb25pbnQnLCBbODc1NV1dLCBbJ2F3aW50JywgWzEwNzY5XV0sIFsnYmFja2NvbmcnLCBbODc4MF1dLCBbJ2JhY2tlcHNpbG9uJywgWzEwMTRdXSwgWydiYWNrcHJpbWUnLCBbODI0NV1dLCBbJ2JhY2tzaW0nLCBbODc2NV1dLCBbJ2JhY2tzaW1lcScsIFs4OTA5XV0sIFsnQmFja3NsYXNoJywgWzg3MjZdXSwgWydCYXJ2JywgWzEwOTgzXV0sIFsnYmFydmVlJywgWzg4OTNdXSwgWydiYXJ3ZWQnLCBbODk2NV1dLCBbJ0JhcndlZCcsIFs4OTY2XV0sIFsnYmFyd2VkZ2UnLCBbODk2NV1dLCBbJ2JicmsnLCBbOTE0MV1dLCBbJ2Jicmt0YnJrJywgWzkxNDJdXSwgWydiY29uZycsIFs4NzgwXV0sIFsnQmN5JywgWzEwNDFdXSwgWydiY3knLCBbMTA3M11dLCBbJ2JkcXVvJywgWzgyMjJdXSwgWydiZWNhdXMnLCBbODc1N11dLCBbJ2JlY2F1c2UnLCBbODc1N11dLCBbJ0JlY2F1c2UnLCBbODc1N11dLCBbJ2JlbXB0eXYnLCBbMTA2NzJdXSwgWydiZXBzaScsIFsxMDE0XV0sIFsnYmVybm91JywgWzg0OTJdXSwgWydCZXJub3VsbGlzJywgWzg0OTJdXSwgWydCZXRhJywgWzkxNF1dLCBbJ2JldGEnLCBbOTQ2XV0sIFsnYmV0aCcsIFs4NTAyXV0sIFsnYmV0d2VlbicsIFs4ODEyXV0sIFsnQmZyJywgWzEyMDA2OV1dLCBbJ2JmcicsIFsxMjAwOTVdXSwgWydiaWdjYXAnLCBbODg5OF1dLCBbJ2JpZ2NpcmMnLCBbOTcxMV1dLCBbJ2JpZ2N1cCcsIFs4ODk5XV0sIFsnYmlnb2RvdCcsIFsxMDc1Ml1dLCBbJ2JpZ29wbHVzJywgWzEwNzUzXV0sIFsnYmlnb3RpbWVzJywgWzEwNzU0XV0sIFsnYmlnc3FjdXAnLCBbMTA3NThdXSwgWydiaWdzdGFyJywgWzk3MzNdXSwgWydiaWd0cmlhbmdsZWRvd24nLCBbOTY2MV1dLCBbJ2JpZ3RyaWFuZ2xldXAnLCBbOTY1MV1dLCBbJ2JpZ3VwbHVzJywgWzEwNzU2XV0sIFsnYmlndmVlJywgWzg4OTddXSwgWydiaWd3ZWRnZScsIFs4ODk2XV0sIFsnYmthcm93JywgWzEwNTA5XV0sIFsnYmxhY2tsb3plbmdlJywgWzEwNzMxXV0sIFsnYmxhY2tzcXVhcmUnLCBbOTY0Ml1dLCBbJ2JsYWNrdHJpYW5nbGUnLCBbOTY1Ml1dLCBbJ2JsYWNrdHJpYW5nbGVkb3duJywgWzk2NjJdXSwgWydibGFja3RyaWFuZ2xlbGVmdCcsIFs5NjY2XV0sIFsnYmxhY2t0cmlhbmdsZXJpZ2h0JywgWzk2NTZdXSwgWydibGFuaycsIFs5MjUxXV0sIFsnYmxrMTInLCBbOTYxOF1dLCBbJ2JsazE0JywgWzk2MTddXSwgWydibGszNCcsIFs5NjE5XV0sIFsnYmxvY2snLCBbOTYwOF1dLCBbJ2JuZScsIFs2MSwgODQyMV1dLCBbJ2JuZXF1aXYnLCBbODgwMSwgODQyMV1dLCBbJ2JOb3QnLCBbMTA5ODldXSwgWydibm90JywgWzg5NzZdXSwgWydCb3BmJywgWzEyMDEyMV1dLCBbJ2JvcGYnLCBbMTIwMTQ3XV0sIFsnYm90JywgWzg4NjldXSwgWydib3R0b20nLCBbODg2OV1dLCBbJ2Jvd3RpZScsIFs4OTA0XV0sIFsnYm94Ym94JywgWzEwNjk3XV0sIFsnYm94ZGwnLCBbOTQ4OF1dLCBbJ2JveGRMJywgWzk1NTddXSwgWydib3hEbCcsIFs5NTU4XV0sIFsnYm94REwnLCBbOTU1OV1dLCBbJ2JveGRyJywgWzk0ODRdXSwgWydib3hkUicsIFs5NTU0XV0sIFsnYm94RHInLCBbOTU1NV1dLCBbJ2JveERSJywgWzk1NTZdXSwgWydib3hoJywgWzk0NzJdXSwgWydib3hIJywgWzk1NTJdXSwgWydib3hoZCcsIFs5NTE2XV0sIFsnYm94SGQnLCBbOTU3Ml1dLCBbJ2JveGhEJywgWzk1NzNdXSwgWydib3hIRCcsIFs5NTc0XV0sIFsnYm94aHUnLCBbOTUyNF1dLCBbJ2JveEh1JywgWzk1NzVdXSwgWydib3hoVScsIFs5NTc2XV0sIFsnYm94SFUnLCBbOTU3N11dLCBbJ2JveG1pbnVzJywgWzg4NjNdXSwgWydib3hwbHVzJywgWzg4NjJdXSwgWydib3h0aW1lcycsIFs4ODY0XV0sIFsnYm94dWwnLCBbOTQ5Nl1dLCBbJ2JveHVMJywgWzk1NjNdXSwgWydib3hVbCcsIFs5NTY0XV0sIFsnYm94VUwnLCBbOTU2NV1dLCBbJ2JveHVyJywgWzk0OTJdXSwgWydib3h1UicsIFs5NTYwXV0sIFsnYm94VXInLCBbOTU2MV1dLCBbJ2JveFVSJywgWzk1NjJdXSwgWydib3h2JywgWzk0NzRdXSwgWydib3hWJywgWzk1NTNdXSwgWydib3h2aCcsIFs5NTMyXV0sIFsnYm94dkgnLCBbOTU3OF1dLCBbJ2JveFZoJywgWzk1NzldXSwgWydib3hWSCcsIFs5NTgwXV0sIFsnYm94dmwnLCBbOTUwOF1dLCBbJ2JveHZMJywgWzk1NjldXSwgWydib3hWbCcsIFs5NTcwXV0sIFsnYm94VkwnLCBbOTU3MV1dLCBbJ2JveHZyJywgWzk1MDBdXSwgWydib3h2UicsIFs5NTY2XV0sIFsnYm94VnInLCBbOTU2N11dLCBbJ2JveFZSJywgWzk1NjhdXSwgWydicHJpbWUnLCBbODI0NV1dLCBbJ2JyZXZlJywgWzcyOF1dLCBbJ0JyZXZlJywgWzcyOF1dLCBbJ2JydmJhcicsIFsxNjZdXSwgWydic2NyJywgWzExOTk5MV1dLCBbJ0JzY3InLCBbODQ5Ml1dLCBbJ2JzZW1pJywgWzgyNzFdXSwgWydic2ltJywgWzg3NjVdXSwgWydic2ltZScsIFs4OTA5XV0sIFsnYnNvbGInLCBbMTA2OTNdXSwgWydic29sJywgWzkyXV0sIFsnYnNvbGhzdWInLCBbMTAxODRdXSwgWydidWxsJywgWzgyMjZdXSwgWydidWxsZXQnLCBbODIyNl1dLCBbJ2J1bXAnLCBbODc4Ml1dLCBbJ2J1bXBFJywgWzEwOTI2XV0sIFsnYnVtcGUnLCBbODc4M11dLCBbJ0J1bXBlcScsIFs4NzgyXV0sIFsnYnVtcGVxJywgWzg3ODNdXSwgWydDYWN1dGUnLCBbMjYyXV0sIFsnY2FjdXRlJywgWzI2M11dLCBbJ2NhcGFuZCcsIFsxMDgyMF1dLCBbJ2NhcGJyY3VwJywgWzEwODI1XV0sIFsnY2FwY2FwJywgWzEwODI3XV0sIFsnY2FwJywgWzg3NDVdXSwgWydDYXAnLCBbODkxNF1dLCBbJ2NhcGN1cCcsIFsxMDgyM11dLCBbJ2NhcGRvdCcsIFsxMDgxNl1dLCBbJ0NhcGl0YWxEaWZmZXJlbnRpYWxEJywgWzg1MTddXSwgWydjYXBzJywgWzg3NDUsIDY1MDI0XV0sIFsnY2FyZXQnLCBbODI1N11dLCBbJ2Nhcm9uJywgWzcxMV1dLCBbJ0NheWxleXMnLCBbODQ5M11dLCBbJ2NjYXBzJywgWzEwODI5XV0sIFsnQ2Nhcm9uJywgWzI2OF1dLCBbJ2NjYXJvbicsIFsyNjldXSwgWydDY2VkaWwnLCBbMTk5XV0sIFsnY2NlZGlsJywgWzIzMV1dLCBbJ0NjaXJjJywgWzI2NF1dLCBbJ2NjaXJjJywgWzI2NV1dLCBbJ0Njb25pbnQnLCBbODc1Ml1dLCBbJ2NjdXBzJywgWzEwODI4XV0sIFsnY2N1cHNzbScsIFsxMDgzMl1dLCBbJ0Nkb3QnLCBbMjY2XV0sIFsnY2RvdCcsIFsyNjddXSwgWydjZWRpbCcsIFsxODRdXSwgWydDZWRpbGxhJywgWzE4NF1dLCBbJ2NlbXB0eXYnLCBbMTA2NzRdXSwgWydjZW50JywgWzE2Ml1dLCBbJ2NlbnRlcmRvdCcsIFsxODNdXSwgWydDZW50ZXJEb3QnLCBbMTgzXV0sIFsnY2ZyJywgWzEyMDA5Nl1dLCBbJ0NmcicsIFs4NDkzXV0sIFsnQ0hjeScsIFsxMDYzXV0sIFsnY2hjeScsIFsxMDk1XV0sIFsnY2hlY2snLCBbMTAwMDNdXSwgWydjaGVja21hcmsnLCBbMTAwMDNdXSwgWydDaGknLCBbOTM1XV0sIFsnY2hpJywgWzk2N11dLCBbJ2NpcmMnLCBbNzEwXV0sIFsnY2lyY2VxJywgWzg3OTFdXSwgWydjaXJjbGVhcnJvd2xlZnQnLCBbODYzNF1dLCBbJ2NpcmNsZWFycm93cmlnaHQnLCBbODYzNV1dLCBbJ2NpcmNsZWRhc3QnLCBbODg1OV1dLCBbJ2NpcmNsZWRjaXJjJywgWzg4NThdXSwgWydjaXJjbGVkZGFzaCcsIFs4ODYxXV0sIFsnQ2lyY2xlRG90JywgWzg4NTddXSwgWydjaXJjbGVkUicsIFsxNzRdXSwgWydjaXJjbGVkUycsIFs5NDE2XV0sIFsnQ2lyY2xlTWludXMnLCBbODg1NF1dLCBbJ0NpcmNsZVBsdXMnLCBbODg1M11dLCBbJ0NpcmNsZVRpbWVzJywgWzg4NTVdXSwgWydjaXInLCBbOTY3NV1dLCBbJ2NpckUnLCBbMTA2OTFdXSwgWydjaXJlJywgWzg3OTFdXSwgWydjaXJmbmludCcsIFsxMDc2OF1dLCBbJ2Npcm1pZCcsIFsxMDk5MV1dLCBbJ2NpcnNjaXInLCBbMTA2OTBdXSwgWydDbG9ja3dpc2VDb250b3VySW50ZWdyYWwnLCBbODc1NF1dLCBbJ2NsdWJzJywgWzk4MjddXSwgWydjbHVic3VpdCcsIFs5ODI3XV0sIFsnY29sb24nLCBbNThdXSwgWydDb2xvbicsIFs4NzU5XV0sIFsnQ29sb25lJywgWzEwODY4XV0sIFsnY29sb25lJywgWzg3ODhdXSwgWydjb2xvbmVxJywgWzg3ODhdXSwgWydjb21tYScsIFs0NF1dLCBbJ2NvbW1hdCcsIFs2NF1dLCBbJ2NvbXAnLCBbODcwNV1dLCBbJ2NvbXBmbicsIFs4NzI4XV0sIFsnY29tcGxlbWVudCcsIFs4NzA1XV0sIFsnY29tcGxleGVzJywgWzg0NTBdXSwgWydjb25nJywgWzg3NzNdXSwgWydjb25nZG90JywgWzEwODYxXV0sIFsnQ29uZ3J1ZW50JywgWzg4MDFdXSwgWydjb25pbnQnLCBbODc1MF1dLCBbJ0NvbmludCcsIFs4NzUxXV0sIFsnQ29udG91ckludGVncmFsJywgWzg3NTBdXSwgWydjb3BmJywgWzEyMDE0OF1dLCBbJ0NvcGYnLCBbODQ1MF1dLCBbJ2NvcHJvZCcsIFs4NzIwXV0sIFsnQ29wcm9kdWN0JywgWzg3MjBdXSwgWydjb3B5JywgWzE2OV1dLCBbJ0NPUFknLCBbMTY5XV0sIFsnY29weXNyJywgWzg0NzFdXSwgWydDb3VudGVyQ2xvY2t3aXNlQ29udG91ckludGVncmFsJywgWzg3NTVdXSwgWydjcmFycicsIFs4NjI5XV0sIFsnY3Jvc3MnLCBbMTAwMDddXSwgWydDcm9zcycsIFsxMDc5OV1dLCBbJ0NzY3InLCBbMTE5OTY2XV0sIFsnY3NjcicsIFsxMTk5OTJdXSwgWydjc3ViJywgWzEwOTU5XV0sIFsnY3N1YmUnLCBbMTA5NjFdXSwgWydjc3VwJywgWzEwOTYwXV0sIFsnY3N1cGUnLCBbMTA5NjJdXSwgWydjdGRvdCcsIFs4OTQzXV0sIFsnY3VkYXJybCcsIFsxMDU1Ml1dLCBbJ2N1ZGFycnInLCBbMTA1NDldXSwgWydjdWVwcicsIFs4OTI2XV0sIFsnY3Vlc2MnLCBbODkyN11dLCBbJ2N1bGFycicsIFs4NjMwXV0sIFsnY3VsYXJycCcsIFsxMDU1N11dLCBbJ2N1cGJyY2FwJywgWzEwODI0XV0sIFsnY3VwY2FwJywgWzEwODIyXV0sIFsnQ3VwQ2FwJywgWzg3ODFdXSwgWydjdXAnLCBbODc0Nl1dLCBbJ0N1cCcsIFs4OTE1XV0sIFsnY3VwY3VwJywgWzEwODI2XV0sIFsnY3VwZG90JywgWzg4NDVdXSwgWydjdXBvcicsIFsxMDgyMV1dLCBbJ2N1cHMnLCBbODc0NiwgNjUwMjRdXSwgWydjdXJhcnInLCBbODYzMV1dLCBbJ2N1cmFycm0nLCBbMTA1NTZdXSwgWydjdXJseWVxcHJlYycsIFs4OTI2XV0sIFsnY3VybHllcXN1Y2MnLCBbODkyN11dLCBbJ2N1cmx5dmVlJywgWzg5MTBdXSwgWydjdXJseXdlZGdlJywgWzg5MTFdXSwgWydjdXJyZW4nLCBbMTY0XV0sIFsnY3VydmVhcnJvd2xlZnQnLCBbODYzMF1dLCBbJ2N1cnZlYXJyb3dyaWdodCcsIFs4NjMxXV0sIFsnY3V2ZWUnLCBbODkxMF1dLCBbJ2N1d2VkJywgWzg5MTFdXSwgWydjd2NvbmludCcsIFs4NzU0XV0sIFsnY3dpbnQnLCBbODc1M11dLCBbJ2N5bGN0eScsIFs5MDA1XV0sIFsnZGFnZ2VyJywgWzgyMjRdXSwgWydEYWdnZXInLCBbODIyNV1dLCBbJ2RhbGV0aCcsIFs4NTA0XV0sIFsnZGFycicsIFs4NTk1XV0sIFsnRGFycicsIFs4NjA5XV0sIFsnZEFycicsIFs4NjU5XV0sIFsnZGFzaCcsIFs4MjA4XV0sIFsnRGFzaHYnLCBbMTA5ODBdXSwgWydkYXNodicsIFs4ODY3XV0sIFsnZGJrYXJvdycsIFsxMDUxMV1dLCBbJ2RibGFjJywgWzczM11dLCBbJ0RjYXJvbicsIFsyNzBdXSwgWydkY2Fyb24nLCBbMjcxXV0sIFsnRGN5JywgWzEwNDRdXSwgWydkY3knLCBbMTA3Nl1dLCBbJ2RkYWdnZXInLCBbODIyNV1dLCBbJ2RkYXJyJywgWzg2NTBdXSwgWydERCcsIFs4NTE3XV0sIFsnZGQnLCBbODUxOF1dLCBbJ0REb3RyYWhkJywgWzEwNTEzXV0sIFsnZGRvdHNlcScsIFsxMDg3MV1dLCBbJ2RlZycsIFsxNzZdXSwgWydEZWwnLCBbODcxMV1dLCBbJ0RlbHRhJywgWzkxNl1dLCBbJ2RlbHRhJywgWzk0OF1dLCBbJ2RlbXB0eXYnLCBbMTA2NzNdXSwgWydkZmlzaHQnLCBbMTA2MjNdXSwgWydEZnInLCBbMTIwMDcxXV0sIFsnZGZyJywgWzEyMDA5N11dLCBbJ2RIYXInLCBbMTA1OTddXSwgWydkaGFybCcsIFs4NjQzXV0sIFsnZGhhcnInLCBbODY0Ml1dLCBbJ0RpYWNyaXRpY2FsQWN1dGUnLCBbMTgwXV0sIFsnRGlhY3JpdGljYWxEb3QnLCBbNzI5XV0sIFsnRGlhY3JpdGljYWxEb3VibGVBY3V0ZScsIFs3MzNdXSwgWydEaWFjcml0aWNhbEdyYXZlJywgWzk2XV0sIFsnRGlhY3JpdGljYWxUaWxkZScsIFs3MzJdXSwgWydkaWFtJywgWzg5MDBdXSwgWydkaWFtb25kJywgWzg5MDBdXSwgWydEaWFtb25kJywgWzg5MDBdXSwgWydkaWFtb25kc3VpdCcsIFs5ODMwXV0sIFsnZGlhbXMnLCBbOTgzMF1dLCBbJ2RpZScsIFsxNjhdXSwgWydEaWZmZXJlbnRpYWxEJywgWzg1MThdXSwgWydkaWdhbW1hJywgWzk4OV1dLCBbJ2Rpc2luJywgWzg5NDZdXSwgWydkaXYnLCBbMjQ3XV0sIFsnZGl2aWRlJywgWzI0N11dLCBbJ2RpdmlkZW9udGltZXMnLCBbODkwM11dLCBbJ2Rpdm9ueCcsIFs4OTAzXV0sIFsnREpjeScsIFsxMDI2XV0sIFsnZGpjeScsIFsxMTA2XV0sIFsnZGxjb3JuJywgWzg5OTBdXSwgWydkbGNyb3AnLCBbODk3M11dLCBbJ2RvbGxhcicsIFszNl1dLCBbJ0RvcGYnLCBbMTIwMTIzXV0sIFsnZG9wZicsIFsxMjAxNDldXSwgWydEb3QnLCBbMTY4XV0sIFsnZG90JywgWzcyOV1dLCBbJ0RvdERvdCcsIFs4NDEyXV0sIFsnZG90ZXEnLCBbODc4NF1dLCBbJ2RvdGVxZG90JywgWzg3ODVdXSwgWydEb3RFcXVhbCcsIFs4Nzg0XV0sIFsnZG90bWludXMnLCBbODc2MF1dLCBbJ2RvdHBsdXMnLCBbODcyNF1dLCBbJ2RvdHNxdWFyZScsIFs4ODY1XV0sIFsnZG91YmxlYmFyd2VkZ2UnLCBbODk2Nl1dLCBbJ0RvdWJsZUNvbnRvdXJJbnRlZ3JhbCcsIFs4NzUxXV0sIFsnRG91YmxlRG90JywgWzE2OF1dLCBbJ0RvdWJsZURvd25BcnJvdycsIFs4NjU5XV0sIFsnRG91YmxlTGVmdEFycm93JywgWzg2NTZdXSwgWydEb3VibGVMZWZ0UmlnaHRBcnJvdycsIFs4NjYwXV0sIFsnRG91YmxlTGVmdFRlZScsIFsxMDk4MF1dLCBbJ0RvdWJsZUxvbmdMZWZ0QXJyb3cnLCBbMTAyMzJdXSwgWydEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3cnLCBbMTAyMzRdXSwgWydEb3VibGVMb25nUmlnaHRBcnJvdycsIFsxMDIzM11dLCBbJ0RvdWJsZVJpZ2h0QXJyb3cnLCBbODY1OF1dLCBbJ0RvdWJsZVJpZ2h0VGVlJywgWzg4NzJdXSwgWydEb3VibGVVcEFycm93JywgWzg2NTddXSwgWydEb3VibGVVcERvd25BcnJvdycsIFs4NjYxXV0sIFsnRG91YmxlVmVydGljYWxCYXInLCBbODc0MV1dLCBbJ0Rvd25BcnJvd0JhcicsIFsxMDUxNV1dLCBbJ2Rvd25hcnJvdycsIFs4NTk1XV0sIFsnRG93bkFycm93JywgWzg1OTVdXSwgWydEb3duYXJyb3cnLCBbODY1OV1dLCBbJ0Rvd25BcnJvd1VwQXJyb3cnLCBbODY5M11dLCBbJ0Rvd25CcmV2ZScsIFs3ODVdXSwgWydkb3duZG93bmFycm93cycsIFs4NjUwXV0sIFsnZG93bmhhcnBvb25sZWZ0JywgWzg2NDNdXSwgWydkb3duaGFycG9vbnJpZ2h0JywgWzg2NDJdXSwgWydEb3duTGVmdFJpZ2h0VmVjdG9yJywgWzEwNTc2XV0sIFsnRG93bkxlZnRUZWVWZWN0b3InLCBbMTA1OTBdXSwgWydEb3duTGVmdFZlY3RvckJhcicsIFsxMDU4Ml1dLCBbJ0Rvd25MZWZ0VmVjdG9yJywgWzg2MzddXSwgWydEb3duUmlnaHRUZWVWZWN0b3InLCBbMTA1OTFdXSwgWydEb3duUmlnaHRWZWN0b3JCYXInLCBbMTA1ODNdXSwgWydEb3duUmlnaHRWZWN0b3InLCBbODY0MV1dLCBbJ0Rvd25UZWVBcnJvdycsIFs4NjE1XV0sIFsnRG93blRlZScsIFs4ODY4XV0sIFsnZHJia2Fyb3cnLCBbMTA1MTJdXSwgWydkcmNvcm4nLCBbODk5MV1dLCBbJ2RyY3JvcCcsIFs4OTcyXV0sIFsnRHNjcicsIFsxMTk5NjddXSwgWydkc2NyJywgWzExOTk5M11dLCBbJ0RTY3knLCBbMTAyOV1dLCBbJ2RzY3knLCBbMTEwOV1dLCBbJ2Rzb2wnLCBbMTA3NDJdXSwgWydEc3Ryb2snLCBbMjcyXV0sIFsnZHN0cm9rJywgWzI3M11dLCBbJ2R0ZG90JywgWzg5NDVdXSwgWydkdHJpJywgWzk2NjNdXSwgWydkdHJpZicsIFs5NjYyXV0sIFsnZHVhcnInLCBbODY5M11dLCBbJ2R1aGFyJywgWzEwNjA3XV0sIFsnZHdhbmdsZScsIFsxMDY2Ml1dLCBbJ0RaY3knLCBbMTAzOV1dLCBbJ2R6Y3knLCBbMTExOV1dLCBbJ2R6aWdyYXJyJywgWzEwMjM5XV0sIFsnRWFjdXRlJywgWzIwMV1dLCBbJ2VhY3V0ZScsIFsyMzNdXSwgWydlYXN0ZXInLCBbMTA4NjJdXSwgWydFY2Fyb24nLCBbMjgyXV0sIFsnZWNhcm9uJywgWzI4M11dLCBbJ0VjaXJjJywgWzIwMl1dLCBbJ2VjaXJjJywgWzIzNF1dLCBbJ2VjaXInLCBbODc5MF1dLCBbJ2Vjb2xvbicsIFs4Nzg5XV0sIFsnRWN5JywgWzEwNjldXSwgWydlY3knLCBbMTEwMV1dLCBbJ2VERG90JywgWzEwODcxXV0sIFsnRWRvdCcsIFsyNzhdXSwgWydlZG90JywgWzI3OV1dLCBbJ2VEb3QnLCBbODc4NV1dLCBbJ2VlJywgWzg1MTldXSwgWydlZkRvdCcsIFs4Nzg2XV0sIFsnRWZyJywgWzEyMDA3Ml1dLCBbJ2VmcicsIFsxMjAwOThdXSwgWydlZycsIFsxMDkwNl1dLCBbJ0VncmF2ZScsIFsyMDBdXSwgWydlZ3JhdmUnLCBbMjMyXV0sIFsnZWdzJywgWzEwOTAyXV0sIFsnZWdzZG90JywgWzEwOTA0XV0sIFsnZWwnLCBbMTA5MDVdXSwgWydFbGVtZW50JywgWzg3MTJdXSwgWydlbGludGVycycsIFs5MTkxXV0sIFsnZWxsJywgWzg0NjddXSwgWydlbHMnLCBbMTA5MDFdXSwgWydlbHNkb3QnLCBbMTA5MDNdXSwgWydFbWFjcicsIFsyNzRdXSwgWydlbWFjcicsIFsyNzVdXSwgWydlbXB0eScsIFs4NzA5XV0sIFsnZW1wdHlzZXQnLCBbODcwOV1dLCBbJ0VtcHR5U21hbGxTcXVhcmUnLCBbOTcyM11dLCBbJ2VtcHR5dicsIFs4NzA5XV0sIFsnRW1wdHlWZXJ5U21hbGxTcXVhcmUnLCBbOTY0M11dLCBbJ2Vtc3AxMycsIFs4MTk2XV0sIFsnZW1zcDE0JywgWzgxOTddXSwgWydlbXNwJywgWzgxOTVdXSwgWydFTkcnLCBbMzMwXV0sIFsnZW5nJywgWzMzMV1dLCBbJ2Vuc3AnLCBbODE5NF1dLCBbJ0VvZ29uJywgWzI4MF1dLCBbJ2VvZ29uJywgWzI4MV1dLCBbJ0VvcGYnLCBbMTIwMTI0XV0sIFsnZW9wZicsIFsxMjAxNTBdXSwgWydlcGFyJywgWzg5MTddXSwgWydlcGFyc2wnLCBbMTA3MjNdXSwgWydlcGx1cycsIFsxMDg2NV1dLCBbJ2Vwc2knLCBbOTQ5XV0sIFsnRXBzaWxvbicsIFs5MTddXSwgWydlcHNpbG9uJywgWzk0OV1dLCBbJ2Vwc2l2JywgWzEwMTNdXSwgWydlcWNpcmMnLCBbODc5MF1dLCBbJ2VxY29sb24nLCBbODc4OV1dLCBbJ2Vxc2ltJywgWzg3NzBdXSwgWydlcXNsYW50Z3RyJywgWzEwOTAyXV0sIFsnZXFzbGFudGxlc3MnLCBbMTA5MDFdXSwgWydFcXVhbCcsIFsxMDg2OV1dLCBbJ2VxdWFscycsIFs2MV1dLCBbJ0VxdWFsVGlsZGUnLCBbODc3MF1dLCBbJ2VxdWVzdCcsIFs4Nzk5XV0sIFsnRXF1aWxpYnJpdW0nLCBbODY1Ml1dLCBbJ2VxdWl2JywgWzg4MDFdXSwgWydlcXVpdkREJywgWzEwODcyXV0sIFsnZXF2cGFyc2wnLCBbMTA3MjVdXSwgWydlcmFycicsIFsxMDYwOV1dLCBbJ2VyRG90JywgWzg3ODddXSwgWydlc2NyJywgWzg0OTVdXSwgWydFc2NyJywgWzg0OTZdXSwgWydlc2RvdCcsIFs4Nzg0XV0sIFsnRXNpbScsIFsxMDg2N11dLCBbJ2VzaW0nLCBbODc3MF1dLCBbJ0V0YScsIFs5MTldXSwgWydldGEnLCBbOTUxXV0sIFsnRVRIJywgWzIwOF1dLCBbJ2V0aCcsIFsyNDBdXSwgWydFdW1sJywgWzIwM11dLCBbJ2V1bWwnLCBbMjM1XV0sIFsnZXVybycsIFs4MzY0XV0sIFsnZXhjbCcsIFszM11dLCBbJ2V4aXN0JywgWzg3MDddXSwgWydFeGlzdHMnLCBbODcwN11dLCBbJ2V4cGVjdGF0aW9uJywgWzg0OTZdXSwgWydleHBvbmVudGlhbGUnLCBbODUxOV1dLCBbJ0V4cG9uZW50aWFsRScsIFs4NTE5XV0sIFsnZmFsbGluZ2RvdHNlcScsIFs4Nzg2XV0sIFsnRmN5JywgWzEwNjBdXSwgWydmY3knLCBbMTA5Ml1dLCBbJ2ZlbWFsZScsIFs5NzkyXV0sIFsnZmZpbGlnJywgWzY0MjU5XV0sIFsnZmZsaWcnLCBbNjQyNTZdXSwgWydmZmxsaWcnLCBbNjQyNjBdXSwgWydGZnInLCBbMTIwMDczXV0sIFsnZmZyJywgWzEyMDA5OV1dLCBbJ2ZpbGlnJywgWzY0MjU3XV0sIFsnRmlsbGVkU21hbGxTcXVhcmUnLCBbOTcyNF1dLCBbJ0ZpbGxlZFZlcnlTbWFsbFNxdWFyZScsIFs5NjQyXV0sIFsnZmpsaWcnLCBbMTAyLCAxMDZdXSwgWydmbGF0JywgWzk4MzddXSwgWydmbGxpZycsIFs2NDI1OF1dLCBbJ2ZsdG5zJywgWzk2NDldXSwgWydmbm9mJywgWzQwMl1dLCBbJ0ZvcGYnLCBbMTIwMTI1XV0sIFsnZm9wZicsIFsxMjAxNTFdXSwgWydmb3JhbGwnLCBbODcwNF1dLCBbJ0ZvckFsbCcsIFs4NzA0XV0sIFsnZm9yaycsIFs4OTE2XV0sIFsnZm9ya3YnLCBbMTA5NjldXSwgWydGb3VyaWVydHJmJywgWzg0OTddXSwgWydmcGFydGludCcsIFsxMDc2NV1dLCBbJ2ZyYWMxMicsIFsxODldXSwgWydmcmFjMTMnLCBbODUzMV1dLCBbJ2ZyYWMxNCcsIFsxODhdXSwgWydmcmFjMTUnLCBbODUzM11dLCBbJ2ZyYWMxNicsIFs4NTM3XV0sIFsnZnJhYzE4JywgWzg1MzldXSwgWydmcmFjMjMnLCBbODUzMl1dLCBbJ2ZyYWMyNScsIFs4NTM0XV0sIFsnZnJhYzM0JywgWzE5MF1dLCBbJ2ZyYWMzNScsIFs4NTM1XV0sIFsnZnJhYzM4JywgWzg1NDBdXSwgWydmcmFjNDUnLCBbODUzNl1dLCBbJ2ZyYWM1NicsIFs4NTM4XV0sIFsnZnJhYzU4JywgWzg1NDFdXSwgWydmcmFjNzgnLCBbODU0Ml1dLCBbJ2ZyYXNsJywgWzgyNjBdXSwgWydmcm93bicsIFs4OTk0XV0sIFsnZnNjcicsIFsxMTk5OTVdXSwgWydGc2NyJywgWzg0OTddXSwgWydnYWN1dGUnLCBbNTAxXV0sIFsnR2FtbWEnLCBbOTE1XV0sIFsnZ2FtbWEnLCBbOTQ3XV0sIFsnR2FtbWFkJywgWzk4OF1dLCBbJ2dhbW1hZCcsIFs5ODldXSwgWydnYXAnLCBbMTA4ODZdXSwgWydHYnJldmUnLCBbMjg2XV0sIFsnZ2JyZXZlJywgWzI4N11dLCBbJ0djZWRpbCcsIFsyOTBdXSwgWydHY2lyYycsIFsyODRdXSwgWydnY2lyYycsIFsyODVdXSwgWydHY3knLCBbMTA0M11dLCBbJ2djeScsIFsxMDc1XV0sIFsnR2RvdCcsIFsyODhdXSwgWydnZG90JywgWzI4OV1dLCBbJ2dlJywgWzg4MDVdXSwgWydnRScsIFs4ODA3XV0sIFsnZ0VsJywgWzEwODkyXV0sIFsnZ2VsJywgWzg5MjNdXSwgWydnZXEnLCBbODgwNV1dLCBbJ2dlcXEnLCBbODgwN11dLCBbJ2dlcXNsYW50JywgWzEwODc4XV0sIFsnZ2VzY2MnLCBbMTA5MjFdXSwgWydnZXMnLCBbMTA4NzhdXSwgWydnZXNkb3QnLCBbMTA4ODBdXSwgWydnZXNkb3RvJywgWzEwODgyXV0sIFsnZ2VzZG90b2wnLCBbMTA4ODRdXSwgWydnZXNsJywgWzg5MjMsIDY1MDI0XV0sIFsnZ2VzbGVzJywgWzEwOTAwXV0sIFsnR2ZyJywgWzEyMDA3NF1dLCBbJ2dmcicsIFsxMjAxMDBdXSwgWydnZycsIFs4ODExXV0sIFsnR2cnLCBbODkyMV1dLCBbJ2dnZycsIFs4OTIxXV0sIFsnZ2ltZWwnLCBbODUwM11dLCBbJ0dKY3knLCBbMTAyN11dLCBbJ2dqY3knLCBbMTEwN11dLCBbJ2dsYScsIFsxMDkxN11dLCBbJ2dsJywgWzg4MjNdXSwgWydnbEUnLCBbMTA4OThdXSwgWydnbGonLCBbMTA5MTZdXSwgWydnbmFwJywgWzEwODkwXV0sIFsnZ25hcHByb3gnLCBbMTA4OTBdXSwgWydnbmUnLCBbMTA4ODhdXSwgWydnbkUnLCBbODgwOV1dLCBbJ2duZXEnLCBbMTA4ODhdXSwgWydnbmVxcScsIFs4ODA5XV0sIFsnZ25zaW0nLCBbODkzNV1dLCBbJ0dvcGYnLCBbMTIwMTI2XV0sIFsnZ29wZicsIFsxMjAxNTJdXSwgWydncmF2ZScsIFs5Nl1dLCBbJ0dyZWF0ZXJFcXVhbCcsIFs4ODA1XV0sIFsnR3JlYXRlckVxdWFsTGVzcycsIFs4OTIzXV0sIFsnR3JlYXRlckZ1bGxFcXVhbCcsIFs4ODA3XV0sIFsnR3JlYXRlckdyZWF0ZXInLCBbMTA5MTRdXSwgWydHcmVhdGVyTGVzcycsIFs4ODIzXV0sIFsnR3JlYXRlclNsYW50RXF1YWwnLCBbMTA4NzhdXSwgWydHcmVhdGVyVGlsZGUnLCBbODgxOV1dLCBbJ0dzY3InLCBbMTE5OTcwXV0sIFsnZ3NjcicsIFs4NDU4XV0sIFsnZ3NpbScsIFs4ODE5XV0sIFsnZ3NpbWUnLCBbMTA4OTRdXSwgWydnc2ltbCcsIFsxMDg5Nl1dLCBbJ2d0Y2MnLCBbMTA5MTldXSwgWydndGNpcicsIFsxMDg3NF1dLCBbJ2d0JywgWzYyXV0sIFsnR1QnLCBbNjJdXSwgWydHdCcsIFs4ODExXV0sIFsnZ3Rkb3QnLCBbODkxOV1dLCBbJ2d0bFBhcicsIFsxMDY0NV1dLCBbJ2d0cXVlc3QnLCBbMTA4NzZdXSwgWydndHJhcHByb3gnLCBbMTA4ODZdXSwgWydndHJhcnInLCBbMTA2MTZdXSwgWydndHJkb3QnLCBbODkxOV1dLCBbJ2d0cmVxbGVzcycsIFs4OTIzXV0sIFsnZ3RyZXFxbGVzcycsIFsxMDg5Ml1dLCBbJ2d0cmxlc3MnLCBbODgyM11dLCBbJ2d0cnNpbScsIFs4ODE5XV0sIFsnZ3ZlcnRuZXFxJywgWzg4MDksIDY1MDI0XV0sIFsnZ3ZuRScsIFs4ODA5LCA2NTAyNF1dLCBbJ0hhY2VrJywgWzcxMV1dLCBbJ2hhaXJzcCcsIFs4MjAyXV0sIFsnaGFsZicsIFsxODldXSwgWydoYW1pbHQnLCBbODQ1OV1dLCBbJ0hBUkRjeScsIFsxMDY2XV0sIFsnaGFyZGN5JywgWzEwOThdXSwgWydoYXJyY2lyJywgWzEwNTY4XV0sIFsnaGFycicsIFs4NTk2XV0sIFsnaEFycicsIFs4NjYwXV0sIFsnaGFycncnLCBbODYyMV1dLCBbJ0hhdCcsIFs5NF1dLCBbJ2hiYXInLCBbODQ2M11dLCBbJ0hjaXJjJywgWzI5Ml1dLCBbJ2hjaXJjJywgWzI5M11dLCBbJ2hlYXJ0cycsIFs5ODI5XV0sIFsnaGVhcnRzdWl0JywgWzk4MjldXSwgWydoZWxsaXAnLCBbODIzMF1dLCBbJ2hlcmNvbicsIFs4ODg5XV0sIFsnaGZyJywgWzEyMDEwMV1dLCBbJ0hmcicsIFs4NDYwXV0sIFsnSGlsYmVydFNwYWNlJywgWzg0NTldXSwgWydoa3NlYXJvdycsIFsxMDUzM11dLCBbJ2hrc3dhcm93JywgWzEwNTM0XV0sIFsnaG9hcnInLCBbODcwM11dLCBbJ2hvbXRodCcsIFs4NzYzXV0sIFsnaG9va2xlZnRhcnJvdycsIFs4NjE3XV0sIFsnaG9va3JpZ2h0YXJyb3cnLCBbODYxOF1dLCBbJ2hvcGYnLCBbMTIwMTUzXV0sIFsnSG9wZicsIFs4NDYxXV0sIFsnaG9yYmFyJywgWzgyMTNdXSwgWydIb3Jpem9udGFsTGluZScsIFs5NDcyXV0sIFsnaHNjcicsIFsxMTk5OTddXSwgWydIc2NyJywgWzg0NTldXSwgWydoc2xhc2gnLCBbODQ2M11dLCBbJ0hzdHJvaycsIFsyOTRdXSwgWydoc3Ryb2snLCBbMjk1XV0sIFsnSHVtcERvd25IdW1wJywgWzg3ODJdXSwgWydIdW1wRXF1YWwnLCBbODc4M11dLCBbJ2h5YnVsbCcsIFs4MjU5XV0sIFsnaHlwaGVuJywgWzgyMDhdXSwgWydJYWN1dGUnLCBbMjA1XV0sIFsnaWFjdXRlJywgWzIzN11dLCBbJ2ljJywgWzgyOTFdXSwgWydJY2lyYycsIFsyMDZdXSwgWydpY2lyYycsIFsyMzhdXSwgWydJY3knLCBbMTA0OF1dLCBbJ2ljeScsIFsxMDgwXV0sIFsnSWRvdCcsIFszMDRdXSwgWydJRWN5JywgWzEwNDVdXSwgWydpZWN5JywgWzEwNzddXSwgWydpZXhjbCcsIFsxNjFdXSwgWydpZmYnLCBbODY2MF1dLCBbJ2lmcicsIFsxMjAxMDJdXSwgWydJZnInLCBbODQ2NV1dLCBbJ0lncmF2ZScsIFsyMDRdXSwgWydpZ3JhdmUnLCBbMjM2XV0sIFsnaWknLCBbODUyMF1dLCBbJ2lpaWludCcsIFsxMDc2NF1dLCBbJ2lpaW50JywgWzg3NDldXSwgWydpaW5maW4nLCBbMTA3MTZdXSwgWydpaW90YScsIFs4NDg5XV0sIFsnSUpsaWcnLCBbMzA2XV0sIFsnaWpsaWcnLCBbMzA3XV0sIFsnSW1hY3InLCBbMjk4XV0sIFsnaW1hY3InLCBbMjk5XV0sIFsnaW1hZ2UnLCBbODQ2NV1dLCBbJ0ltYWdpbmFyeUknLCBbODUyMF1dLCBbJ2ltYWdsaW5lJywgWzg0NjRdXSwgWydpbWFncGFydCcsIFs4NDY1XV0sIFsnaW1hdGgnLCBbMzA1XV0sIFsnSW0nLCBbODQ2NV1dLCBbJ2ltb2YnLCBbODg4N11dLCBbJ2ltcGVkJywgWzQzN11dLCBbJ0ltcGxpZXMnLCBbODY1OF1dLCBbJ2luY2FyZScsIFs4NDUzXV0sIFsnaW4nLCBbODcxMl1dLCBbJ2luZmluJywgWzg3MzRdXSwgWydpbmZpbnRpZScsIFsxMDcxN11dLCBbJ2lub2RvdCcsIFszMDVdXSwgWydpbnRjYWwnLCBbODg5MF1dLCBbJ2ludCcsIFs4NzQ3XV0sIFsnSW50JywgWzg3NDhdXSwgWydpbnRlZ2VycycsIFs4NDg0XV0sIFsnSW50ZWdyYWwnLCBbODc0N11dLCBbJ2ludGVyY2FsJywgWzg4OTBdXSwgWydJbnRlcnNlY3Rpb24nLCBbODg5OF1dLCBbJ2ludGxhcmhrJywgWzEwNzc1XV0sIFsnaW50cHJvZCcsIFsxMDgxMl1dLCBbJ0ludmlzaWJsZUNvbW1hJywgWzgyOTFdXSwgWydJbnZpc2libGVUaW1lcycsIFs4MjkwXV0sIFsnSU9jeScsIFsxMDI1XV0sIFsnaW9jeScsIFsxMTA1XV0sIFsnSW9nb24nLCBbMzAyXV0sIFsnaW9nb24nLCBbMzAzXV0sIFsnSW9wZicsIFsxMjAxMjhdXSwgWydpb3BmJywgWzEyMDE1NF1dLCBbJ0lvdGEnLCBbOTIxXV0sIFsnaW90YScsIFs5NTNdXSwgWydpcHJvZCcsIFsxMDgxMl1dLCBbJ2lxdWVzdCcsIFsxOTFdXSwgWydpc2NyJywgWzExOTk5OF1dLCBbJ0lzY3InLCBbODQ2NF1dLCBbJ2lzaW4nLCBbODcxMl1dLCBbJ2lzaW5kb3QnLCBbODk0OV1dLCBbJ2lzaW5FJywgWzg5NTNdXSwgWydpc2lucycsIFs4OTQ4XV0sIFsnaXNpbnN2JywgWzg5NDddXSwgWydpc2ludicsIFs4NzEyXV0sIFsnaXQnLCBbODI5MF1dLCBbJ0l0aWxkZScsIFsyOTZdXSwgWydpdGlsZGUnLCBbMjk3XV0sIFsnSXVrY3knLCBbMTAzMF1dLCBbJ2l1a2N5JywgWzExMTBdXSwgWydJdW1sJywgWzIwN11dLCBbJ2l1bWwnLCBbMjM5XV0sIFsnSmNpcmMnLCBbMzA4XV0sIFsnamNpcmMnLCBbMzA5XV0sIFsnSmN5JywgWzEwNDldXSwgWydqY3knLCBbMTA4MV1dLCBbJ0pmcicsIFsxMjAwNzddXSwgWydqZnInLCBbMTIwMTAzXV0sIFsnam1hdGgnLCBbNTY3XV0sIFsnSm9wZicsIFsxMjAxMjldXSwgWydqb3BmJywgWzEyMDE1NV1dLCBbJ0pzY3InLCBbMTE5OTczXV0sIFsnanNjcicsIFsxMTk5OTldXSwgWydKc2VyY3knLCBbMTAzMl1dLCBbJ2pzZXJjeScsIFsxMTEyXV0sIFsnSnVrY3knLCBbMTAyOF1dLCBbJ2p1a2N5JywgWzExMDhdXSwgWydLYXBwYScsIFs5MjJdXSwgWydrYXBwYScsIFs5NTRdXSwgWydrYXBwYXYnLCBbMTAwOF1dLCBbJ0tjZWRpbCcsIFszMTBdXSwgWydrY2VkaWwnLCBbMzExXV0sIFsnS2N5JywgWzEwNTBdXSwgWydrY3knLCBbMTA4Ml1dLCBbJ0tmcicsIFsxMjAwNzhdXSwgWydrZnInLCBbMTIwMTA0XV0sIFsna2dyZWVuJywgWzMxMl1dLCBbJ0tIY3knLCBbMTA2MV1dLCBbJ2toY3knLCBbMTA5M11dLCBbJ0tKY3knLCBbMTAzNl1dLCBbJ2tqY3knLCBbMTExNl1dLCBbJ0tvcGYnLCBbMTIwMTMwXV0sIFsna29wZicsIFsxMjAxNTZdXSwgWydLc2NyJywgWzExOTk3NF1dLCBbJ2tzY3InLCBbMTIwMDAwXV0sIFsnbEFhcnInLCBbODY2Nl1dLCBbJ0xhY3V0ZScsIFszMTNdXSwgWydsYWN1dGUnLCBbMzE0XV0sIFsnbGFlbXB0eXYnLCBbMTA2NzZdXSwgWydsYWdyYW4nLCBbODQ2Nl1dLCBbJ0xhbWJkYScsIFs5MjNdXSwgWydsYW1iZGEnLCBbOTU1XV0sIFsnbGFuZycsIFsxMDIxNl1dLCBbJ0xhbmcnLCBbMTAyMThdXSwgWydsYW5nZCcsIFsxMDY0MV1dLCBbJ2xhbmdsZScsIFsxMDIxNl1dLCBbJ2xhcCcsIFsxMDg4NV1dLCBbJ0xhcGxhY2V0cmYnLCBbODQ2Nl1dLCBbJ2xhcXVvJywgWzE3MV1dLCBbJ2xhcnJiJywgWzg2NzZdXSwgWydsYXJyYmZzJywgWzEwNTI3XV0sIFsnbGFycicsIFs4NTkyXV0sIFsnTGFycicsIFs4NjA2XV0sIFsnbEFycicsIFs4NjU2XV0sIFsnbGFycmZzJywgWzEwNTI1XV0sIFsnbGFycmhrJywgWzg2MTddXSwgWydsYXJybHAnLCBbODYxOV1dLCBbJ2xhcnJwbCcsIFsxMDU1M11dLCBbJ2xhcnJzaW0nLCBbMTA2MTFdXSwgWydsYXJydGwnLCBbODYxMF1dLCBbJ2xhdGFpbCcsIFsxMDUyMV1dLCBbJ2xBdGFpbCcsIFsxMDUyM11dLCBbJ2xhdCcsIFsxMDkyM11dLCBbJ2xhdGUnLCBbMTA5MjVdXSwgWydsYXRlcycsIFsxMDkyNSwgNjUwMjRdXSwgWydsYmFycicsIFsxMDUwOF1dLCBbJ2xCYXJyJywgWzEwNTEwXV0sIFsnbGJicmsnLCBbMTAwOThdXSwgWydsYnJhY2UnLCBbMTIzXV0sIFsnbGJyYWNrJywgWzkxXV0sIFsnbGJya2UnLCBbMTA2MzVdXSwgWydsYnJrc2xkJywgWzEwNjM5XV0sIFsnbGJya3NsdScsIFsxMDYzN11dLCBbJ0xjYXJvbicsIFszMTddXSwgWydsY2Fyb24nLCBbMzE4XV0sIFsnTGNlZGlsJywgWzMxNV1dLCBbJ2xjZWRpbCcsIFszMTZdXSwgWydsY2VpbCcsIFs4OTY4XV0sIFsnbGN1YicsIFsxMjNdXSwgWydMY3knLCBbMTA1MV1dLCBbJ2xjeScsIFsxMDgzXV0sIFsnbGRjYScsIFsxMDU1MF1dLCBbJ2xkcXVvJywgWzgyMjBdXSwgWydsZHF1b3InLCBbODIyMl1dLCBbJ2xkcmRoYXInLCBbMTA1OTldXSwgWydsZHJ1c2hhcicsIFsxMDU3MV1dLCBbJ2xkc2gnLCBbODYyNl1dLCBbJ2xlJywgWzg4MDRdXSwgWydsRScsIFs4ODA2XV0sIFsnTGVmdEFuZ2xlQnJhY2tldCcsIFsxMDIxNl1dLCBbJ0xlZnRBcnJvd0JhcicsIFs4Njc2XV0sIFsnbGVmdGFycm93JywgWzg1OTJdXSwgWydMZWZ0QXJyb3cnLCBbODU5Ml1dLCBbJ0xlZnRhcnJvdycsIFs4NjU2XV0sIFsnTGVmdEFycm93UmlnaHRBcnJvdycsIFs4NjQ2XV0sIFsnbGVmdGFycm93dGFpbCcsIFs4NjEwXV0sIFsnTGVmdENlaWxpbmcnLCBbODk2OF1dLCBbJ0xlZnREb3VibGVCcmFja2V0JywgWzEwMjE0XV0sIFsnTGVmdERvd25UZWVWZWN0b3InLCBbMTA1OTNdXSwgWydMZWZ0RG93blZlY3RvckJhcicsIFsxMDU4NV1dLCBbJ0xlZnREb3duVmVjdG9yJywgWzg2NDNdXSwgWydMZWZ0Rmxvb3InLCBbODk3MF1dLCBbJ2xlZnRoYXJwb29uZG93bicsIFs4NjM3XV0sIFsnbGVmdGhhcnBvb251cCcsIFs4NjM2XV0sIFsnbGVmdGxlZnRhcnJvd3MnLCBbODY0N11dLCBbJ2xlZnRyaWdodGFycm93JywgWzg1OTZdXSwgWydMZWZ0UmlnaHRBcnJvdycsIFs4NTk2XV0sIFsnTGVmdHJpZ2h0YXJyb3cnLCBbODY2MF1dLCBbJ2xlZnRyaWdodGFycm93cycsIFs4NjQ2XV0sIFsnbGVmdHJpZ2h0aGFycG9vbnMnLCBbODY1MV1dLCBbJ2xlZnRyaWdodHNxdWlnYXJyb3cnLCBbODYyMV1dLCBbJ0xlZnRSaWdodFZlY3RvcicsIFsxMDU3NF1dLCBbJ0xlZnRUZWVBcnJvdycsIFs4NjEyXV0sIFsnTGVmdFRlZScsIFs4ODY3XV0sIFsnTGVmdFRlZVZlY3RvcicsIFsxMDU4Nl1dLCBbJ2xlZnR0aHJlZXRpbWVzJywgWzg5MDddXSwgWydMZWZ0VHJpYW5nbGVCYXInLCBbMTA3MDNdXSwgWydMZWZ0VHJpYW5nbGUnLCBbODg4Ml1dLCBbJ0xlZnRUcmlhbmdsZUVxdWFsJywgWzg4ODRdXSwgWydMZWZ0VXBEb3duVmVjdG9yJywgWzEwNTc3XV0sIFsnTGVmdFVwVGVlVmVjdG9yJywgWzEwNTkyXV0sIFsnTGVmdFVwVmVjdG9yQmFyJywgWzEwNTg0XV0sIFsnTGVmdFVwVmVjdG9yJywgWzg2MzldXSwgWydMZWZ0VmVjdG9yQmFyJywgWzEwNTc4XV0sIFsnTGVmdFZlY3RvcicsIFs4NjM2XV0sIFsnbEVnJywgWzEwODkxXV0sIFsnbGVnJywgWzg5MjJdXSwgWydsZXEnLCBbODgwNF1dLCBbJ2xlcXEnLCBbODgwNl1dLCBbJ2xlcXNsYW50JywgWzEwODc3XV0sIFsnbGVzY2MnLCBbMTA5MjBdXSwgWydsZXMnLCBbMTA4NzddXSwgWydsZXNkb3QnLCBbMTA4NzldXSwgWydsZXNkb3RvJywgWzEwODgxXV0sIFsnbGVzZG90b3InLCBbMTA4ODNdXSwgWydsZXNnJywgWzg5MjIsIDY1MDI0XV0sIFsnbGVzZ2VzJywgWzEwODk5XV0sIFsnbGVzc2FwcHJveCcsIFsxMDg4NV1dLCBbJ2xlc3Nkb3QnLCBbODkxOF1dLCBbJ2xlc3NlcWd0cicsIFs4OTIyXV0sIFsnbGVzc2VxcWd0cicsIFsxMDg5MV1dLCBbJ0xlc3NFcXVhbEdyZWF0ZXInLCBbODkyMl1dLCBbJ0xlc3NGdWxsRXF1YWwnLCBbODgwNl1dLCBbJ0xlc3NHcmVhdGVyJywgWzg4MjJdXSwgWydsZXNzZ3RyJywgWzg4MjJdXSwgWydMZXNzTGVzcycsIFsxMDkxM11dLCBbJ2xlc3NzaW0nLCBbODgxOF1dLCBbJ0xlc3NTbGFudEVxdWFsJywgWzEwODc3XV0sIFsnTGVzc1RpbGRlJywgWzg4MThdXSwgWydsZmlzaHQnLCBbMTA2MjBdXSwgWydsZmxvb3InLCBbODk3MF1dLCBbJ0xmcicsIFsxMjAwNzldXSwgWydsZnInLCBbMTIwMTA1XV0sIFsnbGcnLCBbODgyMl1dLCBbJ2xnRScsIFsxMDg5N11dLCBbJ2xIYXInLCBbMTA1OTRdXSwgWydsaGFyZCcsIFs4NjM3XV0sIFsnbGhhcnUnLCBbODYzNl1dLCBbJ2xoYXJ1bCcsIFsxMDYwMl1dLCBbJ2xoYmxrJywgWzk2MDRdXSwgWydMSmN5JywgWzEwMzNdXSwgWydsamN5JywgWzExMTNdXSwgWydsbGFycicsIFs4NjQ3XV0sIFsnbGwnLCBbODgxMF1dLCBbJ0xsJywgWzg5MjBdXSwgWydsbGNvcm5lcicsIFs4OTkwXV0sIFsnTGxlZnRhcnJvdycsIFs4NjY2XV0sIFsnbGxoYXJkJywgWzEwNjAzXV0sIFsnbGx0cmknLCBbOTcyMl1dLCBbJ0xtaWRvdCcsIFszMTldXSwgWydsbWlkb3QnLCBbMzIwXV0sIFsnbG1vdXN0YWNoZScsIFs5MTM2XV0sIFsnbG1vdXN0JywgWzkxMzZdXSwgWydsbmFwJywgWzEwODg5XV0sIFsnbG5hcHByb3gnLCBbMTA4ODldXSwgWydsbmUnLCBbMTA4ODddXSwgWydsbkUnLCBbODgwOF1dLCBbJ2xuZXEnLCBbMTA4ODddXSwgWydsbmVxcScsIFs4ODA4XV0sIFsnbG5zaW0nLCBbODkzNF1dLCBbJ2xvYW5nJywgWzEwMjIwXV0sIFsnbG9hcnInLCBbODcwMV1dLCBbJ2xvYnJrJywgWzEwMjE0XV0sIFsnbG9uZ2xlZnRhcnJvdycsIFsxMDIyOV1dLCBbJ0xvbmdMZWZ0QXJyb3cnLCBbMTAyMjldXSwgWydMb25nbGVmdGFycm93JywgWzEwMjMyXV0sIFsnbG9uZ2xlZnRyaWdodGFycm93JywgWzEwMjMxXV0sIFsnTG9uZ0xlZnRSaWdodEFycm93JywgWzEwMjMxXV0sIFsnTG9uZ2xlZnRyaWdodGFycm93JywgWzEwMjM0XV0sIFsnbG9uZ21hcHN0bycsIFsxMDIzNl1dLCBbJ2xvbmdyaWdodGFycm93JywgWzEwMjMwXV0sIFsnTG9uZ1JpZ2h0QXJyb3cnLCBbMTAyMzBdXSwgWydMb25ncmlnaHRhcnJvdycsIFsxMDIzM11dLCBbJ2xvb3BhcnJvd2xlZnQnLCBbODYxOV1dLCBbJ2xvb3BhcnJvd3JpZ2h0JywgWzg2MjBdXSwgWydsb3BhcicsIFsxMDYyOV1dLCBbJ0xvcGYnLCBbMTIwMTMxXV0sIFsnbG9wZicsIFsxMjAxNTddXSwgWydsb3BsdXMnLCBbMTA3OTddXSwgWydsb3RpbWVzJywgWzEwODA0XV0sIFsnbG93YXN0JywgWzg3MjddXSwgWydsb3diYXInLCBbOTVdXSwgWydMb3dlckxlZnRBcnJvdycsIFs4NjAxXV0sIFsnTG93ZXJSaWdodEFycm93JywgWzg2MDBdXSwgWydsb3onLCBbOTY3NF1dLCBbJ2xvemVuZ2UnLCBbOTY3NF1dLCBbJ2xvemYnLCBbMTA3MzFdXSwgWydscGFyJywgWzQwXV0sIFsnbHBhcmx0JywgWzEwNjQzXV0sIFsnbHJhcnInLCBbODY0Nl1dLCBbJ2xyY29ybmVyJywgWzg5OTFdXSwgWydscmhhcicsIFs4NjUxXV0sIFsnbHJoYXJkJywgWzEwNjA1XV0sIFsnbHJtJywgWzgyMDZdXSwgWydscnRyaScsIFs4ODk1XV0sIFsnbHNhcXVvJywgWzgyNDldXSwgWydsc2NyJywgWzEyMDAwMV1dLCBbJ0xzY3InLCBbODQ2Nl1dLCBbJ2xzaCcsIFs4NjI0XV0sIFsnTHNoJywgWzg2MjRdXSwgWydsc2ltJywgWzg4MThdXSwgWydsc2ltZScsIFsxMDg5M11dLCBbJ2xzaW1nJywgWzEwODk1XV0sIFsnbHNxYicsIFs5MV1dLCBbJ2xzcXVvJywgWzgyMTZdXSwgWydsc3F1b3InLCBbODIxOF1dLCBbJ0xzdHJvaycsIFszMjFdXSwgWydsc3Ryb2snLCBbMzIyXV0sIFsnbHRjYycsIFsxMDkxOF1dLCBbJ2x0Y2lyJywgWzEwODczXV0sIFsnbHQnLCBbNjBdXSwgWydMVCcsIFs2MF1dLCBbJ0x0JywgWzg4MTBdXSwgWydsdGRvdCcsIFs4OTE4XV0sIFsnbHRocmVlJywgWzg5MDddXSwgWydsdGltZXMnLCBbODkwNV1dLCBbJ2x0bGFycicsIFsxMDYxNF1dLCBbJ2x0cXVlc3QnLCBbMTA4NzVdXSwgWydsdHJpJywgWzk2NjddXSwgWydsdHJpZScsIFs4ODg0XV0sIFsnbHRyaWYnLCBbOTY2Nl1dLCBbJ2x0clBhcicsIFsxMDY0Nl1dLCBbJ2x1cmRzaGFyJywgWzEwNTcwXV0sIFsnbHVydWhhcicsIFsxMDU5OF1dLCBbJ2x2ZXJ0bmVxcScsIFs4ODA4LCA2NTAyNF1dLCBbJ2x2bkUnLCBbODgwOCwgNjUwMjRdXSwgWydtYWNyJywgWzE3NV1dLCBbJ21hbGUnLCBbOTc5NF1dLCBbJ21hbHQnLCBbMTAwMTZdXSwgWydtYWx0ZXNlJywgWzEwMDE2XV0sIFsnTWFwJywgWzEwNTAxXV0sIFsnbWFwJywgWzg2MTRdXSwgWydtYXBzdG8nLCBbODYxNF1dLCBbJ21hcHN0b2Rvd24nLCBbODYxNV1dLCBbJ21hcHN0b2xlZnQnLCBbODYxMl1dLCBbJ21hcHN0b3VwJywgWzg2MTNdXSwgWydtYXJrZXInLCBbOTY0Nl1dLCBbJ21jb21tYScsIFsxMDc5M11dLCBbJ01jeScsIFsxMDUyXV0sIFsnbWN5JywgWzEwODRdXSwgWydtZGFzaCcsIFs4MjEyXV0sIFsnbUREb3QnLCBbODc2Ml1dLCBbJ21lYXN1cmVkYW5nbGUnLCBbODczN11dLCBbJ01lZGl1bVNwYWNlJywgWzgyODddXSwgWydNZWxsaW50cmYnLCBbODQ5OV1dLCBbJ01mcicsIFsxMjAwODBdXSwgWydtZnInLCBbMTIwMTA2XV0sIFsnbWhvJywgWzg0ODddXSwgWydtaWNybycsIFsxODFdXSwgWydtaWRhc3QnLCBbNDJdXSwgWydtaWRjaXInLCBbMTA5OTJdXSwgWydtaWQnLCBbODczOV1dLCBbJ21pZGRvdCcsIFsxODNdXSwgWydtaW51c2InLCBbODg2M11dLCBbJ21pbnVzJywgWzg3MjJdXSwgWydtaW51c2QnLCBbODc2MF1dLCBbJ21pbnVzZHUnLCBbMTA3OTRdXSwgWydNaW51c1BsdXMnLCBbODcyM11dLCBbJ21sY3AnLCBbMTA5NzFdXSwgWydtbGRyJywgWzgyMzBdXSwgWydtbnBsdXMnLCBbODcyM11dLCBbJ21vZGVscycsIFs4ODcxXV0sIFsnTW9wZicsIFsxMjAxMzJdXSwgWydtb3BmJywgWzEyMDE1OF1dLCBbJ21wJywgWzg3MjNdXSwgWydtc2NyJywgWzEyMDAwMl1dLCBbJ01zY3InLCBbODQ5OV1dLCBbJ21zdHBvcycsIFs4NzY2XV0sIFsnTXUnLCBbOTI0XV0sIFsnbXUnLCBbOTU2XV0sIFsnbXVsdGltYXAnLCBbODg4OF1dLCBbJ211bWFwJywgWzg4ODhdXSwgWyduYWJsYScsIFs4NzExXV0sIFsnTmFjdXRlJywgWzMyM11dLCBbJ25hY3V0ZScsIFszMjRdXSwgWyduYW5nJywgWzg3MzYsIDg0MDJdXSwgWyduYXAnLCBbODc3N11dLCBbJ25hcEUnLCBbMTA4NjQsIDgyNF1dLCBbJ25hcGlkJywgWzg3NzksIDgyNF1dLCBbJ25hcG9zJywgWzMyOV1dLCBbJ25hcHByb3gnLCBbODc3N11dLCBbJ25hdHVyYWwnLCBbOTgzOF1dLCBbJ25hdHVyYWxzJywgWzg0NjldXSwgWyduYXR1cicsIFs5ODM4XV0sIFsnbmJzcCcsIFsxNjBdXSwgWyduYnVtcCcsIFs4NzgyLCA4MjRdXSwgWyduYnVtcGUnLCBbODc4MywgODI0XV0sIFsnbmNhcCcsIFsxMDgxOV1dLCBbJ05jYXJvbicsIFszMjddXSwgWyduY2Fyb24nLCBbMzI4XV0sIFsnTmNlZGlsJywgWzMyNV1dLCBbJ25jZWRpbCcsIFszMjZdXSwgWyduY29uZycsIFs4Nzc1XV0sIFsnbmNvbmdkb3QnLCBbMTA4NjEsIDgyNF1dLCBbJ25jdXAnLCBbMTA4MThdXSwgWydOY3knLCBbMTA1M11dLCBbJ25jeScsIFsxMDg1XV0sIFsnbmRhc2gnLCBbODIxMV1dLCBbJ25lYXJoaycsIFsxMDUzMl1dLCBbJ25lYXJyJywgWzg1OTldXSwgWyduZUFycicsIFs4NjYzXV0sIFsnbmVhcnJvdycsIFs4NTk5XV0sIFsnbmUnLCBbODgwMF1dLCBbJ25lZG90JywgWzg3ODQsIDgyNF1dLCBbJ05lZ2F0aXZlTWVkaXVtU3BhY2UnLCBbODIwM11dLCBbJ05lZ2F0aXZlVGhpY2tTcGFjZScsIFs4MjAzXV0sIFsnTmVnYXRpdmVUaGluU3BhY2UnLCBbODIwM11dLCBbJ05lZ2F0aXZlVmVyeVRoaW5TcGFjZScsIFs4MjAzXV0sIFsnbmVxdWl2JywgWzg4MDJdXSwgWyduZXNlYXInLCBbMTA1MzZdXSwgWyduZXNpbScsIFs4NzcwLCA4MjRdXSwgWydOZXN0ZWRHcmVhdGVyR3JlYXRlcicsIFs4ODExXV0sIFsnTmVzdGVkTGVzc0xlc3MnLCBbODgxMF1dLCBbJ25leGlzdCcsIFs4NzA4XV0sIFsnbmV4aXN0cycsIFs4NzA4XV0sIFsnTmZyJywgWzEyMDA4MV1dLCBbJ25mcicsIFsxMjAxMDddXSwgWyduZ0UnLCBbODgwNywgODI0XV0sIFsnbmdlJywgWzg4MTddXSwgWyduZ2VxJywgWzg4MTddXSwgWyduZ2VxcScsIFs4ODA3LCA4MjRdXSwgWyduZ2Vxc2xhbnQnLCBbMTA4NzgsIDgyNF1dLCBbJ25nZXMnLCBbMTA4NzgsIDgyNF1dLCBbJ25HZycsIFs4OTIxLCA4MjRdXSwgWyduZ3NpbScsIFs4ODIxXV0sIFsnbkd0JywgWzg4MTEsIDg0MDJdXSwgWyduZ3QnLCBbODgxNV1dLCBbJ25ndHInLCBbODgxNV1dLCBbJ25HdHYnLCBbODgxMSwgODI0XV0sIFsnbmhhcnInLCBbODYyMl1dLCBbJ25oQXJyJywgWzg2NTRdXSwgWyduaHBhcicsIFsxMDk5NF1dLCBbJ25pJywgWzg3MTVdXSwgWyduaXMnLCBbODk1Nl1dLCBbJ25pc2QnLCBbODk1NF1dLCBbJ25pdicsIFs4NzE1XV0sIFsnTkpjeScsIFsxMDM0XV0sIFsnbmpjeScsIFsxMTE0XV0sIFsnbmxhcnInLCBbODYwMl1dLCBbJ25sQXJyJywgWzg2NTNdXSwgWydubGRyJywgWzgyMjldXSwgWydubEUnLCBbODgwNiwgODI0XV0sIFsnbmxlJywgWzg4MTZdXSwgWydubGVmdGFycm93JywgWzg2MDJdXSwgWyduTGVmdGFycm93JywgWzg2NTNdXSwgWydubGVmdHJpZ2h0YXJyb3cnLCBbODYyMl1dLCBbJ25MZWZ0cmlnaHRhcnJvdycsIFs4NjU0XV0sIFsnbmxlcScsIFs4ODE2XV0sIFsnbmxlcXEnLCBbODgwNiwgODI0XV0sIFsnbmxlcXNsYW50JywgWzEwODc3LCA4MjRdXSwgWydubGVzJywgWzEwODc3LCA4MjRdXSwgWydubGVzcycsIFs4ODE0XV0sIFsnbkxsJywgWzg5MjAsIDgyNF1dLCBbJ25sc2ltJywgWzg4MjBdXSwgWyduTHQnLCBbODgxMCwgODQwMl1dLCBbJ25sdCcsIFs4ODE0XV0sIFsnbmx0cmknLCBbODkzOF1dLCBbJ25sdHJpZScsIFs4OTQwXV0sIFsnbkx0dicsIFs4ODEwLCA4MjRdXSwgWydubWlkJywgWzg3NDBdXSwgWydOb0JyZWFrJywgWzgyODhdXSwgWydOb25CcmVha2luZ1NwYWNlJywgWzE2MF1dLCBbJ25vcGYnLCBbMTIwMTU5XV0sIFsnTm9wZicsIFs4NDY5XV0sIFsnTm90JywgWzEwOTg4XV0sIFsnbm90JywgWzE3Ml1dLCBbJ05vdENvbmdydWVudCcsIFs4ODAyXV0sIFsnTm90Q3VwQ2FwJywgWzg4MTNdXSwgWydOb3REb3VibGVWZXJ0aWNhbEJhcicsIFs4NzQyXV0sIFsnTm90RWxlbWVudCcsIFs4NzEzXV0sIFsnTm90RXF1YWwnLCBbODgwMF1dLCBbJ05vdEVxdWFsVGlsZGUnLCBbODc3MCwgODI0XV0sIFsnTm90RXhpc3RzJywgWzg3MDhdXSwgWydOb3RHcmVhdGVyJywgWzg4MTVdXSwgWydOb3RHcmVhdGVyRXF1YWwnLCBbODgxN11dLCBbJ05vdEdyZWF0ZXJGdWxsRXF1YWwnLCBbODgwNywgODI0XV0sIFsnTm90R3JlYXRlckdyZWF0ZXInLCBbODgxMSwgODI0XV0sIFsnTm90R3JlYXRlckxlc3MnLCBbODgyNV1dLCBbJ05vdEdyZWF0ZXJTbGFudEVxdWFsJywgWzEwODc4LCA4MjRdXSwgWydOb3RHcmVhdGVyVGlsZGUnLCBbODgyMV1dLCBbJ05vdEh1bXBEb3duSHVtcCcsIFs4NzgyLCA4MjRdXSwgWydOb3RIdW1wRXF1YWwnLCBbODc4MywgODI0XV0sIFsnbm90aW4nLCBbODcxM11dLCBbJ25vdGluZG90JywgWzg5NDksIDgyNF1dLCBbJ25vdGluRScsIFs4OTUzLCA4MjRdXSwgWydub3RpbnZhJywgWzg3MTNdXSwgWydub3RpbnZiJywgWzg5NTFdXSwgWydub3RpbnZjJywgWzg5NTBdXSwgWydOb3RMZWZ0VHJpYW5nbGVCYXInLCBbMTA3MDMsIDgyNF1dLCBbJ05vdExlZnRUcmlhbmdsZScsIFs4OTM4XV0sIFsnTm90TGVmdFRyaWFuZ2xlRXF1YWwnLCBbODk0MF1dLCBbJ05vdExlc3MnLCBbODgxNF1dLCBbJ05vdExlc3NFcXVhbCcsIFs4ODE2XV0sIFsnTm90TGVzc0dyZWF0ZXInLCBbODgyNF1dLCBbJ05vdExlc3NMZXNzJywgWzg4MTAsIDgyNF1dLCBbJ05vdExlc3NTbGFudEVxdWFsJywgWzEwODc3LCA4MjRdXSwgWydOb3RMZXNzVGlsZGUnLCBbODgyMF1dLCBbJ05vdE5lc3RlZEdyZWF0ZXJHcmVhdGVyJywgWzEwOTE0LCA4MjRdXSwgWydOb3ROZXN0ZWRMZXNzTGVzcycsIFsxMDkxMywgODI0XV0sIFsnbm90bmknLCBbODcxNl1dLCBbJ25vdG5pdmEnLCBbODcxNl1dLCBbJ25vdG5pdmInLCBbODk1OF1dLCBbJ25vdG5pdmMnLCBbODk1N11dLCBbJ05vdFByZWNlZGVzJywgWzg4MzJdXSwgWydOb3RQcmVjZWRlc0VxdWFsJywgWzEwOTI3LCA4MjRdXSwgWydOb3RQcmVjZWRlc1NsYW50RXF1YWwnLCBbODkyOF1dLCBbJ05vdFJldmVyc2VFbGVtZW50JywgWzg3MTZdXSwgWydOb3RSaWdodFRyaWFuZ2xlQmFyJywgWzEwNzA0LCA4MjRdXSwgWydOb3RSaWdodFRyaWFuZ2xlJywgWzg5MzldXSwgWydOb3RSaWdodFRyaWFuZ2xlRXF1YWwnLCBbODk0MV1dLCBbJ05vdFNxdWFyZVN1YnNldCcsIFs4ODQ3LCA4MjRdXSwgWydOb3RTcXVhcmVTdWJzZXRFcXVhbCcsIFs4OTMwXV0sIFsnTm90U3F1YXJlU3VwZXJzZXQnLCBbODg0OCwgODI0XV0sIFsnTm90U3F1YXJlU3VwZXJzZXRFcXVhbCcsIFs4OTMxXV0sIFsnTm90U3Vic2V0JywgWzg4MzQsIDg0MDJdXSwgWydOb3RTdWJzZXRFcXVhbCcsIFs4ODQwXV0sIFsnTm90U3VjY2VlZHMnLCBbODgzM11dLCBbJ05vdFN1Y2NlZWRzRXF1YWwnLCBbMTA5MjgsIDgyNF1dLCBbJ05vdFN1Y2NlZWRzU2xhbnRFcXVhbCcsIFs4OTI5XV0sIFsnTm90U3VjY2VlZHNUaWxkZScsIFs4ODMxLCA4MjRdXSwgWydOb3RTdXBlcnNldCcsIFs4ODM1LCA4NDAyXV0sIFsnTm90U3VwZXJzZXRFcXVhbCcsIFs4ODQxXV0sIFsnTm90VGlsZGUnLCBbODc2OV1dLCBbJ05vdFRpbGRlRXF1YWwnLCBbODc3Ml1dLCBbJ05vdFRpbGRlRnVsbEVxdWFsJywgWzg3NzVdXSwgWydOb3RUaWxkZVRpbGRlJywgWzg3NzddXSwgWydOb3RWZXJ0aWNhbEJhcicsIFs4NzQwXV0sIFsnbnBhcmFsbGVsJywgWzg3NDJdXSwgWyducGFyJywgWzg3NDJdXSwgWyducGFyc2wnLCBbMTEwMDUsIDg0MjFdXSwgWyducGFydCcsIFs4NzA2LCA4MjRdXSwgWyducG9saW50JywgWzEwNzcyXV0sIFsnbnByJywgWzg4MzJdXSwgWyducHJjdWUnLCBbODkyOF1dLCBbJ25wcmVjJywgWzg4MzJdXSwgWyducHJlY2VxJywgWzEwOTI3LCA4MjRdXSwgWyducHJlJywgWzEwOTI3LCA4MjRdXSwgWyducmFycmMnLCBbMTA1NDcsIDgyNF1dLCBbJ25yYXJyJywgWzg2MDNdXSwgWyduckFycicsIFs4NjU1XV0sIFsnbnJhcnJ3JywgWzg2MDUsIDgyNF1dLCBbJ25yaWdodGFycm93JywgWzg2MDNdXSwgWyduUmlnaHRhcnJvdycsIFs4NjU1XV0sIFsnbnJ0cmknLCBbODkzOV1dLCBbJ25ydHJpZScsIFs4OTQxXV0sIFsnbnNjJywgWzg4MzNdXSwgWyduc2NjdWUnLCBbODkyOV1dLCBbJ25zY2UnLCBbMTA5MjgsIDgyNF1dLCBbJ05zY3InLCBbMTE5OTc3XV0sIFsnbnNjcicsIFsxMjAwMDNdXSwgWyduc2hvcnRtaWQnLCBbODc0MF1dLCBbJ25zaG9ydHBhcmFsbGVsJywgWzg3NDJdXSwgWyduc2ltJywgWzg3NjldXSwgWyduc2ltZScsIFs4NzcyXV0sIFsnbnNpbWVxJywgWzg3NzJdXSwgWyduc21pZCcsIFs4NzQwXV0sIFsnbnNwYXInLCBbODc0Ml1dLCBbJ25zcXN1YmUnLCBbODkzMF1dLCBbJ25zcXN1cGUnLCBbODkzMV1dLCBbJ25zdWInLCBbODgzNl1dLCBbJ25zdWJFJywgWzEwOTQ5LCA4MjRdXSwgWyduc3ViZScsIFs4ODQwXV0sIFsnbnN1YnNldCcsIFs4ODM0LCA4NDAyXV0sIFsnbnN1YnNldGVxJywgWzg4NDBdXSwgWyduc3Vic2V0ZXFxJywgWzEwOTQ5LCA4MjRdXSwgWyduc3VjYycsIFs4ODMzXV0sIFsnbnN1Y2NlcScsIFsxMDkyOCwgODI0XV0sIFsnbnN1cCcsIFs4ODM3XV0sIFsnbnN1cEUnLCBbMTA5NTAsIDgyNF1dLCBbJ25zdXBlJywgWzg4NDFdXSwgWyduc3Vwc2V0JywgWzg4MzUsIDg0MDJdXSwgWyduc3Vwc2V0ZXEnLCBbODg0MV1dLCBbJ25zdXBzZXRlcXEnLCBbMTA5NTAsIDgyNF1dLCBbJ250Z2wnLCBbODgyNV1dLCBbJ050aWxkZScsIFsyMDldXSwgWydudGlsZGUnLCBbMjQxXV0sIFsnbnRsZycsIFs4ODI0XV0sIFsnbnRyaWFuZ2xlbGVmdCcsIFs4OTM4XV0sIFsnbnRyaWFuZ2xlbGVmdGVxJywgWzg5NDBdXSwgWydudHJpYW5nbGVyaWdodCcsIFs4OTM5XV0sIFsnbnRyaWFuZ2xlcmlnaHRlcScsIFs4OTQxXV0sIFsnTnUnLCBbOTI1XV0sIFsnbnUnLCBbOTU3XV0sIFsnbnVtJywgWzM1XV0sIFsnbnVtZXJvJywgWzg0NzBdXSwgWydudW1zcCcsIFs4MTk5XV0sIFsnbnZhcCcsIFs4NzgxLCA4NDAyXV0sIFsnbnZkYXNoJywgWzg4NzZdXSwgWydudkRhc2gnLCBbODg3N11dLCBbJ25WZGFzaCcsIFs4ODc4XV0sIFsnblZEYXNoJywgWzg4NzldXSwgWydudmdlJywgWzg4MDUsIDg0MDJdXSwgWydudmd0JywgWzYyLCA4NDAyXV0sIFsnbnZIYXJyJywgWzEwNTAwXV0sIFsnbnZpbmZpbicsIFsxMDcxOF1dLCBbJ252bEFycicsIFsxMDQ5OF1dLCBbJ252bGUnLCBbODgwNCwgODQwMl1dLCBbJ252bHQnLCBbNjAsIDg0MDJdXSwgWydudmx0cmllJywgWzg4ODQsIDg0MDJdXSwgWydudnJBcnInLCBbMTA0OTldXSwgWydudnJ0cmllJywgWzg4ODUsIDg0MDJdXSwgWydudnNpbScsIFs4NzY0LCA4NDAyXV0sIFsnbndhcmhrJywgWzEwNTMxXV0sIFsnbndhcnInLCBbODU5OF1dLCBbJ253QXJyJywgWzg2NjJdXSwgWydud2Fycm93JywgWzg1OThdXSwgWydud25lYXInLCBbMTA1MzVdXSwgWydPYWN1dGUnLCBbMjExXV0sIFsnb2FjdXRlJywgWzI0M11dLCBbJ29hc3QnLCBbODg1OV1dLCBbJ09jaXJjJywgWzIxMl1dLCBbJ29jaXJjJywgWzI0NF1dLCBbJ29jaXInLCBbODg1OF1dLCBbJ09jeScsIFsxMDU0XV0sIFsnb2N5JywgWzEwODZdXSwgWydvZGFzaCcsIFs4ODYxXV0sIFsnT2RibGFjJywgWzMzNl1dLCBbJ29kYmxhYycsIFszMzddXSwgWydvZGl2JywgWzEwODA4XV0sIFsnb2RvdCcsIFs4ODU3XV0sIFsnb2Rzb2xkJywgWzEwNjg0XV0sIFsnT0VsaWcnLCBbMzM4XV0sIFsnb2VsaWcnLCBbMzM5XV0sIFsnb2ZjaXInLCBbMTA2ODddXSwgWydPZnInLCBbMTIwMDgyXV0sIFsnb2ZyJywgWzEyMDEwOF1dLCBbJ29nb24nLCBbNzMxXV0sIFsnT2dyYXZlJywgWzIxMF1dLCBbJ29ncmF2ZScsIFsyNDJdXSwgWydvZ3QnLCBbMTA2ODldXSwgWydvaGJhcicsIFsxMDY3N11dLCBbJ29obScsIFs5MzddXSwgWydvaW50JywgWzg3NTBdXSwgWydvbGFycicsIFs4NjM0XV0sIFsnb2xjaXInLCBbMTA2ODZdXSwgWydvbGNyb3NzJywgWzEwNjgzXV0sIFsnb2xpbmUnLCBbODI1NF1dLCBbJ29sdCcsIFsxMDY4OF1dLCBbJ09tYWNyJywgWzMzMl1dLCBbJ29tYWNyJywgWzMzM11dLCBbJ09tZWdhJywgWzkzN11dLCBbJ29tZWdhJywgWzk2OV1dLCBbJ09taWNyb24nLCBbOTI3XV0sIFsnb21pY3JvbicsIFs5NTldXSwgWydvbWlkJywgWzEwNjc4XV0sIFsnb21pbnVzJywgWzg4NTRdXSwgWydPb3BmJywgWzEyMDEzNF1dLCBbJ29vcGYnLCBbMTIwMTYwXV0sIFsnb3BhcicsIFsxMDY3OV1dLCBbJ09wZW5DdXJseURvdWJsZVF1b3RlJywgWzgyMjBdXSwgWydPcGVuQ3VybHlRdW90ZScsIFs4MjE2XV0sIFsnb3BlcnAnLCBbMTA2ODFdXSwgWydvcGx1cycsIFs4ODUzXV0sIFsnb3JhcnInLCBbODYzNV1dLCBbJ09yJywgWzEwODM2XV0sIFsnb3InLCBbODc0NF1dLCBbJ29yZCcsIFsxMDg0NV1dLCBbJ29yZGVyJywgWzg1MDBdXSwgWydvcmRlcm9mJywgWzg1MDBdXSwgWydvcmRmJywgWzE3MF1dLCBbJ29yZG0nLCBbMTg2XV0sIFsnb3JpZ29mJywgWzg4ODZdXSwgWydvcm9yJywgWzEwODM4XV0sIFsnb3JzbG9wZScsIFsxMDgzOV1dLCBbJ29ydicsIFsxMDg0M11dLCBbJ29TJywgWzk0MTZdXSwgWydPc2NyJywgWzExOTk3OF1dLCBbJ29zY3InLCBbODUwMF1dLCBbJ09zbGFzaCcsIFsyMTZdXSwgWydvc2xhc2gnLCBbMjQ4XV0sIFsnb3NvbCcsIFs4ODU2XV0sIFsnT3RpbGRlJywgWzIxM11dLCBbJ290aWxkZScsIFsyNDVdXSwgWydvdGltZXNhcycsIFsxMDgwNl1dLCBbJ090aW1lcycsIFsxMDgwN11dLCBbJ290aW1lcycsIFs4ODU1XV0sIFsnT3VtbCcsIFsyMTRdXSwgWydvdW1sJywgWzI0Nl1dLCBbJ292YmFyJywgWzkwMjFdXSwgWydPdmVyQmFyJywgWzgyNTRdXSwgWydPdmVyQnJhY2UnLCBbOTE4Ml1dLCBbJ092ZXJCcmFja2V0JywgWzkxNDBdXSwgWydPdmVyUGFyZW50aGVzaXMnLCBbOTE4MF1dLCBbJ3BhcmEnLCBbMTgyXV0sIFsncGFyYWxsZWwnLCBbODc0MV1dLCBbJ3BhcicsIFs4NzQxXV0sIFsncGFyc2ltJywgWzEwOTk1XV0sIFsncGFyc2wnLCBbMTEwMDVdXSwgWydwYXJ0JywgWzg3MDZdXSwgWydQYXJ0aWFsRCcsIFs4NzA2XV0sIFsnUGN5JywgWzEwNTVdXSwgWydwY3knLCBbMTA4N11dLCBbJ3BlcmNudCcsIFszN11dLCBbJ3BlcmlvZCcsIFs0Nl1dLCBbJ3Blcm1pbCcsIFs4MjQwXV0sIFsncGVycCcsIFs4ODY5XV0sIFsncGVydGVuaycsIFs4MjQxXV0sIFsnUGZyJywgWzEyMDA4M11dLCBbJ3BmcicsIFsxMjAxMDldXSwgWydQaGknLCBbOTM0XV0sIFsncGhpJywgWzk2Nl1dLCBbJ3BoaXYnLCBbOTgxXV0sIFsncGhtbWF0JywgWzg0OTldXSwgWydwaG9uZScsIFs5NzQyXV0sIFsnUGknLCBbOTI4XV0sIFsncGknLCBbOTYwXV0sIFsncGl0Y2hmb3JrJywgWzg5MTZdXSwgWydwaXYnLCBbOTgyXV0sIFsncGxhbmNrJywgWzg0NjNdXSwgWydwbGFuY2toJywgWzg0NjJdXSwgWydwbGFua3YnLCBbODQ2M11dLCBbJ3BsdXNhY2lyJywgWzEwNzg3XV0sIFsncGx1c2InLCBbODg2Ml1dLCBbJ3BsdXNjaXInLCBbMTA3ODZdXSwgWydwbHVzJywgWzQzXV0sIFsncGx1c2RvJywgWzg3MjRdXSwgWydwbHVzZHUnLCBbMTA3ODldXSwgWydwbHVzZScsIFsxMDg2Nl1dLCBbJ1BsdXNNaW51cycsIFsxNzddXSwgWydwbHVzbW4nLCBbMTc3XV0sIFsncGx1c3NpbScsIFsxMDc5MF1dLCBbJ3BsdXN0d28nLCBbMTA3OTFdXSwgWydwbScsIFsxNzddXSwgWydQb2luY2FyZXBsYW5lJywgWzg0NjBdXSwgWydwb2ludGludCcsIFsxMDc3M11dLCBbJ3BvcGYnLCBbMTIwMTYxXV0sIFsnUG9wZicsIFs4NDczXV0sIFsncG91bmQnLCBbMTYzXV0sIFsncHJhcCcsIFsxMDkzNV1dLCBbJ1ByJywgWzEwOTM5XV0sIFsncHInLCBbODgyNl1dLCBbJ3ByY3VlJywgWzg4MjhdXSwgWydwcmVjYXBwcm94JywgWzEwOTM1XV0sIFsncHJlYycsIFs4ODI2XV0sIFsncHJlY2N1cmx5ZXEnLCBbODgyOF1dLCBbJ1ByZWNlZGVzJywgWzg4MjZdXSwgWydQcmVjZWRlc0VxdWFsJywgWzEwOTI3XV0sIFsnUHJlY2VkZXNTbGFudEVxdWFsJywgWzg4MjhdXSwgWydQcmVjZWRlc1RpbGRlJywgWzg4MzBdXSwgWydwcmVjZXEnLCBbMTA5MjddXSwgWydwcmVjbmFwcHJveCcsIFsxMDkzN11dLCBbJ3ByZWNuZXFxJywgWzEwOTMzXV0sIFsncHJlY25zaW0nLCBbODkzNl1dLCBbJ3ByZScsIFsxMDkyN11dLCBbJ3ByRScsIFsxMDkzMV1dLCBbJ3ByZWNzaW0nLCBbODgzMF1dLCBbJ3ByaW1lJywgWzgyNDJdXSwgWydQcmltZScsIFs4MjQzXV0sIFsncHJpbWVzJywgWzg0NzNdXSwgWydwcm5hcCcsIFsxMDkzN11dLCBbJ3BybkUnLCBbMTA5MzNdXSwgWydwcm5zaW0nLCBbODkzNl1dLCBbJ3Byb2QnLCBbODcxOV1dLCBbJ1Byb2R1Y3QnLCBbODcxOV1dLCBbJ3Byb2ZhbGFyJywgWzkwMDZdXSwgWydwcm9mbGluZScsIFs4OTc4XV0sIFsncHJvZnN1cmYnLCBbODk3OV1dLCBbJ3Byb3AnLCBbODczM11dLCBbJ1Byb3BvcnRpb25hbCcsIFs4NzMzXV0sIFsnUHJvcG9ydGlvbicsIFs4NzU5XV0sIFsncHJvcHRvJywgWzg3MzNdXSwgWydwcnNpbScsIFs4ODMwXV0sIFsncHJ1cmVsJywgWzg4ODBdXSwgWydQc2NyJywgWzExOTk3OV1dLCBbJ3BzY3InLCBbMTIwMDA1XV0sIFsnUHNpJywgWzkzNl1dLCBbJ3BzaScsIFs5NjhdXSwgWydwdW5jc3AnLCBbODIwMF1dLCBbJ1FmcicsIFsxMjAwODRdXSwgWydxZnInLCBbMTIwMTEwXV0sIFsncWludCcsIFsxMDc2NF1dLCBbJ3FvcGYnLCBbMTIwMTYyXV0sIFsnUW9wZicsIFs4NDc0XV0sIFsncXByaW1lJywgWzgyNzldXSwgWydRc2NyJywgWzExOTk4MF1dLCBbJ3FzY3InLCBbMTIwMDA2XV0sIFsncXVhdGVybmlvbnMnLCBbODQ2MV1dLCBbJ3F1YXRpbnQnLCBbMTA3NzRdXSwgWydxdWVzdCcsIFs2M11dLCBbJ3F1ZXN0ZXEnLCBbODc5OV1dLCBbJ3F1b3QnLCBbMzRdXSwgWydRVU9UJywgWzM0XV0sIFsnckFhcnInLCBbODY2N11dLCBbJ3JhY2UnLCBbODc2NSwgODE3XV0sIFsnUmFjdXRlJywgWzM0MF1dLCBbJ3JhY3V0ZScsIFszNDFdXSwgWydyYWRpYycsIFs4NzMwXV0sIFsncmFlbXB0eXYnLCBbMTA2NzVdXSwgWydyYW5nJywgWzEwMjE3XV0sIFsnUmFuZycsIFsxMDIxOV1dLCBbJ3JhbmdkJywgWzEwNjQyXV0sIFsncmFuZ2UnLCBbMTA2NjFdXSwgWydyYW5nbGUnLCBbMTAyMTddXSwgWydyYXF1bycsIFsxODddXSwgWydyYXJyYXAnLCBbMTA2MTNdXSwgWydyYXJyYicsIFs4Njc3XV0sIFsncmFycmJmcycsIFsxMDUyOF1dLCBbJ3JhcnJjJywgWzEwNTQ3XV0sIFsncmFycicsIFs4NTk0XV0sIFsnUmFycicsIFs4NjA4XV0sIFsnckFycicsIFs4NjU4XV0sIFsncmFycmZzJywgWzEwNTI2XV0sIFsncmFycmhrJywgWzg2MThdXSwgWydyYXJybHAnLCBbODYyMF1dLCBbJ3JhcnJwbCcsIFsxMDU2NV1dLCBbJ3JhcnJzaW0nLCBbMTA2MTJdXSwgWydSYXJydGwnLCBbMTA1MThdXSwgWydyYXJydGwnLCBbODYxMV1dLCBbJ3JhcnJ3JywgWzg2MDVdXSwgWydyYXRhaWwnLCBbMTA1MjJdXSwgWydyQXRhaWwnLCBbMTA1MjRdXSwgWydyYXRpbycsIFs4NzU4XV0sIFsncmF0aW9uYWxzJywgWzg0NzRdXSwgWydyYmFycicsIFsxMDUwOV1dLCBbJ3JCYXJyJywgWzEwNTExXV0sIFsnUkJhcnInLCBbMTA1MTJdXSwgWydyYmJyaycsIFsxMDA5OV1dLCBbJ3JicmFjZScsIFsxMjVdXSwgWydyYnJhY2snLCBbOTNdXSwgWydyYnJrZScsIFsxMDYzNl1dLCBbJ3JicmtzbGQnLCBbMTA2MzhdXSwgWydyYnJrc2x1JywgWzEwNjQwXV0sIFsnUmNhcm9uJywgWzM0NF1dLCBbJ3JjYXJvbicsIFszNDVdXSwgWydSY2VkaWwnLCBbMzQyXV0sIFsncmNlZGlsJywgWzM0M11dLCBbJ3JjZWlsJywgWzg5NjldXSwgWydyY3ViJywgWzEyNV1dLCBbJ1JjeScsIFsxMDU2XV0sIFsncmN5JywgWzEwODhdXSwgWydyZGNhJywgWzEwNTUxXV0sIFsncmRsZGhhcicsIFsxMDYwMV1dLCBbJ3JkcXVvJywgWzgyMjFdXSwgWydyZHF1b3InLCBbODIyMV1dLCBbJ0Nsb3NlQ3VybHlEb3VibGVRdW90ZScsIFs4MjIxXV0sIFsncmRzaCcsIFs4NjI3XV0sIFsncmVhbCcsIFs4NDc2XV0sIFsncmVhbGluZScsIFs4NDc1XV0sIFsncmVhbHBhcnQnLCBbODQ3Nl1dLCBbJ3JlYWxzJywgWzg0NzddXSwgWydSZScsIFs4NDc2XV0sIFsncmVjdCcsIFs5NjQ1XV0sIFsncmVnJywgWzE3NF1dLCBbJ1JFRycsIFsxNzRdXSwgWydSZXZlcnNlRWxlbWVudCcsIFs4NzE1XV0sIFsnUmV2ZXJzZUVxdWlsaWJyaXVtJywgWzg2NTFdXSwgWydSZXZlcnNlVXBFcXVpbGlicml1bScsIFsxMDYwN11dLCBbJ3JmaXNodCcsIFsxMDYyMV1dLCBbJ3JmbG9vcicsIFs4OTcxXV0sIFsncmZyJywgWzEyMDExMV1dLCBbJ1JmcicsIFs4NDc2XV0sIFsnckhhcicsIFsxMDU5Nl1dLCBbJ3JoYXJkJywgWzg2NDFdXSwgWydyaGFydScsIFs4NjQwXV0sIFsncmhhcnVsJywgWzEwNjA0XV0sIFsnUmhvJywgWzkyOV1dLCBbJ3JobycsIFs5NjFdXSwgWydyaG92JywgWzEwMDldXSwgWydSaWdodEFuZ2xlQnJhY2tldCcsIFsxMDIxN11dLCBbJ1JpZ2h0QXJyb3dCYXInLCBbODY3N11dLCBbJ3JpZ2h0YXJyb3cnLCBbODU5NF1dLCBbJ1JpZ2h0QXJyb3cnLCBbODU5NF1dLCBbJ1JpZ2h0YXJyb3cnLCBbODY1OF1dLCBbJ1JpZ2h0QXJyb3dMZWZ0QXJyb3cnLCBbODY0NF1dLCBbJ3JpZ2h0YXJyb3d0YWlsJywgWzg2MTFdXSwgWydSaWdodENlaWxpbmcnLCBbODk2OV1dLCBbJ1JpZ2h0RG91YmxlQnJhY2tldCcsIFsxMDIxNV1dLCBbJ1JpZ2h0RG93blRlZVZlY3RvcicsIFsxMDU4OV1dLCBbJ1JpZ2h0RG93blZlY3RvckJhcicsIFsxMDU4MV1dLCBbJ1JpZ2h0RG93blZlY3RvcicsIFs4NjQyXV0sIFsnUmlnaHRGbG9vcicsIFs4OTcxXV0sIFsncmlnaHRoYXJwb29uZG93bicsIFs4NjQxXV0sIFsncmlnaHRoYXJwb29udXAnLCBbODY0MF1dLCBbJ3JpZ2h0bGVmdGFycm93cycsIFs4NjQ0XV0sIFsncmlnaHRsZWZ0aGFycG9vbnMnLCBbODY1Ml1dLCBbJ3JpZ2h0cmlnaHRhcnJvd3MnLCBbODY0OV1dLCBbJ3JpZ2h0c3F1aWdhcnJvdycsIFs4NjA1XV0sIFsnUmlnaHRUZWVBcnJvdycsIFs4NjE0XV0sIFsnUmlnaHRUZWUnLCBbODg2Nl1dLCBbJ1JpZ2h0VGVlVmVjdG9yJywgWzEwNTg3XV0sIFsncmlnaHR0aHJlZXRpbWVzJywgWzg5MDhdXSwgWydSaWdodFRyaWFuZ2xlQmFyJywgWzEwNzA0XV0sIFsnUmlnaHRUcmlhbmdsZScsIFs4ODgzXV0sIFsnUmlnaHRUcmlhbmdsZUVxdWFsJywgWzg4ODVdXSwgWydSaWdodFVwRG93blZlY3RvcicsIFsxMDU3NV1dLCBbJ1JpZ2h0VXBUZWVWZWN0b3InLCBbMTA1ODhdXSwgWydSaWdodFVwVmVjdG9yQmFyJywgWzEwNTgwXV0sIFsnUmlnaHRVcFZlY3RvcicsIFs4NjM4XV0sIFsnUmlnaHRWZWN0b3JCYXInLCBbMTA1NzldXSwgWydSaWdodFZlY3RvcicsIFs4NjQwXV0sIFsncmluZycsIFs3MzBdXSwgWydyaXNpbmdkb3RzZXEnLCBbODc4N11dLCBbJ3JsYXJyJywgWzg2NDRdXSwgWydybGhhcicsIFs4NjUyXV0sIFsncmxtJywgWzgyMDddXSwgWydybW91c3RhY2hlJywgWzkxMzddXSwgWydybW91c3QnLCBbOTEzN11dLCBbJ3JubWlkJywgWzEwOTkwXV0sIFsncm9hbmcnLCBbMTAyMjFdXSwgWydyb2FycicsIFs4NzAyXV0sIFsncm9icmsnLCBbMTAyMTVdXSwgWydyb3BhcicsIFsxMDYzMF1dLCBbJ3JvcGYnLCBbMTIwMTYzXV0sIFsnUm9wZicsIFs4NDc3XV0sIFsncm9wbHVzJywgWzEwNzk4XV0sIFsncm90aW1lcycsIFsxMDgwNV1dLCBbJ1JvdW5kSW1wbGllcycsIFsxMDYwOF1dLCBbJ3JwYXInLCBbNDFdXSwgWydycGFyZ3QnLCBbMTA2NDRdXSwgWydycHBvbGludCcsIFsxMDc3MF1dLCBbJ3JyYXJyJywgWzg2NDldXSwgWydScmlnaHRhcnJvdycsIFs4NjY3XV0sIFsncnNhcXVvJywgWzgyNTBdXSwgWydyc2NyJywgWzEyMDAwN11dLCBbJ1JzY3InLCBbODQ3NV1dLCBbJ3JzaCcsIFs4NjI1XV0sIFsnUnNoJywgWzg2MjVdXSwgWydyc3FiJywgWzkzXV0sIFsncnNxdW8nLCBbODIxN11dLCBbJ3JzcXVvcicsIFs4MjE3XV0sIFsnQ2xvc2VDdXJseVF1b3RlJywgWzgyMTddXSwgWydydGhyZWUnLCBbODkwOF1dLCBbJ3J0aW1lcycsIFs4OTA2XV0sIFsncnRyaScsIFs5NjU3XV0sIFsncnRyaWUnLCBbODg4NV1dLCBbJ3J0cmlmJywgWzk2NTZdXSwgWydydHJpbHRyaScsIFsxMDcwMl1dLCBbJ1J1bGVEZWxheWVkJywgWzEwNzQwXV0sIFsncnVsdWhhcicsIFsxMDYwMF1dLCBbJ3J4JywgWzg0NzhdXSwgWydTYWN1dGUnLCBbMzQ2XV0sIFsnc2FjdXRlJywgWzM0N11dLCBbJ3NicXVvJywgWzgyMThdXSwgWydzY2FwJywgWzEwOTM2XV0sIFsnU2Nhcm9uJywgWzM1Ml1dLCBbJ3NjYXJvbicsIFszNTNdXSwgWydTYycsIFsxMDk0MF1dLCBbJ3NjJywgWzg4MjddXSwgWydzY2N1ZScsIFs4ODI5XV0sIFsnc2NlJywgWzEwOTI4XV0sIFsnc2NFJywgWzEwOTMyXV0sIFsnU2NlZGlsJywgWzM1MF1dLCBbJ3NjZWRpbCcsIFszNTFdXSwgWydTY2lyYycsIFszNDhdXSwgWydzY2lyYycsIFszNDldXSwgWydzY25hcCcsIFsxMDkzOF1dLCBbJ3NjbkUnLCBbMTA5MzRdXSwgWydzY25zaW0nLCBbODkzN11dLCBbJ3NjcG9saW50JywgWzEwNzcxXV0sIFsnc2NzaW0nLCBbODgzMV1dLCBbJ1NjeScsIFsxMDU3XV0sIFsnc2N5JywgWzEwODldXSwgWydzZG90YicsIFs4ODY1XV0sIFsnc2RvdCcsIFs4OTAxXV0sIFsnc2RvdGUnLCBbMTA4NTRdXSwgWydzZWFyaGsnLCBbMTA1MzNdXSwgWydzZWFycicsIFs4NjAwXV0sIFsnc2VBcnInLCBbODY2NF1dLCBbJ3NlYXJyb3cnLCBbODYwMF1dLCBbJ3NlY3QnLCBbMTY3XV0sIFsnc2VtaScsIFs1OV1dLCBbJ3Nlc3dhcicsIFsxMDUzN11dLCBbJ3NldG1pbnVzJywgWzg3MjZdXSwgWydzZXRtbicsIFs4NzI2XV0sIFsnc2V4dCcsIFsxMDAzOF1dLCBbJ1NmcicsIFsxMjAwODZdXSwgWydzZnInLCBbMTIwMTEyXV0sIFsnc2Zyb3duJywgWzg5OTRdXSwgWydzaGFycCcsIFs5ODM5XV0sIFsnU0hDSGN5JywgWzEwNjVdXSwgWydzaGNoY3knLCBbMTA5N11dLCBbJ1NIY3knLCBbMTA2NF1dLCBbJ3NoY3knLCBbMTA5Nl1dLCBbJ1Nob3J0RG93bkFycm93JywgWzg1OTVdXSwgWydTaG9ydExlZnRBcnJvdycsIFs4NTkyXV0sIFsnc2hvcnRtaWQnLCBbODczOV1dLCBbJ3Nob3J0cGFyYWxsZWwnLCBbODc0MV1dLCBbJ1Nob3J0UmlnaHRBcnJvdycsIFs4NTk0XV0sIFsnU2hvcnRVcEFycm93JywgWzg1OTNdXSwgWydzaHknLCBbMTczXV0sIFsnU2lnbWEnLCBbOTMxXV0sIFsnc2lnbWEnLCBbOTYzXV0sIFsnc2lnbWFmJywgWzk2Ml1dLCBbJ3NpZ21hdicsIFs5NjJdXSwgWydzaW0nLCBbODc2NF1dLCBbJ3NpbWRvdCcsIFsxMDg1OF1dLCBbJ3NpbWUnLCBbODc3MV1dLCBbJ3NpbWVxJywgWzg3NzFdXSwgWydzaW1nJywgWzEwOTEwXV0sIFsnc2ltZ0UnLCBbMTA5MTJdXSwgWydzaW1sJywgWzEwOTA5XV0sIFsnc2ltbEUnLCBbMTA5MTFdXSwgWydzaW1uZScsIFs4Nzc0XV0sIFsnc2ltcGx1cycsIFsxMDc4OF1dLCBbJ3NpbXJhcnInLCBbMTA2MTBdXSwgWydzbGFycicsIFs4NTkyXV0sIFsnU21hbGxDaXJjbGUnLCBbODcyOF1dLCBbJ3NtYWxsc2V0bWludXMnLCBbODcyNl1dLCBbJ3NtYXNocCcsIFsxMDgwM11dLCBbJ3NtZXBhcnNsJywgWzEwNzI0XV0sIFsnc21pZCcsIFs4NzM5XV0sIFsnc21pbGUnLCBbODk5NV1dLCBbJ3NtdCcsIFsxMDkyMl1dLCBbJ3NtdGUnLCBbMTA5MjRdXSwgWydzbXRlcycsIFsxMDkyNCwgNjUwMjRdXSwgWydTT0ZUY3knLCBbMTA2OF1dLCBbJ3NvZnRjeScsIFsxMTAwXV0sIFsnc29sYmFyJywgWzkwMjNdXSwgWydzb2xiJywgWzEwNjkyXV0sIFsnc29sJywgWzQ3XV0sIFsnU29wZicsIFsxMjAxMzhdXSwgWydzb3BmJywgWzEyMDE2NF1dLCBbJ3NwYWRlcycsIFs5ODI0XV0sIFsnc3BhZGVzdWl0JywgWzk4MjRdXSwgWydzcGFyJywgWzg3NDFdXSwgWydzcWNhcCcsIFs4ODUxXV0sIFsnc3FjYXBzJywgWzg4NTEsIDY1MDI0XV0sIFsnc3FjdXAnLCBbODg1Ml1dLCBbJ3NxY3VwcycsIFs4ODUyLCA2NTAyNF1dLCBbJ1NxcnQnLCBbODczMF1dLCBbJ3Nxc3ViJywgWzg4NDddXSwgWydzcXN1YmUnLCBbODg0OV1dLCBbJ3Nxc3Vic2V0JywgWzg4NDddXSwgWydzcXN1YnNldGVxJywgWzg4NDldXSwgWydzcXN1cCcsIFs4ODQ4XV0sIFsnc3FzdXBlJywgWzg4NTBdXSwgWydzcXN1cHNldCcsIFs4ODQ4XV0sIFsnc3FzdXBzZXRlcScsIFs4ODUwXV0sIFsnc3F1YXJlJywgWzk2MzNdXSwgWydTcXVhcmUnLCBbOTYzM11dLCBbJ1NxdWFyZUludGVyc2VjdGlvbicsIFs4ODUxXV0sIFsnU3F1YXJlU3Vic2V0JywgWzg4NDddXSwgWydTcXVhcmVTdWJzZXRFcXVhbCcsIFs4ODQ5XV0sIFsnU3F1YXJlU3VwZXJzZXQnLCBbODg0OF1dLCBbJ1NxdWFyZVN1cGVyc2V0RXF1YWwnLCBbODg1MF1dLCBbJ1NxdWFyZVVuaW9uJywgWzg4NTJdXSwgWydzcXVhcmYnLCBbOTY0Ml1dLCBbJ3NxdScsIFs5NjMzXV0sIFsnc3F1ZicsIFs5NjQyXV0sIFsnc3JhcnInLCBbODU5NF1dLCBbJ1NzY3InLCBbMTE5OTgyXV0sIFsnc3NjcicsIFsxMjAwMDhdXSwgWydzc2V0bW4nLCBbODcyNl1dLCBbJ3NzbWlsZScsIFs4OTk1XV0sIFsnc3N0YXJmJywgWzg5MDJdXSwgWydTdGFyJywgWzg5MDJdXSwgWydzdGFyJywgWzk3MzRdXSwgWydzdGFyZicsIFs5NzMzXV0sIFsnc3RyYWlnaHRlcHNpbG9uJywgWzEwMTNdXSwgWydzdHJhaWdodHBoaScsIFs5ODFdXSwgWydzdHJucycsIFsxNzVdXSwgWydzdWInLCBbODgzNF1dLCBbJ1N1YicsIFs4OTEyXV0sIFsnc3ViZG90JywgWzEwOTQxXV0sIFsnc3ViRScsIFsxMDk0OV1dLCBbJ3N1YmUnLCBbODgzOF1dLCBbJ3N1YmVkb3QnLCBbMTA5NDddXSwgWydzdWJtdWx0JywgWzEwOTQ1XV0sIFsnc3VibkUnLCBbMTA5NTVdXSwgWydzdWJuZScsIFs4ODQyXV0sIFsnc3VicGx1cycsIFsxMDk0M11dLCBbJ3N1YnJhcnInLCBbMTA2MTddXSwgWydzdWJzZXQnLCBbODgzNF1dLCBbJ1N1YnNldCcsIFs4OTEyXV0sIFsnc3Vic2V0ZXEnLCBbODgzOF1dLCBbJ3N1YnNldGVxcScsIFsxMDk0OV1dLCBbJ1N1YnNldEVxdWFsJywgWzg4MzhdXSwgWydzdWJzZXRuZXEnLCBbODg0Ml1dLCBbJ3N1YnNldG5lcXEnLCBbMTA5NTVdXSwgWydzdWJzaW0nLCBbMTA5NTFdXSwgWydzdWJzdWInLCBbMTA5NjVdXSwgWydzdWJzdXAnLCBbMTA5NjNdXSwgWydzdWNjYXBwcm94JywgWzEwOTM2XV0sIFsnc3VjYycsIFs4ODI3XV0sIFsnc3VjY2N1cmx5ZXEnLCBbODgyOV1dLCBbJ1N1Y2NlZWRzJywgWzg4MjddXSwgWydTdWNjZWVkc0VxdWFsJywgWzEwOTI4XV0sIFsnU3VjY2VlZHNTbGFudEVxdWFsJywgWzg4MjldXSwgWydTdWNjZWVkc1RpbGRlJywgWzg4MzFdXSwgWydzdWNjZXEnLCBbMTA5MjhdXSwgWydzdWNjbmFwcHJveCcsIFsxMDkzOF1dLCBbJ3N1Y2NuZXFxJywgWzEwOTM0XV0sIFsnc3VjY25zaW0nLCBbODkzN11dLCBbJ3N1Y2NzaW0nLCBbODgzMV1dLCBbJ1N1Y2hUaGF0JywgWzg3MTVdXSwgWydzdW0nLCBbODcyMV1dLCBbJ1N1bScsIFs4NzIxXV0sIFsnc3VuZycsIFs5ODM0XV0sIFsnc3VwMScsIFsxODVdXSwgWydzdXAyJywgWzE3OF1dLCBbJ3N1cDMnLCBbMTc5XV0sIFsnc3VwJywgWzg4MzVdXSwgWydTdXAnLCBbODkxM11dLCBbJ3N1cGRvdCcsIFsxMDk0Ml1dLCBbJ3N1cGRzdWInLCBbMTA5NjhdXSwgWydzdXBFJywgWzEwOTUwXV0sIFsnc3VwZScsIFs4ODM5XV0sIFsnc3VwZWRvdCcsIFsxMDk0OF1dLCBbJ1N1cGVyc2V0JywgWzg4MzVdXSwgWydTdXBlcnNldEVxdWFsJywgWzg4MzldXSwgWydzdXBoc29sJywgWzEwMTg1XV0sIFsnc3VwaHN1YicsIFsxMDk2N11dLCBbJ3N1cGxhcnInLCBbMTA2MTldXSwgWydzdXBtdWx0JywgWzEwOTQ2XV0sIFsnc3VwbkUnLCBbMTA5NTZdXSwgWydzdXBuZScsIFs4ODQzXV0sIFsnc3VwcGx1cycsIFsxMDk0NF1dLCBbJ3N1cHNldCcsIFs4ODM1XV0sIFsnU3Vwc2V0JywgWzg5MTNdXSwgWydzdXBzZXRlcScsIFs4ODM5XV0sIFsnc3Vwc2V0ZXFxJywgWzEwOTUwXV0sIFsnc3Vwc2V0bmVxJywgWzg4NDNdXSwgWydzdXBzZXRuZXFxJywgWzEwOTU2XV0sIFsnc3Vwc2ltJywgWzEwOTUyXV0sIFsnc3Vwc3ViJywgWzEwOTY0XV0sIFsnc3Vwc3VwJywgWzEwOTY2XV0sIFsnc3dhcmhrJywgWzEwNTM0XV0sIFsnc3dhcnInLCBbODYwMV1dLCBbJ3N3QXJyJywgWzg2NjVdXSwgWydzd2Fycm93JywgWzg2MDFdXSwgWydzd253YXInLCBbMTA1MzhdXSwgWydzemxpZycsIFsyMjNdXSwgWydUYWInLCBbOV1dLCBbJ3RhcmdldCcsIFs4OTgyXV0sIFsnVGF1JywgWzkzMl1dLCBbJ3RhdScsIFs5NjRdXSwgWyd0YnJrJywgWzkxNDBdXSwgWydUY2Fyb24nLCBbMzU2XV0sIFsndGNhcm9uJywgWzM1N11dLCBbJ1RjZWRpbCcsIFszNTRdXSwgWyd0Y2VkaWwnLCBbMzU1XV0sIFsnVGN5JywgWzEwNThdXSwgWyd0Y3knLCBbMTA5MF1dLCBbJ3Rkb3QnLCBbODQxMV1dLCBbJ3RlbHJlYycsIFs4OTgxXV0sIFsnVGZyJywgWzEyMDA4N11dLCBbJ3RmcicsIFsxMjAxMTNdXSwgWyd0aGVyZTQnLCBbODc1Nl1dLCBbJ3RoZXJlZm9yZScsIFs4NzU2XV0sIFsnVGhlcmVmb3JlJywgWzg3NTZdXSwgWydUaGV0YScsIFs5MjBdXSwgWyd0aGV0YScsIFs5NTJdXSwgWyd0aGV0YXN5bScsIFs5NzddXSwgWyd0aGV0YXYnLCBbOTc3XV0sIFsndGhpY2thcHByb3gnLCBbODc3Nl1dLCBbJ3RoaWNrc2ltJywgWzg3NjRdXSwgWydUaGlja1NwYWNlJywgWzgyODcsIDgyMDJdXSwgWydUaGluU3BhY2UnLCBbODIwMV1dLCBbJ3RoaW5zcCcsIFs4MjAxXV0sIFsndGhrYXAnLCBbODc3Nl1dLCBbJ3Roa3NpbScsIFs4NzY0XV0sIFsnVEhPUk4nLCBbMjIyXV0sIFsndGhvcm4nLCBbMjU0XV0sIFsndGlsZGUnLCBbNzMyXV0sIFsnVGlsZGUnLCBbODc2NF1dLCBbJ1RpbGRlRXF1YWwnLCBbODc3MV1dLCBbJ1RpbGRlRnVsbEVxdWFsJywgWzg3NzNdXSwgWydUaWxkZVRpbGRlJywgWzg3NzZdXSwgWyd0aW1lc2JhcicsIFsxMDgwMV1dLCBbJ3RpbWVzYicsIFs4ODY0XV0sIFsndGltZXMnLCBbMjE1XV0sIFsndGltZXNkJywgWzEwODAwXV0sIFsndGludCcsIFs4NzQ5XV0sIFsndG9lYScsIFsxMDUzNl1dLCBbJ3RvcGJvdCcsIFs5MDE0XV0sIFsndG9wY2lyJywgWzEwOTkzXV0sIFsndG9wJywgWzg4NjhdXSwgWydUb3BmJywgWzEyMDEzOV1dLCBbJ3RvcGYnLCBbMTIwMTY1XV0sIFsndG9wZm9yaycsIFsxMDk3MF1dLCBbJ3Rvc2EnLCBbMTA1MzddXSwgWyd0cHJpbWUnLCBbODI0NF1dLCBbJ3RyYWRlJywgWzg0ODJdXSwgWydUUkFERScsIFs4NDgyXV0sIFsndHJpYW5nbGUnLCBbOTY1M11dLCBbJ3RyaWFuZ2xlZG93bicsIFs5NjYzXV0sIFsndHJpYW5nbGVsZWZ0JywgWzk2NjddXSwgWyd0cmlhbmdsZWxlZnRlcScsIFs4ODg0XV0sIFsndHJpYW5nbGVxJywgWzg3OTZdXSwgWyd0cmlhbmdsZXJpZ2h0JywgWzk2NTddXSwgWyd0cmlhbmdsZXJpZ2h0ZXEnLCBbODg4NV1dLCBbJ3RyaWRvdCcsIFs5NzA4XV0sIFsndHJpZScsIFs4Nzk2XV0sIFsndHJpbWludXMnLCBbMTA4MTBdXSwgWydUcmlwbGVEb3QnLCBbODQxMV1dLCBbJ3RyaXBsdXMnLCBbMTA4MDldXSwgWyd0cmlzYicsIFsxMDcwMV1dLCBbJ3RyaXRpbWUnLCBbMTA4MTFdXSwgWyd0cnBleml1bScsIFs5MTg2XV0sIFsnVHNjcicsIFsxMTk5ODNdXSwgWyd0c2NyJywgWzEyMDAwOV1dLCBbJ1RTY3knLCBbMTA2Ml1dLCBbJ3RzY3knLCBbMTA5NF1dLCBbJ1RTSGN5JywgWzEwMzVdXSwgWyd0c2hjeScsIFsxMTE1XV0sIFsnVHN0cm9rJywgWzM1OF1dLCBbJ3RzdHJvaycsIFszNTldXSwgWyd0d2l4dCcsIFs4ODEyXV0sIFsndHdvaGVhZGxlZnRhcnJvdycsIFs4NjA2XV0sIFsndHdvaGVhZHJpZ2h0YXJyb3cnLCBbODYwOF1dLCBbJ1VhY3V0ZScsIFsyMThdXSwgWyd1YWN1dGUnLCBbMjUwXV0sIFsndWFycicsIFs4NTkzXV0sIFsnVWFycicsIFs4NjA3XV0sIFsndUFycicsIFs4NjU3XV0sIFsnVWFycm9jaXInLCBbMTA1NjldXSwgWydVYnJjeScsIFsxMDM4XV0sIFsndWJyY3knLCBbMTExOF1dLCBbJ1VicmV2ZScsIFszNjRdXSwgWyd1YnJldmUnLCBbMzY1XV0sIFsnVWNpcmMnLCBbMjE5XV0sIFsndWNpcmMnLCBbMjUxXV0sIFsnVWN5JywgWzEwNTldXSwgWyd1Y3knLCBbMTA5MV1dLCBbJ3VkYXJyJywgWzg2NDVdXSwgWydVZGJsYWMnLCBbMzY4XV0sIFsndWRibGFjJywgWzM2OV1dLCBbJ3VkaGFyJywgWzEwNjA2XV0sIFsndWZpc2h0JywgWzEwNjIyXV0sIFsnVWZyJywgWzEyMDA4OF1dLCBbJ3VmcicsIFsxMjAxMTRdXSwgWydVZ3JhdmUnLCBbMjE3XV0sIFsndWdyYXZlJywgWzI0OV1dLCBbJ3VIYXInLCBbMTA1OTVdXSwgWyd1aGFybCcsIFs4NjM5XV0sIFsndWhhcnInLCBbODYzOF1dLCBbJ3VoYmxrJywgWzk2MDBdXSwgWyd1bGNvcm4nLCBbODk4OF1dLCBbJ3VsY29ybmVyJywgWzg5ODhdXSwgWyd1bGNyb3AnLCBbODk3NV1dLCBbJ3VsdHJpJywgWzk3MjBdXSwgWydVbWFjcicsIFszNjJdXSwgWyd1bWFjcicsIFszNjNdXSwgWyd1bWwnLCBbMTY4XV0sIFsnVW5kZXJCYXInLCBbOTVdXSwgWydVbmRlckJyYWNlJywgWzkxODNdXSwgWydVbmRlckJyYWNrZXQnLCBbOTE0MV1dLCBbJ1VuZGVyUGFyZW50aGVzaXMnLCBbOTE4MV1dLCBbJ1VuaW9uJywgWzg4OTldXSwgWydVbmlvblBsdXMnLCBbODg0Nl1dLCBbJ1VvZ29uJywgWzM3MF1dLCBbJ3VvZ29uJywgWzM3MV1dLCBbJ1VvcGYnLCBbMTIwMTQwXV0sIFsndW9wZicsIFsxMjAxNjZdXSwgWydVcEFycm93QmFyJywgWzEwNTE0XV0sIFsndXBhcnJvdycsIFs4NTkzXV0sIFsnVXBBcnJvdycsIFs4NTkzXV0sIFsnVXBhcnJvdycsIFs4NjU3XV0sIFsnVXBBcnJvd0Rvd25BcnJvdycsIFs4NjQ1XV0sIFsndXBkb3duYXJyb3cnLCBbODU5N11dLCBbJ1VwRG93bkFycm93JywgWzg1OTddXSwgWydVcGRvd25hcnJvdycsIFs4NjYxXV0sIFsnVXBFcXVpbGlicml1bScsIFsxMDYwNl1dLCBbJ3VwaGFycG9vbmxlZnQnLCBbODYzOV1dLCBbJ3VwaGFycG9vbnJpZ2h0JywgWzg2MzhdXSwgWyd1cGx1cycsIFs4ODQ2XV0sIFsnVXBwZXJMZWZ0QXJyb3cnLCBbODU5OF1dLCBbJ1VwcGVyUmlnaHRBcnJvdycsIFs4NTk5XV0sIFsndXBzaScsIFs5NjVdXSwgWydVcHNpJywgWzk3OF1dLCBbJ3Vwc2loJywgWzk3OF1dLCBbJ1Vwc2lsb24nLCBbOTMzXV0sIFsndXBzaWxvbicsIFs5NjVdXSwgWydVcFRlZUFycm93JywgWzg2MTNdXSwgWydVcFRlZScsIFs4ODY5XV0sIFsndXB1cGFycm93cycsIFs4NjQ4XV0sIFsndXJjb3JuJywgWzg5ODldXSwgWyd1cmNvcm5lcicsIFs4OTg5XV0sIFsndXJjcm9wJywgWzg5NzRdXSwgWydVcmluZycsIFszNjZdXSwgWyd1cmluZycsIFszNjddXSwgWyd1cnRyaScsIFs5NzIxXV0sIFsnVXNjcicsIFsxMTk5ODRdXSwgWyd1c2NyJywgWzEyMDAxMF1dLCBbJ3V0ZG90JywgWzg5NDRdXSwgWydVdGlsZGUnLCBbMzYwXV0sIFsndXRpbGRlJywgWzM2MV1dLCBbJ3V0cmknLCBbOTY1M11dLCBbJ3V0cmlmJywgWzk2NTJdXSwgWyd1dWFycicsIFs4NjQ4XV0sIFsnVXVtbCcsIFsyMjBdXSwgWyd1dW1sJywgWzI1Ml1dLCBbJ3V3YW5nbGUnLCBbMTA2NjNdXSwgWyd2YW5ncnQnLCBbMTA2NTJdXSwgWyd2YXJlcHNpbG9uJywgWzEwMTNdXSwgWyd2YXJrYXBwYScsIFsxMDA4XV0sIFsndmFybm90aGluZycsIFs4NzA5XV0sIFsndmFycGhpJywgWzk4MV1dLCBbJ3ZhcnBpJywgWzk4Ml1dLCBbJ3ZhcnByb3B0bycsIFs4NzMzXV0sIFsndmFycicsIFs4NTk3XV0sIFsndkFycicsIFs4NjYxXV0sIFsndmFycmhvJywgWzEwMDldXSwgWyd2YXJzaWdtYScsIFs5NjJdXSwgWyd2YXJzdWJzZXRuZXEnLCBbODg0MiwgNjUwMjRdXSwgWyd2YXJzdWJzZXRuZXFxJywgWzEwOTU1LCA2NTAyNF1dLCBbJ3ZhcnN1cHNldG5lcScsIFs4ODQzLCA2NTAyNF1dLCBbJ3ZhcnN1cHNldG5lcXEnLCBbMTA5NTYsIDY1MDI0XV0sIFsndmFydGhldGEnLCBbOTc3XV0sIFsndmFydHJpYW5nbGVsZWZ0JywgWzg4ODJdXSwgWyd2YXJ0cmlhbmdsZXJpZ2h0JywgWzg4ODNdXSwgWyd2QmFyJywgWzEwOTg0XV0sIFsnVmJhcicsIFsxMDk4N11dLCBbJ3ZCYXJ2JywgWzEwOTg1XV0sIFsnVmN5JywgWzEwNDJdXSwgWyd2Y3knLCBbMTA3NF1dLCBbJ3ZkYXNoJywgWzg4NjZdXSwgWyd2RGFzaCcsIFs4ODcyXV0sIFsnVmRhc2gnLCBbODg3M11dLCBbJ1ZEYXNoJywgWzg4NzVdXSwgWydWZGFzaGwnLCBbMTA5ODJdXSwgWyd2ZWViYXInLCBbODg5MV1dLCBbJ3ZlZScsIFs4NzQ0XV0sIFsnVmVlJywgWzg4OTddXSwgWyd2ZWVlcScsIFs4Nzk0XV0sIFsndmVsbGlwJywgWzg5NDJdXSwgWyd2ZXJiYXInLCBbMTI0XV0sIFsnVmVyYmFyJywgWzgyMTRdXSwgWyd2ZXJ0JywgWzEyNF1dLCBbJ1ZlcnQnLCBbODIxNF1dLCBbJ1ZlcnRpY2FsQmFyJywgWzg3MzldXSwgWydWZXJ0aWNhbExpbmUnLCBbMTI0XV0sIFsnVmVydGljYWxTZXBhcmF0b3InLCBbMTAwNzJdXSwgWydWZXJ0aWNhbFRpbGRlJywgWzg3NjhdXSwgWydWZXJ5VGhpblNwYWNlJywgWzgyMDJdXSwgWydWZnInLCBbMTIwMDg5XV0sIFsndmZyJywgWzEyMDExNV1dLCBbJ3ZsdHJpJywgWzg4ODJdXSwgWyd2bnN1YicsIFs4ODM0LCA4NDAyXV0sIFsndm5zdXAnLCBbODgzNSwgODQwMl1dLCBbJ1ZvcGYnLCBbMTIwMTQxXV0sIFsndm9wZicsIFsxMjAxNjddXSwgWyd2cHJvcCcsIFs4NzMzXV0sIFsndnJ0cmknLCBbODg4M11dLCBbJ1ZzY3InLCBbMTE5OTg1XV0sIFsndnNjcicsIFsxMjAwMTFdXSwgWyd2c3VibkUnLCBbMTA5NTUsIDY1MDI0XV0sIFsndnN1Ym5lJywgWzg4NDIsIDY1MDI0XV0sIFsndnN1cG5FJywgWzEwOTU2LCA2NTAyNF1dLCBbJ3ZzdXBuZScsIFs4ODQzLCA2NTAyNF1dLCBbJ1Z2ZGFzaCcsIFs4ODc0XV0sIFsndnppZ3phZycsIFsxMDY1MF1dLCBbJ1djaXJjJywgWzM3Ml1dLCBbJ3djaXJjJywgWzM3M11dLCBbJ3dlZGJhcicsIFsxMDg0N11dLCBbJ3dlZGdlJywgWzg3NDNdXSwgWydXZWRnZScsIFs4ODk2XV0sIFsnd2VkZ2VxJywgWzg3OTNdXSwgWyd3ZWllcnAnLCBbODQ3Ml1dLCBbJ1dmcicsIFsxMjAwOTBdXSwgWyd3ZnInLCBbMTIwMTE2XV0sIFsnV29wZicsIFsxMjAxNDJdXSwgWyd3b3BmJywgWzEyMDE2OF1dLCBbJ3dwJywgWzg0NzJdXSwgWyd3cicsIFs4NzY4XV0sIFsnd3JlYXRoJywgWzg3NjhdXSwgWydXc2NyJywgWzExOTk4Nl1dLCBbJ3dzY3InLCBbMTIwMDEyXV0sIFsneGNhcCcsIFs4ODk4XV0sIFsneGNpcmMnLCBbOTcxMV1dLCBbJ3hjdXAnLCBbODg5OV1dLCBbJ3hkdHJpJywgWzk2NjFdXSwgWydYZnInLCBbMTIwMDkxXV0sIFsneGZyJywgWzEyMDExN11dLCBbJ3hoYXJyJywgWzEwMjMxXV0sIFsneGhBcnInLCBbMTAyMzRdXSwgWydYaScsIFs5MjZdXSwgWyd4aScsIFs5NThdXSwgWyd4bGFycicsIFsxMDIyOV1dLCBbJ3hsQXJyJywgWzEwMjMyXV0sIFsneG1hcCcsIFsxMDIzNl1dLCBbJ3huaXMnLCBbODk1NV1dLCBbJ3hvZG90JywgWzEwNzUyXV0sIFsnWG9wZicsIFsxMjAxNDNdXSwgWyd4b3BmJywgWzEyMDE2OV1dLCBbJ3hvcGx1cycsIFsxMDc1M11dLCBbJ3hvdGltZScsIFsxMDc1NF1dLCBbJ3hyYXJyJywgWzEwMjMwXV0sIFsneHJBcnInLCBbMTAyMzNdXSwgWydYc2NyJywgWzExOTk4N11dLCBbJ3hzY3InLCBbMTIwMDEzXV0sIFsneHNxY3VwJywgWzEwNzU4XV0sIFsneHVwbHVzJywgWzEwNzU2XV0sIFsneHV0cmknLCBbOTY1MV1dLCBbJ3h2ZWUnLCBbODg5N11dLCBbJ3h3ZWRnZScsIFs4ODk2XV0sIFsnWWFjdXRlJywgWzIyMV1dLCBbJ3lhY3V0ZScsIFsyNTNdXSwgWydZQWN5JywgWzEwNzFdXSwgWyd5YWN5JywgWzExMDNdXSwgWydZY2lyYycsIFszNzRdXSwgWyd5Y2lyYycsIFszNzVdXSwgWydZY3knLCBbMTA2N11dLCBbJ3ljeScsIFsxMDk5XV0sIFsneWVuJywgWzE2NV1dLCBbJ1lmcicsIFsxMjAwOTJdXSwgWyd5ZnInLCBbMTIwMTE4XV0sIFsnWUljeScsIFsxMDMxXV0sIFsneWljeScsIFsxMTExXV0sIFsnWW9wZicsIFsxMjAxNDRdXSwgWyd5b3BmJywgWzEyMDE3MF1dLCBbJ1lzY3InLCBbMTE5OTg4XV0sIFsneXNjcicsIFsxMjAwMTRdXSwgWydZVWN5JywgWzEwNzBdXSwgWyd5dWN5JywgWzExMDJdXSwgWyd5dW1sJywgWzI1NV1dLCBbJ1l1bWwnLCBbMzc2XV0sIFsnWmFjdXRlJywgWzM3N11dLCBbJ3phY3V0ZScsIFszNzhdXSwgWydaY2Fyb24nLCBbMzgxXV0sIFsnemNhcm9uJywgWzM4Ml1dLCBbJ1pjeScsIFsxMDQ3XV0sIFsnemN5JywgWzEwNzldXSwgWydaZG90JywgWzM3OV1dLCBbJ3pkb3QnLCBbMzgwXV0sIFsnemVldHJmJywgWzg0ODhdXSwgWydaZXJvV2lkdGhTcGFjZScsIFs4MjAzXV0sIFsnWmV0YScsIFs5MThdXSwgWyd6ZXRhJywgWzk1MF1dLCBbJ3pmcicsIFsxMjAxMTldXSwgWydaZnInLCBbODQ4OF1dLCBbJ1pIY3knLCBbMTA0Nl1dLCBbJ3poY3knLCBbMTA3OF1dLCBbJ3ppZ3JhcnInLCBbODY2OV1dLCBbJ3pvcGYnLCBbMTIwMTcxXV0sIFsnWm9wZicsIFs4NDg0XV0sIFsnWnNjcicsIFsxMTk5ODldXSwgWyd6c2NyJywgWzEyMDAxNV1dLCBbJ3p3aicsIFs4MjA1XV0sIFsnenduaicsIFs4MjA0XV1dO1xuXG52YXIgYWxwaGFJbmRleCA9IHt9O1xudmFyIGNoYXJJbmRleCA9IHt9O1xuXG5jcmVhdGVJbmRleGVzKGFscGhhSW5kZXgsIGNoYXJJbmRleCk7XG5cbi8qKlxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmZ1bmN0aW9uIEh0bWw1RW50aXRpZXMoKSB7fVxuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbkh0bWw1RW50aXRpZXMucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8mKCM/W1xcd1xcZF0rKTs/L2csIGZ1bmN0aW9uKHMsIGVudGl0eSkge1xuICAgICAgICB2YXIgY2hyO1xuICAgICAgICBpZiAoZW50aXR5LmNoYXJBdCgwKSA9PT0gXCIjXCIpIHtcbiAgICAgICAgICAgIHZhciBjb2RlID0gZW50aXR5LmNoYXJBdCgxKSA9PT0gJ3gnID9cbiAgICAgICAgICAgICAgICBwYXJzZUludChlbnRpdHkuc3Vic3RyKDIpLnRvTG93ZXJDYXNlKCksIDE2KSA6XG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoZW50aXR5LnN1YnN0cigxKSk7XG5cbiAgICAgICAgICAgIGlmICghKGlzTmFOKGNvZGUpIHx8IGNvZGUgPCAtMzI3NjggfHwgY29kZSA+IDY1NTM1KSkge1xuICAgICAgICAgICAgICAgIGNociA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaHIgPSBhbHBoYUluZGV4W2VudGl0eV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNociB8fCBzO1xuICAgIH0pO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG4gSHRtbDVFbnRpdGllcy5kZWNvZGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gbmV3IEh0bWw1RW50aXRpZXMoKS5kZWNvZGUoc3RyKTtcbiB9O1xuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbkh0bWw1RW50aXRpZXMucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgdmFyIHN0ckxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHN0ckxlbmd0aCkge1xuICAgICAgICB2YXIgY2hhckluZm8gPSBjaGFySW5kZXhbc3RyLmNoYXJDb2RlQXQoaSldO1xuICAgICAgICBpZiAoY2hhckluZm8pIHtcbiAgICAgICAgICAgIHZhciBhbHBoYSA9IGNoYXJJbmZvW3N0ci5jaGFyQ29kZUF0KGkgKyAxKV07XG4gICAgICAgICAgICBpZiAoYWxwaGEpIHtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFscGhhID0gY2hhckluZm9bJyddO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGFscGhhKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiJlwiICsgYWxwaGEgKyBcIjtcIjtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0ICs9IHN0ci5jaGFyQXQoaSk7XG4gICAgICAgIGkrKztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuIEh0bWw1RW50aXRpZXMuZW5jb2RlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIG5ldyBIdG1sNUVudGl0aWVzKCkuZW5jb2RlKHN0cik7XG4gfTtcblxuLyoqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5IdG1sNUVudGl0aWVzLnByb3RvdHlwZS5lbmNvZGVOb25VVEYgPSBmdW5jdGlvbihzdHIpIHtcbiAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHZhciBzdHJMZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgIHZhciByZXN1bHQgPSAnJztcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBzdHJMZW5ndGgpIHtcbiAgICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgdmFyIGNoYXJJbmZvID0gY2hhckluZGV4W2NdO1xuICAgICAgICBpZiAoY2hhckluZm8pIHtcbiAgICAgICAgICAgIHZhciBhbHBoYSA9IGNoYXJJbmZvW3N0ci5jaGFyQ29kZUF0KGkgKyAxKV07XG4gICAgICAgICAgICBpZiAoYWxwaGEpIHtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFscGhhID0gY2hhckluZm9bJyddO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGFscGhhKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IFwiJlwiICsgYWxwaGEgKyBcIjtcIjtcbiAgICAgICAgICAgICAgICBpKys7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgPCAzMiB8fCBjID4gMTI2KSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJyYjJyArIGMgKyAnOyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gc3RyLmNoYXJBdChpKTtcbiAgICAgICAgfVxuICAgICAgICBpKys7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbiBIdG1sNUVudGl0aWVzLmVuY29kZU5vblVURiA9IGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBuZXcgSHRtbDVFbnRpdGllcygpLmVuY29kZU5vblVURihzdHIpO1xuIH07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuSHRtbDVFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlTm9uQVNDSUkgPSBmdW5jdGlvbihzdHIpIHtcbiAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHZhciBzdHJMZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgIHZhciByZXN1bHQgPSAnJztcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBzdHJMZW5ndGgpIHtcbiAgICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGMgPD0gMjU1KSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gc3RyW2krK107XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gJyYjJyArIGMgKyAnOyc7XG4gICAgICAgIGkrK1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG4gSHRtbDVFbnRpdGllcy5lbmNvZGVOb25BU0NJSSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBuZXcgSHRtbDVFbnRpdGllcygpLmVuY29kZU5vbkFTQ0lJKHN0cik7XG4gfTtcblxuLyoqXG4gKiBAcGFyYW0ge09iamVjdH0gYWxwaGFJbmRleCBQYXNzZWQgYnkgcmVmZXJlbmNlLlxuICogQHBhcmFtIHtPYmplY3R9IGNoYXJJbmRleCBQYXNzZWQgYnkgcmVmZXJlbmNlLlxuICovXG5mdW5jdGlvbiBjcmVhdGVJbmRleGVzKGFscGhhSW5kZXgsIGNoYXJJbmRleCkge1xuICAgIHZhciBpID0gRU5USVRJRVMubGVuZ3RoO1xuICAgIHZhciBfcmVzdWx0cyA9IFtdO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgdmFyIGUgPSBFTlRJVElFU1tpXTtcbiAgICAgICAgdmFyIGFscGhhID0gZVswXTtcbiAgICAgICAgdmFyIGNoYXJzID0gZVsxXTtcbiAgICAgICAgdmFyIGNociA9IGNoYXJzWzBdO1xuICAgICAgICB2YXIgYWRkQ2hhciA9IChjaHIgPCAzMiB8fCBjaHIgPiAxMjYpIHx8IGNociA9PT0gNjIgfHwgY2hyID09PSA2MCB8fCBjaHIgPT09IDM4IHx8IGNociA9PT0gMzQgfHwgY2hyID09PSAzOTtcbiAgICAgICAgdmFyIGNoYXJJbmZvO1xuICAgICAgICBpZiAoYWRkQ2hhcikge1xuICAgICAgICAgICAgY2hhckluZm8gPSBjaGFySW5kZXhbY2hyXSA9IGNoYXJJbmRleFtjaHJdIHx8IHt9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyc1sxXSkge1xuICAgICAgICAgICAgdmFyIGNocjIgPSBjaGFyc1sxXTtcbiAgICAgICAgICAgIGFscGhhSW5kZXhbYWxwaGFdID0gU3RyaW5nLmZyb21DaGFyQ29kZShjaHIpICsgU3RyaW5nLmZyb21DaGFyQ29kZShjaHIyKTtcbiAgICAgICAgICAgIF9yZXN1bHRzLnB1c2goYWRkQ2hhciAmJiAoY2hhckluZm9bY2hyMl0gPSBhbHBoYSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWxwaGFJbmRleFthbHBoYV0gPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNocik7XG4gICAgICAgICAgICBfcmVzdWx0cy5wdXNoKGFkZENoYXIgJiYgKGNoYXJJbmZvWycnXSA9IGFscGhhKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gSHRtbDVFbnRpdGllcztcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///3\n")},function(module,exports){eval('var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function("return this")() || (1, eval)("this");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === "object") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it\'s\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci8od2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanM/Y2QwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZztcblxuLy8gVGhpcyB3b3JrcyBpbiBub24tc3RyaWN0IG1vZGVcbmcgPSAoZnVuY3Rpb24oKSB7XG5cdHJldHVybiB0aGlzO1xufSkoKTtcblxudHJ5IHtcblx0Ly8gVGhpcyB3b3JrcyBpZiBldmFsIGlzIGFsbG93ZWQgKHNlZSBDU1ApXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSwgZXZhbCkoXCJ0aGlzXCIpO1xufSBjYXRjaCAoZSkge1xuXHQvLyBUaGlzIHdvcmtzIGlmIHRoZSB3aW5kb3cgcmVmZXJlbmNlIGlzIGF2YWlsYWJsZVxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIikgZyA9IHdpbmRvdztcbn1cblxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3Ncbi8vIGVhc2llciB0byBoYW5kbGUgdGhpcyBjYXNlLiBpZighZ2xvYmFsKSB7IC4uLn1cblxubW9kdWxlLmV4cG9ydHMgPSBnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///4\n')},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = __webpack_require__(1);\n\nvar _utils = __webpack_require__(0);\n\nvar _element = __webpack_require__(2);\n\nvar _element2 = _interopRequireDefault(_element);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Stage behind the highlighted element to give it a little\n * highlight from rest of the page\n */\nvar Stage = function (_Element) {\n _inherits(Stage, _Element);\n\n /**\n * @param {Object} options\n * @param {Window} window\n * @param {Document} document\n */\n function Stage(options, window, document) {\n _classCallCheck(this, Stage);\n\n var _this = _possibleConstructorReturn(this, (Stage.__proto__ || Object.getPrototypeOf(Stage)).call(this));\n\n _this.options = options;\n _this.window = window;\n _this.document = document;\n return _this;\n }\n\n /**\n * Prepares the DOM element if not already there\n * @private\n */\n\n\n _createClass(Stage, [{\n key: 'attachNode',\n value: function attachNode() {\n var stage = this.document.getElementById(_constants.ID_STAGE);\n if (!stage) {\n stage = (0, _utils.createNodeFromString)(_constants.STAGE_HTML);\n document.body.appendChild(stage);\n }\n\n this.node = stage;\n\n if (!this.options.animate) {\n this.node.classList.add(_constants.CLASS_STAGE_NO_ANIMATION);\n } else {\n this.node.classList.remove(_constants.CLASS_STAGE_NO_ANIMATION);\n }\n }\n\n /**\n * Simply hides the stage\n * @public\n */\n\n }, {\n key: 'hide',\n value: function hide() {\n if (!this.node || !this.node.parentElement) {\n return;\n }\n\n this.node.parentElement.removeChild(this.node);\n }\n\n /**\n * Makes it visible and sets the default properties\n * @private\n */\n\n }, {\n key: 'setInitialStyle',\n value: function setInitialStyle() {\n this.node.style.display = 'block';\n this.node.style.left = '0';\n this.node.style.top = '0';\n this.node.style.bottom = '';\n this.node.style.right = '';\n }\n\n /**\n * Shows the stage at provided position\n * @param {Position} position\n * @public\n */\n\n }, {\n key: 'show',\n value: function show(position) {\n this.attachNode();\n\n this.setInitialStyle();\n\n // Make it two times the padding because, half will be given on left and half on right\n var requiredPadding = this.options.padding * 2;\n\n var width = position.right - position.left + requiredPadding;\n var height = position.bottom - position.top + requiredPadding;\n\n // Show the stage\n this.node.style.display = 'block';\n this.node.style.position = 'absolute';\n this.node.style.width = width + 'px';\n this.node.style.height = height + 'px';\n this.node.style.top = position.top - requiredPadding / 2 + 'px';\n this.node.style.left = position.left - requiredPadding / 2 + 'px';\n this.node.style.backgroundColor = this.options.stageBackground;\n }\n }]);\n\n return Stage;\n}(_element2.default);\n\nexports.default = Stage;\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvY29yZS9zdGFnZS5qcz9hNTgzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENMQVNTX1NUQUdFX05PX0FOSU1BVElPTiwgSURfU1RBR0UsIFNUQUdFX0hUTUwgfSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IGNyZWF0ZU5vZGVGcm9tU3RyaW5nIH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcbmltcG9ydCBFbGVtZW50IGZyb20gJy4vZWxlbWVudCc7XG5cbi8qKlxuICogU3RhZ2UgYmVoaW5kIHRoZSBoaWdobGlnaHRlZCBlbGVtZW50IHRvIGdpdmUgaXQgYSBsaXR0bGVcbiAqIGhpZ2hsaWdodCBmcm9tIHJlc3Qgb2YgdGhlIHBhZ2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RhZ2UgZXh0ZW5kcyBFbGVtZW50IHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqIEBwYXJhbSB7V2luZG93fSB3aW5kb3dcbiAgICogQHBhcmFtIHtEb2N1bWVudH0gZG9jdW1lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMsIHdpbmRvdywgZG9jdW1lbnQpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLndpbmRvdyA9IHdpbmRvdztcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZXMgdGhlIERPTSBlbGVtZW50IGlmIG5vdCBhbHJlYWR5IHRoZXJlXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhdHRhY2hOb2RlKCkge1xuICAgIGxldCBzdGFnZSA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSURfU1RBR0UpO1xuICAgIGlmICghc3RhZ2UpIHtcbiAgICAgIHN0YWdlID0gY3JlYXRlTm9kZUZyb21TdHJpbmcoU1RBR0VfSFRNTCk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHN0YWdlKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUgPSBzdGFnZTtcblxuICAgIGlmICghdGhpcy5vcHRpb25zLmFuaW1hdGUpIHtcbiAgICAgIHRoaXMubm9kZS5jbGFzc0xpc3QuYWRkKENMQVNTX1NUQUdFX05PX0FOSU1BVElPTik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm9kZS5jbGFzc0xpc3QucmVtb3ZlKENMQVNTX1NUQUdFX05PX0FOSU1BVElPTik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNpbXBseSBoaWRlcyB0aGUgc3RhZ2VcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgaGlkZSgpIHtcbiAgICBpZiAoIXRoaXMubm9kZSB8fCAhdGhpcy5ub2RlLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLm5vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2VzIGl0IHZpc2libGUgYW5kIHNldHMgdGhlIGRlZmF1bHQgcHJvcGVydGllc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgc2V0SW5pdGlhbFN0eWxlKCkge1xuICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLm5vZGUuc3R5bGUubGVmdCA9ICcwJztcbiAgICB0aGlzLm5vZGUuc3R5bGUudG9wID0gJzAnO1xuICAgIHRoaXMubm9kZS5zdHlsZS5ib3R0b20gPSAnJztcbiAgICB0aGlzLm5vZGUuc3R5bGUucmlnaHQgPSAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgc3RhZ2UgYXQgcHJvdmlkZWQgcG9zaXRpb25cbiAgICogQHBhcmFtIHtQb3NpdGlvbn0gcG9zaXRpb25cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgc2hvdyhwb3NpdGlvbikge1xuICAgIHRoaXMuYXR0YWNoTm9kZSgpO1xuXG4gICAgdGhpcy5zZXRJbml0aWFsU3R5bGUoKTtcblxuICAgIC8vIE1ha2UgaXQgdHdvIHRpbWVzIHRoZSBwYWRkaW5nIGJlY2F1c2UsIGhhbGYgd2lsbCBiZSBnaXZlbiBvbiBsZWZ0IGFuZCBoYWxmIG9uIHJpZ2h0XG4gICAgY29uc3QgcmVxdWlyZWRQYWRkaW5nID0gdGhpcy5vcHRpb25zLnBhZGRpbmcgKiAyO1xuXG4gICAgY29uc3Qgd2lkdGggPSAocG9zaXRpb24ucmlnaHQgLSBwb3NpdGlvbi5sZWZ0KSArIChyZXF1aXJlZFBhZGRpbmcpO1xuICAgIGNvbnN0IGhlaWdodCA9IChwb3NpdGlvbi5ib3R0b20gLSBwb3NpdGlvbi50b3ApICsgKHJlcXVpcmVkUGFkZGluZyk7XG5cbiAgICAvLyBTaG93IHRoZSBzdGFnZVxuICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLm5vZGUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIHRoaXMubm9kZS5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICB0aGlzLm5vZGUuc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcbiAgICB0aGlzLm5vZGUuc3R5bGUudG9wID0gYCR7cG9zaXRpb24udG9wIC0gKHJlcXVpcmVkUGFkZGluZyAvIDIpfXB4YDtcbiAgICB0aGlzLm5vZGUuc3R5bGUubGVmdCA9IGAke3Bvc2l0aW9uLmxlZnQgLSAocmVxdWlyZWRQYWRkaW5nIC8gMil9cHhgO1xuICAgIHRoaXMubm9kZS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLm9wdGlvbnMuc3RhZ2VCYWNrZ3JvdW5kO1xuICB9XG59XG5cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7Ozs7Ozs7Ozs7O0FBQ0E7Ozs7QUFJQTs7O0FBQ0E7Ozs7O0FBS0E7QUFBQTtBQUNBO0FBREE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUxBO0FBTUE7QUFDQTtBQUNBOzs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQWxGQTtBQUNBO0FBREE7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _element = __webpack_require__(2);\n\nvar _element2 = _interopRequireDefault(_element);\n\nvar _constants = __webpack_require__(1);\n\nvar _utils = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Popover that is displayed on top of the highlighted element\n */\nvar Popover = function (_Element) {\n _inherits(Popover, _Element);\n\n /**\n * @param {Object} options\n * @param {Window} window\n * @param {Document} document\n */\n function Popover(options, window, document) {\n _classCallCheck(this, Popover);\n\n var _this = _possibleConstructorReturn(this, (Popover.__proto__ || Object.getPrototypeOf(Popover)).call(this));\n\n _this.options = _extends({\n isFirst: true,\n isLast: true,\n totalCount: 1,\n currentIndex: 0,\n showButtons: true,\n closeBtnText: 'Close',\n doneBtnText: 'Done',\n startBtnText: 'Next →',\n nextBtnText: 'Next →',\n prevBtnText: '← Previous'\n }, options);\n\n _this.window = window;\n _this.document = document;\n\n _this.attachNode();\n _this.hide();\n return _this;\n }\n\n /**\n * Prepares the dom element for popover\n * @private\n */\n\n\n _createClass(Popover, [{\n key: 'attachNode',\n value: function attachNode() {\n var popover = this.document.getElementById(_constants.ID_POPOVER);\n if (!popover) {\n popover = (0, _utils.createNodeFromString)(_constants.POPOVER_HTML);\n document.body.appendChild(popover);\n }\n\n this.node = popover;\n this.tipNode = popover.querySelector('.' + _constants.CLASS_POPOVER_TIP);\n this.titleNode = popover.querySelector('.' + _constants.CLASS_POPOVER_TITLE);\n this.descriptionNode = popover.querySelector('.' + _constants.CLASS_POPOVER_DESCRIPTION);\n this.footerNode = popover.querySelector('.' + _constants.CLASS_POPOVER_FOOTER);\n this.nextBtnNode = popover.querySelector('.' + _constants.CLASS_NEXT_STEP_BTN);\n this.prevBtnNode = popover.querySelector('.' + _constants.CLASS_PREV_STEP_BTN);\n this.closeBtnNode = popover.querySelector('.' + _constants.CLASS_CLOSE_BTN);\n }\n\n /**\n * Gets the title node for the popover\n * @returns {Element | null | *}\n * @public\n */\n\n }, {\n key: 'getTitleNode',\n value: function getTitleNode() {\n return this.titleNode;\n }\n\n /**\n * Gets the description node for the popover\n * @returns {Element | null | *}\n * @public\n */\n\n }, {\n key: 'getDescriptionNode',\n value: function getDescriptionNode() {\n return this.descriptionNode;\n }\n\n /**\n * Hides the popover\n * @public\n */\n\n }, {\n key: 'hide',\n value: function hide() {\n this.node.style.display = 'none';\n }\n\n /**\n * Sets the default state for the popover\n * @private\n */\n\n }, {\n key: 'setInitialState',\n value: function setInitialState() {\n this.node.style.display = 'block';\n this.node.style.left = '0';\n this.node.style.top = '0';\n this.node.style.bottom = '';\n this.node.style.right = '';\n\n // Remove the positional classes from tip\n this.node.querySelector('.' + _constants.CLASS_POPOVER_TIP).className = _constants.CLASS_POPOVER_TIP;\n }\n\n /**\n * Shows the popover at the given position\n * @param {Position} position\n * @public\n */\n\n }, {\n key: 'show',\n value: function show(position) {\n this.setInitialState();\n\n // Set the title and descriptions\n this.titleNode.innerHTML = this.options.title;\n this.descriptionNode.innerHTML = this.options.description || '';\n\n this.renderFooter();\n\n // Position the popover around the given position\n switch (this.options.position) {\n case 'left':\n this.positionOnLeft(position);\n break;\n case 'right':\n this.positionOnRight(position);\n break;\n case 'top':\n this.positionOnTop(position);\n break;\n case 'bottom':\n this.positionOnBottom(position);\n break;\n case 'auto':\n default:\n this.autoPosition(position);\n break;\n }\n }\n\n /**\n * Enables, disables buttons, sets the text and\n * decides if to show them or not\n * @private\n */\n\n }, {\n key: 'renderFooter',\n value: function renderFooter() {\n this.nextBtnNode.innerHTML = this.options.nextBtnText;\n this.prevBtnNode.innerHTML = this.options.prevBtnText;\n this.closeBtnNode.innerHTML = this.options.closeBtnText;\n\n // If there was only one item, hide the buttons\n if (!this.options.showButtons || !this.options.totalCount || this.options.totalCount === 1) {\n this.footerNode.style.display = 'none';\n return;\n }\n\n this.footerNode.style.display = 'block';\n if (this.options.isFirst) {\n this.prevBtnNode.classList.add(_constants.CLASS_BTN_DISABLED);\n this.nextBtnNode.innerHTML = this.options.startBtnText;\n } else {\n this.prevBtnNode.classList.remove(_constants.CLASS_BTN_DISABLED);\n }\n\n if (this.options.isLast) {\n this.nextBtnNode.innerHTML = this.options.doneBtnText;\n } else {\n this.nextBtnNode.innerHTML = this.options.nextBtnText;\n }\n }\n\n /**\n * Shows the popover on the left of the given position\n * @param {Position} elementPosition\n * @private\n */\n\n }, {\n key: 'positionOnLeft',\n value: function positionOnLeft(elementPosition) {\n var popoverWidth = this.getSize().width;\n var popoverMargin = this.options.padding + 10; // adding 10 to give it a little distance from the element\n\n this.node.style.left = elementPosition.left - popoverWidth - popoverMargin + 'px';\n this.node.style.top = elementPosition.top - this.options.padding + 'px';\n this.node.style.right = '';\n this.node.style.bottom = '';\n\n this.tipNode.classList.add('right');\n }\n\n /**\n * Shows the popover on the right of the given position\n * @param {Position} elementPosition\n * @private\n */\n\n }, {\n key: 'positionOnRight',\n value: function positionOnRight(elementPosition) {\n var popoverMargin = this.options.padding + 10; // adding 10 to give it a little distance from the element\n\n this.node.style.left = elementPosition.right + popoverMargin + 'px';\n this.node.style.top = elementPosition.top - this.options.padding + 'px';\n this.node.style.right = '';\n this.node.style.bottom = '';\n\n this.tipNode.classList.add('left');\n }\n\n /**\n * Shows the popover on the top of the given position\n * @param {Position} elementPosition\n * @private\n */\n\n }, {\n key: 'positionOnTop',\n value: function positionOnTop(elementPosition) {\n var popoverHeight = this.getSize().height;\n var popoverMargin = this.options.padding + 10; // adding 10 to give it a little distance from the element\n\n this.node.style.top = elementPosition.top - popoverHeight - popoverMargin + 'px';\n this.node.style.left = elementPosition.left - this.options.padding + 'px';\n this.node.style.right = '';\n this.node.style.bottom = '';\n\n this.tipNode.classList.add('bottom');\n }\n\n /**\n * Shows the popover on the bottom of the given position\n * @param {Position} elementPosition\n * @private\n */\n\n }, {\n key: 'positionOnBottom',\n value: function positionOnBottom(elementPosition) {\n var popoverMargin = this.options.padding + 10; // adding 10 to give it a little distance from the element\n\n this.node.style.top = elementPosition.bottom + popoverMargin + 'px';\n this.node.style.left = elementPosition.left - this.options.padding + 'px';\n this.node.style.right = '';\n this.node.style.bottom = '';\n\n this.tipNode.classList.add('top');\n }\n\n /**\n * Automatically positions the popover around the given position\n * such that the element and popover remain in view\n * @todo add the left and right positioning decisions\n * @param {Position} elementPosition\n * @private\n */\n\n }, {\n key: 'autoPosition',\n value: function autoPosition(elementPosition) {\n var pageSize = this.getFullPageSize();\n var popoverSize = this.getSize();\n\n var pageHeight = pageSize.height;\n var popoverHeight = popoverSize.height;\n var popoverMargin = this.options.padding + 10; // adding 10 to give it a little distance from the element\n\n var pageHeightAfterPopOver = elementPosition.bottom + popoverHeight + popoverMargin;\n\n // If adding popover would go out of the window height, then show it to the top\n if (pageHeightAfterPopOver >= pageHeight) {\n this.positionOnTop(elementPosition);\n } else {\n this.positionOnBottom(elementPosition);\n }\n }\n }]);\n\n return Popover;\n}(_element2.default);\n\nexports.default = Popover;\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNi5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvY29yZS9wb3BvdmVyLmpzP2E2ZWIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVsZW1lbnQgZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7XG4gIENMQVNTX0JUTl9ESVNBQkxFRCxcbiAgQ0xBU1NfQ0xPU0VfQlROLFxuICBDTEFTU19ORVhUX1NURVBfQlROLFxuICBDTEFTU19QT1BPVkVSX0RFU0NSSVBUSU9OLFxuICBDTEFTU19QT1BPVkVSX0ZPT1RFUixcbiAgQ0xBU1NfUE9QT1ZFUl9USVAsXG4gIENMQVNTX1BPUE9WRVJfVElUTEUsXG4gIENMQVNTX1BSRVZfU1RFUF9CVE4sXG4gIElEX1BPUE9WRVIsXG4gIFBPUE9WRVJfSFRNTCxcbn0gZnJvbSAnLi4vY29tbW9uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBjcmVhdGVOb2RlRnJvbVN0cmluZyB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5cbi8qKlxuICogUG9wb3ZlciB0aGF0IGlzIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGhpZ2hsaWdodGVkIGVsZW1lbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUG9wb3ZlciBleHRlbmRzIEVsZW1lbnQge1xuICAvKipcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtXaW5kb3d9IHdpbmRvd1xuICAgKiBAcGFyYW0ge0RvY3VtZW50fSBkb2N1bWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucywgd2luZG93LCBkb2N1bWVudCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBpc0ZpcnN0OiB0cnVlLFxuICAgICAgaXNMYXN0OiB0cnVlLFxuICAgICAgdG90YWxDb3VudDogMSxcbiAgICAgIGN1cnJlbnRJbmRleDogMCxcbiAgICAgIHNob3dCdXR0b25zOiB0cnVlLFxuICAgICAgY2xvc2VCdG5UZXh0OiAnQ2xvc2UnLFxuICAgICAgZG9uZUJ0blRleHQ6ICdEb25lJyxcbiAgICAgIHN0YXJ0QnRuVGV4dDogJ05leHQgJnJhcnI7JyxcbiAgICAgIG5leHRCdG5UZXh0OiAnTmV4dCAmcmFycjsnLFxuICAgICAgcHJldkJ0blRleHQ6ICcmbGFycjsgUHJldmlvdXMnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgdGhpcy53aW5kb3cgPSB3aW5kb3c7XG4gICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuXG4gICAgdGhpcy5hdHRhY2hOb2RlKCk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZXMgdGhlIGRvbSBlbGVtZW50IGZvciBwb3BvdmVyXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhdHRhY2hOb2RlKCkge1xuICAgIGxldCBwb3BvdmVyID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChJRF9QT1BPVkVSKTtcbiAgICBpZiAoIXBvcG92ZXIpIHtcbiAgICAgIHBvcG92ZXIgPSBjcmVhdGVOb2RlRnJvbVN0cmluZyhQT1BPVkVSX0hUTUwpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwb3BvdmVyKTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUgPSBwb3BvdmVyO1xuICAgIHRoaXMudGlwTm9kZSA9IHBvcG92ZXIucXVlcnlTZWxlY3RvcihgLiR7Q0xBU1NfUE9QT1ZFUl9USVB9YCk7XG4gICAgdGhpcy50aXRsZU5vZGUgPSBwb3BvdmVyLnF1ZXJ5U2VsZWN0b3IoYC4ke0NMQVNTX1BPUE9WRVJfVElUTEV9YCk7XG4gICAgdGhpcy5kZXNjcmlwdGlvbk5vZGUgPSBwb3BvdmVyLnF1ZXJ5U2VsZWN0b3IoYC4ke0NMQVNTX1BPUE9WRVJfREVTQ1JJUFRJT059YCk7XG4gICAgdGhpcy5mb290ZXJOb2RlID0gcG9wb3Zlci5xdWVyeVNlbGVjdG9yKGAuJHtDTEFTU19QT1BPVkVSX0ZPT1RFUn1gKTtcbiAgICB0aGlzLm5leHRCdG5Ob2RlID0gcG9wb3Zlci5xdWVyeVNlbGVjdG9yKGAuJHtDTEFTU19ORVhUX1NURVBfQlROfWApO1xuICAgIHRoaXMucHJldkJ0bk5vZGUgPSBwb3BvdmVyLnF1ZXJ5U2VsZWN0b3IoYC4ke0NMQVNTX1BSRVZfU1RFUF9CVE59YCk7XG4gICAgdGhpcy5jbG9zZUJ0bk5vZGUgPSBwb3BvdmVyLnF1ZXJ5U2VsZWN0b3IoYC4ke0NMQVNTX0NMT1NFX0JUTn1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0aXRsZSBub2RlIGZvciB0aGUgcG9wb3ZlclxuICAgKiBAcmV0dXJucyB7RWxlbWVudCB8IG51bGwgfCAqfVxuICAgKiBAcHVibGljXG4gICAqL1xuICBnZXRUaXRsZU5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGVOb2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlc2NyaXB0aW9uIG5vZGUgZm9yIHRoZSBwb3BvdmVyXG4gICAqIEByZXR1cm5zIHtFbGVtZW50IHwgbnVsbCB8ICp9XG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGdldERlc2NyaXB0aW9uTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbk5vZGU7XG4gIH1cblxuICAvKipcbiAgICogSGlkZXMgdGhlIHBvcG92ZXJcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgaGlkZSgpIHtcbiAgICB0aGlzLm5vZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkZWZhdWx0IHN0YXRlIGZvciB0aGUgcG9wb3ZlclxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgIHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLm5vZGUuc3R5bGUubGVmdCA9ICcwJztcbiAgICB0aGlzLm5vZGUuc3R5bGUudG9wID0gJzAnO1xuICAgIHRoaXMubm9kZS5zdHlsZS5ib3R0b20gPSAnJztcbiAgICB0aGlzLm5vZGUuc3R5bGUucmlnaHQgPSAnJztcblxuICAgIC8vIFJlbW92ZSB0aGUgcG9zaXRpb25hbCBjbGFzc2VzIGZyb20gdGlwXG4gICAgdGhpcy5ub2RlXG4gICAgICAucXVlcnlTZWxlY3RvcihgLiR7Q0xBU1NfUE9QT1ZFUl9USVB9YClcbiAgICAgIC5jbGFzc05hbWUgPSBDTEFTU19QT1BPVkVSX1RJUDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgcG9wb3ZlciBhdCB0aGUgZ2l2ZW4gcG9zaXRpb25cbiAgICogQHBhcmFtIHtQb3NpdGlvbn0gcG9zaXRpb25cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgc2hvdyhwb3NpdGlvbikge1xuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XG5cbiAgICAvLyBTZXQgdGhlIHRpdGxlIGFuZCBkZXNjcmlwdGlvbnNcbiAgICB0aGlzLnRpdGxlTm9kZS5pbm5lckhUTUwgPSB0aGlzLm9wdGlvbnMudGl0bGU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbk5vZGUuaW5uZXJIVE1MID0gdGhpcy5vcHRpb25zLmRlc2NyaXB0aW9uIHx8ICcnO1xuXG4gICAgdGhpcy5yZW5kZXJGb290ZXIoKTtcblxuICAgIC8vIFBvc2l0aW9uIHRoZSBwb3BvdmVyIGFyb3VuZCB0aGUgZ2l2ZW4gcG9zaXRpb25cbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5wb3NpdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHRoaXMucG9zaXRpb25PbkxlZnQocG9zaXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgdGhpcy5wb3NpdGlvbk9uUmlnaHQocG9zaXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMucG9zaXRpb25PblRvcChwb3NpdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgdGhpcy5wb3NpdGlvbk9uQm90dG9tKHBvc2l0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhdXRvJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuYXV0b1Bvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMsIGRpc2FibGVzIGJ1dHRvbnMsIHNldHMgdGhlIHRleHQgYW5kXG4gICAqIGRlY2lkZXMgaWYgdG8gc2hvdyB0aGVtIG9yIG5vdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcmVuZGVyRm9vdGVyKCkge1xuICAgIHRoaXMubmV4dEJ0bk5vZGUuaW5uZXJIVE1MID0gdGhpcy5vcHRpb25zLm5leHRCdG5UZXh0O1xuICAgIHRoaXMucHJldkJ0bk5vZGUuaW5uZXJIVE1MID0gdGhpcy5vcHRpb25zLnByZXZCdG5UZXh0O1xuICAgIHRoaXMuY2xvc2VCdG5Ob2RlLmlubmVySFRNTCA9IHRoaXMub3B0aW9ucy5jbG9zZUJ0blRleHQ7XG5cbiAgICAvLyBJZiB0aGVyZSB3YXMgb25seSBvbmUgaXRlbSwgaGlkZSB0aGUgYnV0dG9uc1xuICAgIGlmICghdGhpcy5vcHRpb25zLnNob3dCdXR0b25zIHx8ICF0aGlzLm9wdGlvbnMudG90YWxDb3VudCB8fCB0aGlzLm9wdGlvbnMudG90YWxDb3VudCA9PT0gMSkge1xuICAgICAgdGhpcy5mb290ZXJOb2RlLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5mb290ZXJOb2RlLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNGaXJzdCkge1xuICAgICAgdGhpcy5wcmV2QnRuTm9kZS5jbGFzc0xpc3QuYWRkKENMQVNTX0JUTl9ESVNBQkxFRCk7XG4gICAgICB0aGlzLm5leHRCdG5Ob2RlLmlubmVySFRNTCA9IHRoaXMub3B0aW9ucy5zdGFydEJ0blRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldkJ0bk5vZGUuY2xhc3NMaXN0LnJlbW92ZShDTEFTU19CVE5fRElTQUJMRUQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNMYXN0KSB7XG4gICAgICB0aGlzLm5leHRCdG5Ob2RlLmlubmVySFRNTCA9IHRoaXMub3B0aW9ucy5kb25lQnRuVGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXh0QnRuTm9kZS5pbm5lckhUTUwgPSB0aGlzLm9wdGlvbnMubmV4dEJ0blRleHQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSBwb3BvdmVyIG9uIHRoZSBsZWZ0IG9mIHRoZSBnaXZlbiBwb3NpdGlvblxuICAgKiBAcGFyYW0ge1Bvc2l0aW9ufSBlbGVtZW50UG9zaXRpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHBvc2l0aW9uT25MZWZ0KGVsZW1lbnRQb3NpdGlvbikge1xuICAgIGNvbnN0IHBvcG92ZXJXaWR0aCA9IHRoaXMuZ2V0U2l6ZSgpLndpZHRoO1xuICAgIGNvbnN0IHBvcG92ZXJNYXJnaW4gPSB0aGlzLm9wdGlvbnMucGFkZGluZyArIDEwOyAgLy8gYWRkaW5nIDEwIHRvIGdpdmUgaXQgYSBsaXR0bGUgZGlzdGFuY2UgZnJvbSB0aGUgZWxlbWVudFxuXG4gICAgdGhpcy5ub2RlLnN0eWxlLmxlZnQgPSBgJHtlbGVtZW50UG9zaXRpb24ubGVmdCAtIHBvcG92ZXJXaWR0aCAtIHBvcG92ZXJNYXJnaW59cHhgO1xuICAgIHRoaXMubm9kZS5zdHlsZS50b3AgPSBgJHtlbGVtZW50UG9zaXRpb24udG9wIC0gdGhpcy5vcHRpb25zLnBhZGRpbmd9cHhgO1xuICAgIHRoaXMubm9kZS5zdHlsZS5yaWdodCA9ICcnO1xuICAgIHRoaXMubm9kZS5zdHlsZS5ib3R0b20gPSAnJztcblxuICAgIHRoaXMudGlwTm9kZS5jbGFzc0xpc3QuYWRkKCdyaWdodCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSBwb3BvdmVyIG9uIHRoZSByaWdodCBvZiB0aGUgZ2l2ZW4gcG9zaXRpb25cbiAgICogQHBhcmFtIHtQb3NpdGlvbn0gZWxlbWVudFBvc2l0aW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwb3NpdGlvbk9uUmlnaHQoZWxlbWVudFBvc2l0aW9uKSB7XG4gICAgY29uc3QgcG9wb3Zlck1hcmdpbiA9IHRoaXMub3B0aW9ucy5wYWRkaW5nICsgMTA7ICAvLyBhZGRpbmcgMTAgdG8gZ2l2ZSBpdCBhIGxpdHRsZSBkaXN0YW5jZSBmcm9tIHRoZSBlbGVtZW50XG5cbiAgICB0aGlzLm5vZGUuc3R5bGUubGVmdCA9IGAke2VsZW1lbnRQb3NpdGlvbi5yaWdodCArIHBvcG92ZXJNYXJnaW59cHhgO1xuICAgIHRoaXMubm9kZS5zdHlsZS50b3AgPSBgJHtlbGVtZW50UG9zaXRpb24udG9wIC0gdGhpcy5vcHRpb25zLnBhZGRpbmd9cHhgO1xuICAgIHRoaXMubm9kZS5zdHlsZS5yaWdodCA9ICcnO1xuICAgIHRoaXMubm9kZS5zdHlsZS5ib3R0b20gPSAnJztcblxuICAgIHRoaXMudGlwTm9kZS5jbGFzc0xpc3QuYWRkKCdsZWZ0Jyk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIHBvcG92ZXIgb24gdGhlIHRvcCBvZiB0aGUgZ2l2ZW4gcG9zaXRpb25cbiAgICogQHBhcmFtIHtQb3NpdGlvbn0gZWxlbWVudFBvc2l0aW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwb3NpdGlvbk9uVG9wKGVsZW1lbnRQb3NpdGlvbikge1xuICAgIGNvbnN0IHBvcG92ZXJIZWlnaHQgPSB0aGlzLmdldFNpemUoKS5oZWlnaHQ7XG4gICAgY29uc3QgcG9wb3Zlck1hcmdpbiA9IHRoaXMub3B0aW9ucy5wYWRkaW5nICsgMTA7ICAvLyBhZGRpbmcgMTAgdG8gZ2l2ZSBpdCBhIGxpdHRsZSBkaXN0YW5jZSBmcm9tIHRoZSBlbGVtZW50XG5cbiAgICB0aGlzLm5vZGUuc3R5bGUudG9wID0gYCR7ZWxlbWVudFBvc2l0aW9uLnRvcCAtIHBvcG92ZXJIZWlnaHQgLSBwb3BvdmVyTWFyZ2lufXB4YDtcbiAgICB0aGlzLm5vZGUuc3R5bGUubGVmdCA9IGAke2VsZW1lbnRQb3NpdGlvbi5sZWZ0IC0gdGhpcy5vcHRpb25zLnBhZGRpbmd9cHhgO1xuICAgIHRoaXMubm9kZS5zdHlsZS5yaWdodCA9ICcnO1xuICAgIHRoaXMubm9kZS5zdHlsZS5ib3R0b20gPSAnJztcblxuICAgIHRoaXMudGlwTm9kZS5jbGFzc0xpc3QuYWRkKCdib3R0b20nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93cyB0aGUgcG9wb3ZlciBvbiB0aGUgYm90dG9tIG9mIHRoZSBnaXZlbiBwb3NpdGlvblxuICAgKiBAcGFyYW0ge1Bvc2l0aW9ufSBlbGVtZW50UG9zaXRpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHBvc2l0aW9uT25Cb3R0b20oZWxlbWVudFBvc2l0aW9uKSB7XG4gICAgY29uc3QgcG9wb3Zlck1hcmdpbiA9IHRoaXMub3B0aW9ucy5wYWRkaW5nICsgMTA7ICAvLyBhZGRpbmcgMTAgdG8gZ2l2ZSBpdCBhIGxpdHRsZSBkaXN0YW5jZSBmcm9tIHRoZSBlbGVtZW50XG5cbiAgICB0aGlzLm5vZGUuc3R5bGUudG9wID0gYCR7ZWxlbWVudFBvc2l0aW9uLmJvdHRvbSArIHBvcG92ZXJNYXJnaW59cHhgO1xuICAgIHRoaXMubm9kZS5zdHlsZS5sZWZ0ID0gYCR7ZWxlbWVudFBvc2l0aW9uLmxlZnQgLSB0aGlzLm9wdGlvbnMucGFkZGluZ31weGA7XG4gICAgdGhpcy5ub2RlLnN0eWxlLnJpZ2h0ID0gJyc7XG4gICAgdGhpcy5ub2RlLnN0eWxlLmJvdHRvbSA9ICcnO1xuXG4gICAgdGhpcy50aXBOb2RlLmNsYXNzTGlzdC5hZGQoJ3RvcCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgcG9zaXRpb25zIHRoZSBwb3BvdmVyIGFyb3VuZCB0aGUgZ2l2ZW4gcG9zaXRpb25cbiAgICogc3VjaCB0aGF0IHRoZSBlbGVtZW50IGFuZCBwb3BvdmVyIHJlbWFpbiBpbiB2aWV3XG4gICAqIEB0b2RvIGFkZCB0aGUgbGVmdCBhbmQgcmlnaHQgcG9zaXRpb25pbmcgZGVjaXNpb25zXG4gICAqIEBwYXJhbSB7UG9zaXRpb259IGVsZW1lbnRQb3NpdGlvblxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgYXV0b1Bvc2l0aW9uKGVsZW1lbnRQb3NpdGlvbikge1xuICAgIGNvbnN0IHBhZ2VTaXplID0gdGhpcy5nZXRGdWxsUGFnZVNpemUoKTtcbiAgICBjb25zdCBwb3BvdmVyU2l6ZSA9IHRoaXMuZ2V0U2l6ZSgpO1xuXG4gICAgY29uc3QgcGFnZUhlaWdodCA9IHBhZ2VTaXplLmhlaWdodDtcbiAgICBjb25zdCBwb3BvdmVySGVpZ2h0ID0gcG9wb3ZlclNpemUuaGVpZ2h0O1xuICAgIGNvbnN0IHBvcG92ZXJNYXJnaW4gPSB0aGlzLm9wdGlvbnMucGFkZGluZyArIDEwOyAgLy8gYWRkaW5nIDEwIHRvIGdpdmUgaXQgYSBsaXR0bGUgZGlzdGFuY2UgZnJvbSB0aGUgZWxlbWVudFxuXG4gICAgY29uc3QgcGFnZUhlaWdodEFmdGVyUG9wT3ZlciA9IGVsZW1lbnRQb3NpdGlvbi5ib3R0b20gKyBwb3BvdmVySGVpZ2h0ICsgcG9wb3Zlck1hcmdpbjtcblxuICAgIC8vIElmIGFkZGluZyBwb3BvdmVyIHdvdWxkIGdvIG91dCBvZiB0aGUgd2luZG93IGhlaWdodCwgdGhlbiBzaG93IGl0IHRvIHRoZSB0b3BcbiAgICBpZiAocGFnZUhlaWdodEFmdGVyUG9wT3ZlciA+PSBwYWdlSGVpZ2h0KSB7XG4gICAgICB0aGlzLnBvc2l0aW9uT25Ub3AoZWxlbWVudFBvc2l0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb3NpdGlvbk9uQm90dG9tKGVsZW1lbnRQb3NpdGlvbik7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBOzs7QUFBQTtBQUNBO0FBV0E7QUFDQTs7Ozs7Ozs7O0FBQ0E7OztBQUdBOzs7QUFDQTs7Ozs7QUFLQTtBQUFBO0FBQ0E7QUFEQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVZBO0FBQ0E7QUFhQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBckJBO0FBc0JBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoQkE7QUFrQkE7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQXpQQTtBQUNBO0FBREE7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6\n")},function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\n/**\n * Responsible for validating positions and is used\n * when manipulating positions across the application\n */\nvar Position = function () {\n /**\n * @param {number} left\n * @param {number} top\n * @param {number} right\n * @param {number} bottom\n */\n function Position() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$left = _ref.left,\n left = _ref$left === undefined ? 0 : _ref$left,\n _ref$top = _ref.top,\n top = _ref$top === undefined ? 0 : _ref$top,\n _ref$right = _ref.right,\n right = _ref$right === undefined ? 0 : _ref$right,\n _ref$bottom = _ref.bottom,\n bottom = _ref$bottom === undefined ? 0 : _ref$bottom;\n\n _classCallCheck(this, Position);\n\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n }\n\n /**\n * Checks if the position is valid to be highlighted\n * @returns {boolean}\n * @public\n */\n\n\n _createClass(Position, [{\n key: "canHighlight",\n value: function canHighlight() {\n return this.left < this.right && this.top < this.bottom;\n }\n\n /**\n * Checks if the given position is equal to the passed position\n * @param position Position\n * @returns {boolean}\n * @public\n */\n\n }, {\n key: "equals",\n value: function equals(position) {\n return Math.round(this.left) === Math.round(position.left) && Math.round(this.right) === Math.round(position.right) && Math.round(this.top) === Math.round(position.top) && Math.round(this.bottom) === Math.round(position.bottom);\n }\n }]);\n\n return Position;\n}();\n\nexports.default = Position;\nmodule.exports = exports["default"];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiNy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvY29yZS9wb3NpdGlvbi5qcz81Mzg4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzcG9uc2libGUgZm9yIHZhbGlkYXRpbmcgcG9zaXRpb25zIGFuZCBpcyB1c2VkXG4gKiB3aGVuIG1hbmlwdWxhdGluZyBwb3NpdGlvbnMgYWNyb3NzIHRoZSBhcHBsaWNhdGlvblxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQb3NpdGlvbiB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbGVmdFxuICAgKiBAcGFyYW0ge251bWJlcn0gdG9wXG4gICAqIEBwYXJhbSB7bnVtYmVyfSByaWdodFxuICAgKiBAcGFyYW0ge251bWJlcn0gYm90dG9tXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7XG4gICAgbGVmdCA9IDAsXG4gICAgdG9wID0gMCxcbiAgICByaWdodCA9IDAsXG4gICAgYm90dG9tID0gMCxcbiAgfSA9IHt9KSB7XG4gICAgdGhpcy5sZWZ0ID0gbGVmdDtcbiAgICB0aGlzLnJpZ2h0ID0gcmlnaHQ7XG4gICAgdGhpcy50b3AgPSB0b3A7XG4gICAgdGhpcy5ib3R0b20gPSBib3R0b207XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBwb3NpdGlvbiBpcyB2YWxpZCB0byBiZSBoaWdobGlnaHRlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgY2FuSGlnaGxpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLmxlZnQgPCB0aGlzLnJpZ2h0ICYmIHRoaXMudG9wIDwgdGhpcy5ib3R0b207XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBwb3NpdGlvbiBpcyBlcXVhbCB0byB0aGUgcGFzc2VkIHBvc2l0aW9uXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBQb3NpdGlvblxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZXF1YWxzKHBvc2l0aW9uKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQodGhpcy5sZWZ0KSA9PT0gTWF0aC5yb3VuZChwb3NpdGlvbi5sZWZ0KSAmJlxuICAgICAgTWF0aC5yb3VuZCh0aGlzLnJpZ2h0KSA9PT0gTWF0aC5yb3VuZChwb3NpdGlvbi5yaWdodCkgJiZcbiAgICAgIE1hdGgucm91bmQodGhpcy50b3ApID09PSBNYXRoLnJvdW5kKHBvc2l0aW9uLnRvcCkgJiZcbiAgICAgIE1hdGgucm91bmQodGhpcy5ib3R0b20pID09PSBNYXRoLnJvdW5kKHBvc2l0aW9uLmJvdHRvbSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOzs7O0FBSUE7QUFDQTs7Ozs7O0FBTUE7QUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQURBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBTUE7QUFDQTtBQUlBOzs7Ozs7QUF2Q0E7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///7\n')},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _constants = __webpack_require__(1);\n\nvar _utils = __webpack_require__(0);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Responsible for overlay creation and manipulation i.e.\n * cutting out the visible part, animating between the sections etc\n */\nvar Overlay = function () {\n /**\n * @param {Object} options\n * @param {Window} window\n * @param {Document} document\n */\n function Overlay(options, window, document) {\n _classCallCheck(this, Overlay);\n\n this.options = options;\n\n this.highlightedElement = null; // currently highlighted dom element (instance of Element)\n this.lastHighlightedElement = null; // element that was highlighted before current one\n this.hideTimer = null;\n\n this.window = window;\n this.document = document;\n\n this.removeNode = this.removeNode.bind(this);\n }\n\n /**\n * Prepares the overlay\n * @private\n */\n\n\n _createClass(Overlay, [{\n key: 'attachNode',\n value: function attachNode() {\n var pageOverlay = this.document.getElementById(_constants.ID_OVERLAY);\n if (!pageOverlay) {\n pageOverlay = (0, _utils.createNodeFromString)(_constants.OVERLAY_HTML);\n document.body.appendChild(pageOverlay);\n }\n\n this.node = pageOverlay;\n this.node.style.opacity = '0';\n\n if (!this.options.animate) {\n // For non-animation cases remove the overlay because we achieve this overlay by having\n // a higher box-shadow on the stage. Why are we doing it that way? Because the stage that\n // is shown \"behind\" the highlighted element to make it pop out of the screen, it introduces\n // some stacking contexts issues. To avoid those issues we just make the stage background\n // transparent and achieve the overlay using the shadow so to make the element below it visible\n // through the stage even if there are stacking issues.\n if (this.node.parentElement) {\n this.node.parentElement.removeChild(this.node);\n }\n }\n }\n\n /**\n * Highlights the dom element on the screen\n * @param {Element} element\n * @public\n */\n\n }, {\n key: 'highlight',\n value: function highlight(element) {\n if (!element || !element.node) {\n console.warn('Invalid element to highlight. Must be an instance of `Element`');\n return;\n }\n\n // If highlighted element is not changed from last time\n if (element.isSame(this.highlightedElement)) {\n return;\n }\n\n // There might be hide timer from last time\n // which might be getting triggered\n this.window.clearTimeout(this.hideTimer);\n\n // Trigger the hook for highlight started\n element.onHighlightStarted();\n\n // Old element has been deselected\n if (this.highlightedElement && !this.highlightedElement.isSame(this.lastHighlightedElement)) {\n this.highlightedElement.onDeselected();\n }\n\n // get the position of element around which we need to draw\n var position = element.getCalculatedPosition();\n if (!position.canHighlight()) {\n return;\n }\n\n this.lastHighlightedElement = this.highlightedElement;\n this.highlightedElement = element;\n\n this.show();\n\n // Element has been highlighted\n this.highlightedElement.onHighlighted();\n }\n\n /**\n * Shows the overlay on whole screen\n * @public\n */\n\n }, {\n key: 'show',\n value: function show() {\n var _this = this;\n\n if (this.node && this.node.parentElement) {\n return;\n }\n\n this.attachNode();\n\n window.setTimeout(function () {\n _this.node.style.opacity = '' + _this.options.opacity;\n _this.node.style.position = 'fixed';\n _this.node.style.left = '0';\n _this.node.style.top = '0';\n _this.node.style.bottom = '0';\n _this.node.style.right = '0';\n });\n }\n\n /**\n * Returns the currently selected element\n * @returns {null|*}\n * @public\n */\n\n }, {\n key: 'getHighlightedElement',\n value: function getHighlightedElement() {\n return this.highlightedElement;\n }\n\n /**\n * Gets the element that was highlighted before current element\n * @returns {null|*}\n * @public\n */\n\n }, {\n key: 'getLastHighlightedElement',\n value: function getLastHighlightedElement() {\n return this.lastHighlightedElement;\n }\n\n /**\n * Removes the overlay and cancel any listeners\n * @public\n */\n\n }, {\n key: 'clear',\n value: function clear() {\n var immediate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n // Callback for when overlay is about to be reset\n if (this.options.onReset) {\n this.options.onReset(this.highlightedElement);\n }\n\n // Deselect the highlighted element if any\n if (this.highlightedElement) {\n var hideStage = true;\n this.highlightedElement.onDeselected(hideStage);\n }\n\n this.highlightedElement = null;\n this.lastHighlightedElement = null;\n\n if (!this.node) {\n return;\n }\n\n // Clear any existing timers and remove node\n this.window.clearTimeout(this.hideTimer);\n\n if (this.options.animate && !immediate) {\n this.node.style.opacity = '0';\n this.hideTimer = this.window.setTimeout(this.removeNode, _constants.ANIMATION_DURATION_MS);\n } else {\n this.removeNode();\n }\n }\n\n /**\n * Removes the overlay node if it exists\n * @private\n */\n\n }, {\n key: 'removeNode',\n value: function removeNode() {\n if (this.node && this.node.parentElement) {\n this.node.parentElement.removeChild(this.node);\n }\n }\n\n /**\n * Refreshes the overlay i.e. sets the size according to current window size\n * And moves the highlight around if necessary\n * @public\n */\n\n }, {\n key: 'refresh',\n value: function refresh() {\n // If no highlighted element, cancel the refresh\n if (!this.highlightedElement) {\n return;\n }\n\n // Reposition the stage and show popover\n this.highlightedElement.showPopover();\n this.highlightedElement.showStage();\n }\n }]);\n\n return Overlay;\n}();\n\nexports.default = Overlay;\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvY29yZS9vdmVybGF5LmpzP2MwNjYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQU5JTUFUSU9OX0RVUkFUSU9OX01TLCBJRF9PVkVSTEFZLCBPVkVSTEFZX0hUTUwgfSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IGNyZWF0ZU5vZGVGcm9tU3RyaW5nIH0gZnJvbSAnLi4vY29tbW9uL3V0aWxzJztcblxuLyoqXG4gKiBSZXNwb25zaWJsZSBmb3Igb3ZlcmxheSBjcmVhdGlvbiBhbmQgbWFuaXB1bGF0aW9uIGkuZS5cbiAqIGN1dHRpbmcgb3V0IHRoZSB2aXNpYmxlIHBhcnQsIGFuaW1hdGluZyBiZXR3ZWVuIHRoZSBzZWN0aW9ucyBldGNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3ZlcmxheSB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKiBAcGFyYW0ge1dpbmRvd30gd2luZG93XG4gICAqIEBwYXJhbSB7RG9jdW1lbnR9IGRvY3VtZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zLCB3aW5kb3csIGRvY3VtZW50KSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50ID0gbnVsbDsgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSBoaWdobGlnaHRlZCBkb20gZWxlbWVudCAoaW5zdGFuY2Ugb2YgRWxlbWVudClcbiAgICB0aGlzLmxhc3RIaWdobGlnaHRlZEVsZW1lbnQgPSBudWxsOyAgICAgICAgICAvLyBlbGVtZW50IHRoYXQgd2FzIGhpZ2hsaWdodGVkIGJlZm9yZSBjdXJyZW50IG9uZVxuICAgIHRoaXMuaGlkZVRpbWVyID0gbnVsbDtcblxuICAgIHRoaXMud2luZG93ID0gd2luZG93O1xuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcblxuICAgIHRoaXMucmVtb3ZlTm9kZSA9IHRoaXMucmVtb3ZlTm9kZS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmVzIHRoZSBvdmVybGF5XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBhdHRhY2hOb2RlKCkge1xuICAgIGxldCBwYWdlT3ZlcmxheSA9IHRoaXMuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSURfT1ZFUkxBWSk7XG4gICAgaWYgKCFwYWdlT3ZlcmxheSkge1xuICAgICAgcGFnZU92ZXJsYXkgPSBjcmVhdGVOb2RlRnJvbVN0cmluZyhPVkVSTEFZX0hUTUwpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwYWdlT3ZlcmxheSk7XG4gICAgfVxuXG4gICAgdGhpcy5ub2RlID0gcGFnZU92ZXJsYXk7XG4gICAgdGhpcy5ub2RlLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG5cbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hbmltYXRlKSB7XG4gICAgICAvLyBGb3Igbm9uLWFuaW1hdGlvbiBjYXNlcyByZW1vdmUgdGhlIG92ZXJsYXkgYmVjYXVzZSB3ZSBhY2hpZXZlIHRoaXMgb3ZlcmxheSBieSBoYXZpbmdcbiAgICAgIC8vIGEgaGlnaGVyIGJveC1zaGFkb3cgb24gdGhlIHN0YWdlLiBXaHkgYXJlIHdlIGRvaW5nIGl0IHRoYXQgd2F5PyBCZWNhdXNlIHRoZSBzdGFnZSB0aGF0XG4gICAgICAvLyBpcyBzaG93biBcImJlaGluZFwiIHRoZSBoaWdobGlnaHRlZCBlbGVtZW50IHRvIG1ha2UgaXQgcG9wIG91dCBvZiB0aGUgc2NyZWVuLCBpdCBpbnRyb2R1Y2VzXG4gICAgICAvLyBzb21lIHN0YWNraW5nIGNvbnRleHRzIGlzc3Vlcy4gVG8gYXZvaWQgdGhvc2UgaXNzdWVzIHdlIGp1c3QgbWFrZSB0aGUgc3RhZ2UgYmFja2dyb3VuZFxuICAgICAgLy8gdHJhbnNwYXJlbnQgYW5kIGFjaGlldmUgdGhlIG92ZXJsYXkgdXNpbmcgdGhlIHNoYWRvdyBzbyB0byBtYWtlIHRoZSBlbGVtZW50IGJlbG93IGl0IHZpc2libGVcbiAgICAgIC8vIHRocm91Z2ggdGhlIHN0YWdlIGV2ZW4gaWYgdGhlcmUgYXJlIHN0YWNraW5nIGlzc3Vlcy5cbiAgICAgIGlmICh0aGlzLm5vZGUucGFyZW50RWxlbWVudCkge1xuICAgICAgICB0aGlzLm5vZGUucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLm5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIaWdobGlnaHRzIHRoZSBkb20gZWxlbWVudCBvbiB0aGUgc2NyZWVuXG4gICAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudFxuICAgKiBAcHVibGljXG4gICAqL1xuICBoaWdobGlnaHQoZWxlbWVudCkge1xuICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5ub2RlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgZWxlbWVudCB0byBoaWdobGlnaHQuIE11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgYEVsZW1lbnRgJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgaGlnaGxpZ2h0ZWQgZWxlbWVudCBpcyBub3QgY2hhbmdlZCBmcm9tIGxhc3QgdGltZVxuICAgIGlmIChlbGVtZW50LmlzU2FtZSh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBUaGVyZSBtaWdodCBiZSBoaWRlIHRpbWVyIGZyb20gbGFzdCB0aW1lXG4gICAgLy8gd2hpY2ggbWlnaHQgYmUgZ2V0dGluZyB0cmlnZ2VyZWRcbiAgICB0aGlzLndpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZXIpO1xuXG4gICAgLy8gVHJpZ2dlciB0aGUgaG9vayBmb3IgaGlnaGxpZ2h0IHN0YXJ0ZWRcbiAgICBlbGVtZW50Lm9uSGlnaGxpZ2h0U3RhcnRlZCgpO1xuXG4gICAgLy8gT2xkIGVsZW1lbnQgaGFzIGJlZW4gZGVzZWxlY3RlZFxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudCAmJiAhdGhpcy5oaWdobGlnaHRlZEVsZW1lbnQuaXNTYW1lKHRoaXMubGFzdEhpZ2hsaWdodGVkRWxlbWVudCkpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50Lm9uRGVzZWxlY3RlZCgpO1xuICAgIH1cblxuICAgIC8vIGdldCB0aGUgcG9zaXRpb24gb2YgZWxlbWVudCBhcm91bmQgd2hpY2ggd2UgbmVlZCB0byBkcmF3XG4gICAgY29uc3QgcG9zaXRpb24gPSBlbGVtZW50LmdldENhbGN1bGF0ZWRQb3NpdGlvbigpO1xuICAgIGlmICghcG9zaXRpb24uY2FuSGlnaGxpZ2h0KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxhc3RIaWdobGlnaHRlZEVsZW1lbnQgPSB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudDtcbiAgICB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudCA9IGVsZW1lbnQ7XG5cbiAgICB0aGlzLnNob3coKTtcblxuICAgIC8vIEVsZW1lbnQgaGFzIGJlZW4gaGlnaGxpZ2h0ZWRcbiAgICB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudC5vbkhpZ2hsaWdodGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIG92ZXJsYXkgb24gd2hvbGUgc2NyZWVuXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIHNob3coKSB7XG4gICAgaWYgKHRoaXMubm9kZSAmJiB0aGlzLm5vZGUucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXR0YWNoTm9kZSgpO1xuXG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLm9wYWNpdHkgPSBgJHt0aGlzLm9wdGlvbnMub3BhY2l0eX1gO1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLnRvcCA9ICcwJztcbiAgICAgIHRoaXMubm9kZS5zdHlsZS5ib3R0b20gPSAnMCc7XG4gICAgICB0aGlzLm5vZGUuc3R5bGUucmlnaHQgPSAnMCc7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGVsZW1lbnRcbiAgICogQHJldHVybnMge251bGx8Kn1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0SGlnaGxpZ2h0ZWRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmhpZ2hsaWdodGVkRWxlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBlbGVtZW50IHRoYXQgd2FzIGhpZ2hsaWdodGVkIGJlZm9yZSBjdXJyZW50IGVsZW1lbnRcbiAgICogQHJldHVybnMge251bGx8Kn1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZ2V0TGFzdEhpZ2hsaWdodGVkRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0SGlnaGxpZ2h0ZWRFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIG92ZXJsYXkgYW5kIGNhbmNlbCBhbnkgbGlzdGVuZXJzXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGNsZWFyKGltbWVkaWF0ZSA9IGZhbHNlKSB7XG4gICAgLy8gQ2FsbGJhY2sgZm9yIHdoZW4gb3ZlcmxheSBpcyBhYm91dCB0byBiZSByZXNldFxuICAgIGlmICh0aGlzLm9wdGlvbnMub25SZXNldCkge1xuICAgICAgdGhpcy5vcHRpb25zLm9uUmVzZXQodGhpcy5oaWdobGlnaHRlZEVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8vIERlc2VsZWN0IHRoZSBoaWdobGlnaHRlZCBlbGVtZW50IGlmIGFueVxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRWxlbWVudCkge1xuICAgICAgY29uc3QgaGlkZVN0YWdlID0gdHJ1ZTtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50Lm9uRGVzZWxlY3RlZChoaWRlU3RhZ2UpO1xuICAgIH1cblxuICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLmxhc3RIaWdobGlnaHRlZEVsZW1lbnQgPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLm5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgdGltZXJzIGFuZCByZW1vdmUgbm9kZVxuICAgIHRoaXMud2luZG93LmNsZWFyVGltZW91dCh0aGlzLmhpZGVUaW1lcik7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmFuaW1hdGUgJiYgIWltbWVkaWF0ZSkge1xuICAgICAgdGhpcy5ub2RlLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICB0aGlzLmhpZGVUaW1lciA9IHRoaXMud2luZG93LnNldFRpbWVvdXQodGhpcy5yZW1vdmVOb2RlLCBBTklNQVRJT05fRFVSQVRJT05fTVMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgb3ZlcmxheSBub2RlIGlmIGl0IGV4aXN0c1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcmVtb3ZlTm9kZSgpIHtcbiAgICBpZiAodGhpcy5ub2RlICYmIHRoaXMubm9kZS5wYXJlbnRFbGVtZW50KSB7XG4gICAgICB0aGlzLm5vZGUucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIG92ZXJsYXkgaS5lLiBzZXRzIHRoZSBzaXplIGFjY29yZGluZyB0byBjdXJyZW50IHdpbmRvdyBzaXplXG4gICAqIEFuZCBtb3ZlcyB0aGUgaGlnaGxpZ2h0IGFyb3VuZCBpZiBuZWNlc3NhcnlcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgcmVmcmVzaCgpIHtcbiAgICAvLyBJZiBubyBoaWdobGlnaHRlZCBlbGVtZW50LCBjYW5jZWwgdGhlIHJlZnJlc2hcbiAgICBpZiAoIXRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmVwb3NpdGlvbiB0aGUgc3RhZ2UgYW5kIHNob3cgcG9wb3ZlclxuICAgIHRoaXMuaGlnaGxpZ2h0ZWRFbGVtZW50LnNob3dQb3BvdmVyKCk7XG4gICAgdGhpcy5oaWdobGlnaHRlZEVsZW1lbnQuc2hvd1N0YWdlKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQUE7QUFDQTs7O0FBQ0E7Ozs7QUFJQTtBQUNBOzs7OztBQUtBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFJQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUExTEE7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _overlay = __webpack_require__(8);\n\nvar _overlay2 = _interopRequireDefault(_overlay);\n\nvar _element = __webpack_require__(2);\n\nvar _element2 = _interopRequireDefault(_element);\n\nvar _popover = __webpack_require__(6);\n\nvar _popover2 = _interopRequireDefault(_popover);\n\nvar _constants = __webpack_require__(1);\n\nvar _stage = __webpack_require__(5);\n\nvar _stage2 = _interopRequireDefault(_stage);\n\nvar _utils = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Plugin class that drives the plugin\n */\nvar Driver = function () {\n /**\n * @param {Object} options\n */\n function Driver() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Driver);\n\n this.options = _extends({\n animate: _constants.SHOULD_ANIMATE_OVERLAY, // Whether to animate or not\n opacity: _constants.OVERLAY_OPACITY, // Overlay opacity\n padding: _constants.OVERLAY_PADDING, // Spacing around the element from the overlay\n scrollIntoViewOptions: null, // Options to be passed to `scrollIntoView`\n allowClose: _constants.SHOULD_OUTSIDE_CLICK_CLOSE, // Whether to close overlay on click outside the element\n keyboardControl: _constants.ALLOW_KEYBOARD_CONTROL, // Whether to allow controlling through keyboard or not\n overlayClickNext: _constants.SHOULD_OUTSIDE_CLICK_NEXT, // Whether to move next on click outside the element\n stageBackground: '#ffffff', // Background color for the stage\n onHighlightStarted: function onHighlightStarted() {\n return null;\n }, // When element is about to be highlighted\n onHighlighted: function onHighlighted() {\n return null;\n }, // When element has been highlighted\n onDeselected: function onDeselected() {\n return null;\n }, // When the element has been deselected\n onReset: function onReset() {\n return null;\n }, // When overlay is about to be cleared\n onNext: function onNext() {\n return null;\n }, // When next button is clicked\n onPrevious: function onPrevious() {\n return null;\n } }, options);\n\n this.document = document;\n this.window = window;\n this.isActivated = false;\n this.steps = []; // steps to be presented if any\n this.currentStep = 0; // index for the currently highlighted step\n this.currentMovePrevented = false; // If the current move was prevented\n\n this.overlay = new _overlay2.default(this.options, window, document);\n\n this.onResize = this.onResize.bind(this);\n this.onKeyUp = this.onKeyUp.bind(this);\n this.onClick = this.onClick.bind(this);\n this.moveNext = this.moveNext.bind(this);\n this.movePrevious = this.movePrevious.bind(this);\n this.preventMove = this.preventMove.bind(this);\n\n // Event bindings\n this.bind();\n }\n\n /**\n * Binds any DOM events listeners\n * @todo: add throttling in all the listeners\n * @private\n */\n\n\n _createClass(Driver, [{\n key: 'bind',\n value: function bind() {\n this.window.addEventListener('resize', this.onResize, false);\n this.window.addEventListener('keyup', this.onKeyUp, false);\n this.window.addEventListener('click', this.onClick, false);\n this.window.addEventListener('touchstart', this.onClick, false);\n }\n\n /**\n * Removes the popover if clicked outside the highlighted element\n * or outside the\n * @param e\n * @private\n */\n\n }, {\n key: 'onClick',\n value: function onClick(e) {\n if (!this.isActivated || !this.hasHighlightedElement()) {\n return;\n }\n\n var highlightedElement = this.overlay.getHighlightedElement();\n var popover = this.document.getElementById(_constants.ID_POPOVER);\n\n var clickedHighlightedElement = highlightedElement.node.contains(e.target);\n var clickedPopover = popover && popover.contains(e.target);\n\n if (!clickedHighlightedElement && !clickedPopover && this.options.overlayClickNext) {\n this.handleNext();\n return;\n }\n\n // Remove the overlay If clicked outside the highlighted element\n if (!clickedHighlightedElement && !clickedPopover && this.options.allowClose) {\n this.reset();\n return;\n }\n\n var nextClicked = e.target.classList.contains(_constants.CLASS_NEXT_STEP_BTN);\n var prevClicked = e.target.classList.contains(_constants.CLASS_PREV_STEP_BTN);\n var closeClicked = e.target.classList.contains(_constants.CLASS_CLOSE_BTN);\n\n if (closeClicked) {\n this.reset();\n return;\n }\n\n if (nextClicked) {\n this.handleNext();\n } else if (prevClicked) {\n this.handlePrevious();\n }\n }\n\n /**\n * Handler for the onResize DOM event\n * Makes sure highlighted element stays at valid position\n * @private\n */\n\n }, {\n key: 'onResize',\n value: function onResize() {\n if (!this.isActivated) {\n return;\n }\n\n this.overlay.refresh();\n }\n\n /**\n * Clears the overlay on escape key process\n * @param event\n * @private\n */\n\n }, {\n key: 'onKeyUp',\n value: function onKeyUp(event) {\n // If driver is not active or keyboard control is disabled\n if (!this.isActivated || !this.options.keyboardControl) {\n return;\n }\n\n // If escape was pressed and it is allowed to click outside to close\n if (event.keyCode === _constants.ESC_KEY_CODE) {\n this.reset();\n return;\n }\n\n // Arrow keys to only perform if it is stepped introduction\n if (this.steps.length !== 0) {\n if (event.keyCode === _constants.RIGHT_KEY_CODE) {\n this.handleNext();\n } else if (event.keyCode === _constants.LEFT_KEY_CODE) {\n this.handlePrevious();\n }\n }\n }\n\n /**\n * Moves to the previous step if possible\n * otherwise resets the overlay\n * @public\n */\n\n }, {\n key: 'movePrevious',\n value: function movePrevious() {\n var previousStep = this.steps[this.currentStep - 1];\n if (!previousStep) {\n this.reset();\n return;\n }\n\n this.overlay.highlight(previousStep);\n this.currentStep -= 1;\n }\n\n /**\n * Prevents the current move. Useful in `onNext` if you want to\n * perform some asynchronous task and manually move to next step\n * @public\n */\n\n }, {\n key: 'preventMove',\n value: function preventMove() {\n this.currentMovePrevented = true;\n }\n\n /**\n * Handles the internal \"move to next\" event\n * @private\n */\n\n }, {\n key: 'handleNext',\n value: function handleNext() {\n this.currentMovePrevented = false;\n\n // Call the bound `onNext` handler if available\n var currentStep = this.steps[this.currentStep];\n if (currentStep.options.onNext) {\n currentStep.options.onNext(this.overlay.highlightedElement);\n }\n\n if (this.currentMovePrevented) {\n return;\n }\n\n this.moveNext();\n }\n\n /**\n * Handles the internal \"move to previous\" event\n * @private\n */\n\n }, {\n key: 'handlePrevious',\n value: function handlePrevious() {\n this.currentMovePrevented = false;\n\n // Call the bound `onPrevious` handler if available\n var currentStep = this.steps[this.currentStep];\n if (currentStep.options.onPrevious) {\n currentStep.options.onPrevious(this.overlay.highlightedElement);\n }\n\n if (this.currentMovePrevented) {\n return;\n }\n\n this.movePrevious();\n }\n\n /**\n * Moves to the next step if possible\n * otherwise resets the overlay\n * @public\n */\n\n }, {\n key: 'moveNext',\n value: function moveNext() {\n var nextStep = this.steps[this.currentStep + 1];\n if (!nextStep) {\n this.reset();\n return;\n }\n\n this.overlay.highlight(nextStep);\n this.currentStep += 1;\n }\n\n /**\n * @returns {boolean}\n * @public\n */\n\n }, {\n key: 'hasNextStep',\n value: function hasNextStep() {\n return !!this.steps[this.currentStep + 1];\n }\n\n /**\n * @returns {boolean}\n * @public\n */\n\n }, {\n key: 'hasPreviousStep',\n value: function hasPreviousStep() {\n return !!this.steps[this.currentStep - 1];\n }\n\n /**\n * Resets the steps if any and clears the overlay\n * @param {boolean} immediate\n * @public\n */\n\n }, {\n key: 'reset',\n value: function reset() {\n var immediate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.currentStep = 0;\n this.isActivated = false;\n this.overlay.clear(immediate);\n }\n\n /**\n * Checks if there is any highlighted element or not\n * @returns {boolean}\n * @public\n */\n\n }, {\n key: 'hasHighlightedElement',\n value: function hasHighlightedElement() {\n var highlightedElement = this.overlay.getHighlightedElement();\n return highlightedElement && highlightedElement.node;\n }\n\n /**\n * Gets the currently highlighted element in overlay\n * @returns {Element}\n * @public\n */\n\n }, {\n key: 'getHighlightedElement',\n value: function getHighlightedElement() {\n return this.overlay.getHighlightedElement();\n }\n\n /**\n * Gets the element that was highlighted before currently highlighted element\n * @returns {Element}\n * @public\n */\n\n }, {\n key: 'getLastHighlightedElement',\n value: function getLastHighlightedElement() {\n return this.overlay.getLastHighlightedElement();\n }\n\n /**\n * Defines steps to be highlighted\n * @param {array} steps\n * @public\n */\n\n }, {\n key: 'defineSteps',\n value: function defineSteps(steps) {\n this.steps = [];\n\n for (var counter = 0; counter < steps.length; counter++) {\n var element = this.prepareElementFromStep(steps[counter], steps, counter);\n if (!element) {\n continue;\n }\n\n this.steps.push(element);\n }\n }\n\n /**\n * Prepares the step received from the user and returns an instance\n * of Element\n *\n * @param currentStep Step that is being prepared\n * @param allSteps List of all the steps\n * @param index Index of the current step\n * @returns {null|Element}\n * @private\n */\n\n }, {\n key: 'prepareElementFromStep',\n value: function prepareElementFromStep(currentStep) {\n var allSteps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n var elementOptions = {};\n var querySelector = currentStep;\n\n // If the `currentStep` is step definition\n // then grab the options and element from the definition\n var isStepDefinition = typeof currentStep !== 'string' && !(0, _utils.isDomElement)(currentStep);\n\n if (!currentStep || isStepDefinition && !currentStep.element) {\n throw new Error('Element is required in step ' + index);\n }\n\n if (isStepDefinition) {\n querySelector = currentStep.element;\n elementOptions = _extends({}, this.options, currentStep);\n }\n\n // If the given element is a query selector or a DOM element?\n var domElement = (0, _utils.isDomElement)(querySelector) ? querySelector : this.document.querySelector(querySelector);\n if (!domElement) {\n console.warn('Element to highlight ' + querySelector + ' not found');\n return null;\n }\n\n var popover = null;\n if (elementOptions.popover && elementOptions.popover.title) {\n var popoverOptions = _extends({}, this.options, elementOptions.popover, {\n totalCount: allSteps.length,\n currentIndex: index,\n isFirst: index === 0,\n isLast: index === allSteps.length - 1\n });\n\n popover = new _popover2.default(popoverOptions, this.window, this.document);\n }\n\n var stageOptions = _extends({}, this.options, elementOptions);\n\n var stage = new _stage2.default(stageOptions, this.window, this.document);\n\n return new _element2.default({\n node: domElement,\n options: elementOptions,\n popover: popover,\n stage: stage,\n overlay: this.overlay,\n window: this.window,\n document: this.document\n });\n }\n\n /**\n * Initiates highlighting steps from first step\n * @param {number} index at which highlight is to be started\n * @public\n */\n\n }, {\n key: 'start',\n value: function start() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (!this.steps || this.steps.length === 0) {\n throw new Error('There are no steps defined to iterate');\n }\n\n this.isActivated = true;\n\n this.currentStep = index;\n this.overlay.highlight(this.steps[index]);\n }\n\n /**\n * Highlights the given element\n * @param {string|{element: string, popover: {}}} selector Query selector or a step definition\n * @public\n */\n\n }, {\n key: 'highlight',\n value: function highlight(selector) {\n this.isActivated = true;\n\n var element = this.prepareElementFromStep(selector);\n if (!element) {\n return;\n }\n\n this.overlay.highlight(element);\n }\n }]);\n\n return Driver;\n}();\n\nexports.default = Driver;\nmodule.exports = exports['default'];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiOS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL0RyaXZlci9zcmMvaW5kZXguanM/MTJkNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgT3ZlcmxheSBmcm9tICcuL2NvcmUvb3ZlcmxheSc7XG5pbXBvcnQgRWxlbWVudCBmcm9tICcuL2NvcmUvZWxlbWVudCc7XG5pbXBvcnQgUG9wb3ZlciBmcm9tICcuL2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQge1xuICBDTEFTU19DTE9TRV9CVE4sXG4gIENMQVNTX05FWFRfU1RFUF9CVE4sXG4gIENMQVNTX1BSRVZfU1RFUF9CVE4sXG4gIEVTQ19LRVlfQ09ERSxcbiAgSURfUE9QT1ZFUixcbiAgTEVGVF9LRVlfQ09ERSxcbiAgT1ZFUkxBWV9PUEFDSVRZLFxuICBPVkVSTEFZX1BBRERJTkcsXG4gIFJJR0hUX0tFWV9DT0RFLFxuICBTSE9VTERfQU5JTUFURV9PVkVSTEFZLFxuICBTSE9VTERfT1VUU0lERV9DTElDS19DTE9TRSxcbiAgU0hPVUxEX09VVFNJREVfQ0xJQ0tfTkVYVCxcbiAgQUxMT1dfS0VZQk9BUkRfQ09OVFJPTCxcbn0gZnJvbSAnLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCBTdGFnZSBmcm9tICcuL2NvcmUvc3RhZ2UnO1xuaW1wb3J0IHsgaXNEb21FbGVtZW50IH0gZnJvbSAnLi9jb21tb24vdXRpbHMnO1xuXG4vKipcbiAqIFBsdWdpbiBjbGFzcyB0aGF0IGRyaXZlcyB0aGUgcGx1Z2luXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyaXZlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgYW5pbWF0ZTogU0hPVUxEX0FOSU1BVEVfT1ZFUkxBWSwgLy8gV2hldGhlciB0byBhbmltYXRlIG9yIG5vdFxuICAgICAgb3BhY2l0eTogT1ZFUkxBWV9PUEFDSVRZLCAgICAvLyBPdmVybGF5IG9wYWNpdHlcbiAgICAgIHBhZGRpbmc6IE9WRVJMQVlfUEFERElORywgICAgLy8gU3BhY2luZyBhcm91bmQgdGhlIGVsZW1lbnQgZnJvbSB0aGUgb3ZlcmxheVxuICAgICAgc2Nyb2xsSW50b1ZpZXdPcHRpb25zOiBudWxsLCAvLyBPcHRpb25zIHRvIGJlIHBhc3NlZCB0byBgc2Nyb2xsSW50b1ZpZXdgXG4gICAgICBhbGxvd0Nsb3NlOiBTSE9VTERfT1VUU0lERV9DTElDS19DTE9TRSwgICAgICAvLyBXaGV0aGVyIHRvIGNsb3NlIG92ZXJsYXkgb24gY2xpY2sgb3V0c2lkZSB0aGUgZWxlbWVudFxuICAgICAga2V5Ym9hcmRDb250cm9sOiBBTExPV19LRVlCT0FSRF9DT05UUk9MLCAgICAgLy8gV2hldGhlciB0byBhbGxvdyBjb250cm9sbGluZyB0aHJvdWdoIGtleWJvYXJkIG9yIG5vdFxuICAgICAgb3ZlcmxheUNsaWNrTmV4dDogU0hPVUxEX09VVFNJREVfQ0xJQ0tfTkVYVCwgLy8gV2hldGhlciB0byBtb3ZlIG5leHQgb24gY2xpY2sgb3V0c2lkZSB0aGUgZWxlbWVudFxuICAgICAgc3RhZ2VCYWNrZ3JvdW5kOiAnI2ZmZmZmZicsICAgICAgIC8vIEJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBzdGFnZVxuICAgICAgb25IaWdobGlnaHRTdGFydGVkOiAoKSA9PiBudWxsLCAgIC8vIFdoZW4gZWxlbWVudCBpcyBhYm91dCB0byBiZSBoaWdobGlnaHRlZFxuICAgICAgb25IaWdobGlnaHRlZDogKCkgPT4gbnVsbCwgICAgICAgIC8vIFdoZW4gZWxlbWVudCBoYXMgYmVlbiBoaWdobGlnaHRlZFxuICAgICAgb25EZXNlbGVjdGVkOiAoKSA9PiBudWxsLCAgICAgICAgIC8vIFdoZW4gdGhlIGVsZW1lbnQgaGFzIGJlZW4gZGVzZWxlY3RlZFxuICAgICAgb25SZXNldDogKCkgPT4gbnVsbCwgICAgICAgICAgICAgIC8vIFdoZW4gb3ZlcmxheSBpcyBhYm91dCB0byBiZSBjbGVhcmVkXG4gICAgICBvbk5leHQ6ICgpID0+IG51bGwsICAgICAgICAgICAgICAgLy8gV2hlbiBuZXh0IGJ1dHRvbiBpcyBjbGlja2VkXG4gICAgICBvblByZXZpb3VzOiAoKSA9PiBudWxsLCAgICAgICAgICAgLy8gV2hlbiBwcmV2aW91cyBidXR0b24gaXMgY2xpY2tlZFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xuICAgIHRoaXMud2luZG93ID0gd2luZG93O1xuICAgIHRoaXMuaXNBY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnN0ZXBzID0gW107ICAgICAgICAgICAgICAgICAgICAvLyBzdGVwcyB0byBiZSBwcmVzZW50ZWQgaWYgYW55XG4gICAgdGhpcy5jdXJyZW50U3RlcCA9IDA7ICAgICAgICAgICAgICAgLy8gaW5kZXggZm9yIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgc3RlcFxuICAgIHRoaXMuY3VycmVudE1vdmVQcmV2ZW50ZWQgPSBmYWxzZTsgIC8vIElmIHRoZSBjdXJyZW50IG1vdmUgd2FzIHByZXZlbnRlZFxuXG4gICAgdGhpcy5vdmVybGF5ID0gbmV3IE92ZXJsYXkodGhpcy5vcHRpb25zLCB3aW5kb3csIGRvY3VtZW50KTtcblxuICAgIHRoaXMub25SZXNpemUgPSB0aGlzLm9uUmVzaXplLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbktleVVwID0gdGhpcy5vbktleVVwLmJpbmQodGhpcyk7XG4gICAgdGhpcy5vbkNsaWNrID0gdGhpcy5vbkNsaWNrLmJpbmQodGhpcyk7XG4gICAgdGhpcy5tb3ZlTmV4dCA9IHRoaXMubW92ZU5leHQuYmluZCh0aGlzKTtcbiAgICB0aGlzLm1vdmVQcmV2aW91cyA9IHRoaXMubW92ZVByZXZpb3VzLmJpbmQodGhpcyk7XG4gICAgdGhpcy5wcmV2ZW50TW92ZSA9IHRoaXMucHJldmVudE1vdmUuYmluZCh0aGlzKTtcblxuICAgIC8vIEV2ZW50IGJpbmRpbmdzXG4gICAgdGhpcy5iaW5kKCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZHMgYW55IERPTSBldmVudHMgbGlzdGVuZXJzXG4gICAqIEB0b2RvOiBhZGQgdGhyb3R0bGluZyBpbiBhbGwgdGhlIGxpc3RlbmVyc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgYmluZCgpIHtcbiAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uUmVzaXplLCBmYWxzZSk7XG4gICAgdGhpcy53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLm9uS2V5VXAsIGZhbHNlKTtcbiAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMub25DbGljaywgZmFsc2UpO1xuICAgIHRoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uQ2xpY2ssIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBwb3BvdmVyIGlmIGNsaWNrZWQgb3V0c2lkZSB0aGUgaGlnaGxpZ2h0ZWQgZWxlbWVudFxuICAgKiBvciBvdXRzaWRlIHRoZVxuICAgKiBAcGFyYW0gZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgb25DbGljayhlKSB7XG4gICAgaWYgKCF0aGlzLmlzQWN0aXZhdGVkIHx8ICF0aGlzLmhhc0hpZ2hsaWdodGVkRWxlbWVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaGlnaGxpZ2h0ZWRFbGVtZW50ID0gdGhpcy5vdmVybGF5LmdldEhpZ2hsaWdodGVkRWxlbWVudCgpO1xuICAgIGNvbnN0IHBvcG92ZXIgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKElEX1BPUE9WRVIpO1xuXG4gICAgY29uc3QgY2xpY2tlZEhpZ2hsaWdodGVkRWxlbWVudCA9IGhpZ2hsaWdodGVkRWxlbWVudC5ub2RlLmNvbnRhaW5zKGUudGFyZ2V0KTtcbiAgICBjb25zdCBjbGlja2VkUG9wb3ZlciA9IHBvcG92ZXIgJiYgcG9wb3Zlci5jb250YWlucyhlLnRhcmdldCk7XG5cbiAgICBpZiAoIWNsaWNrZWRIaWdobGlnaHRlZEVsZW1lbnQgJiYgIWNsaWNrZWRQb3BvdmVyICYmIHRoaXMub3B0aW9ucy5vdmVybGF5Q2xpY2tOZXh0KSB7XG4gICAgICB0aGlzLmhhbmRsZU5leHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIG92ZXJsYXkgSWYgY2xpY2tlZCBvdXRzaWRlIHRoZSBoaWdobGlnaHRlZCBlbGVtZW50XG4gICAgaWYgKCFjbGlja2VkSGlnaGxpZ2h0ZWRFbGVtZW50ICYmICFjbGlja2VkUG9wb3ZlciAmJiB0aGlzLm9wdGlvbnMuYWxsb3dDbG9zZSkge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRDbGlja2VkID0gZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX05FWFRfU1RFUF9CVE4pO1xuICAgIGNvbnN0IHByZXZDbGlja2VkID0gZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKENMQVNTX1BSRVZfU1RFUF9CVE4pO1xuICAgIGNvbnN0IGNsb3NlQ2xpY2tlZCA9IGUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhDTEFTU19DTE9TRV9CVE4pO1xuXG4gICAgaWYgKGNsb3NlQ2xpY2tlZCkge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChuZXh0Q2xpY2tlZCkge1xuICAgICAgdGhpcy5oYW5kbGVOZXh0KCk7XG4gICAgfSBlbHNlIGlmIChwcmV2Q2xpY2tlZCkge1xuICAgICAgdGhpcy5oYW5kbGVQcmV2aW91cygpO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIEhhbmRsZXIgZm9yIHRoZSBvblJlc2l6ZSBET00gZXZlbnRcbiAgICogTWFrZXMgc3VyZSBoaWdobGlnaHRlZCBlbGVtZW50IHN0YXlzIGF0IHZhbGlkIHBvc2l0aW9uXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBvblJlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMuaXNBY3RpdmF0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm92ZXJsYXkucmVmcmVzaCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgb3ZlcmxheSBvbiBlc2NhcGUga2V5IHByb2Nlc3NcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBvbktleVVwKGV2ZW50KSB7XG4gICAgLy8gSWYgZHJpdmVyIGlzIG5vdCBhY3RpdmUgb3Iga2V5Ym9hcmQgY29udHJvbCBpcyBkaXNhYmxlZFxuICAgIGlmICghdGhpcy5pc0FjdGl2YXRlZCB8fCAhdGhpcy5vcHRpb25zLmtleWJvYXJkQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElmIGVzY2FwZSB3YXMgcHJlc3NlZCBhbmQgaXQgaXMgYWxsb3dlZCB0byBjbGljayBvdXRzaWRlIHRvIGNsb3NlXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEVTQ19LRVlfQ09ERSkge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEFycm93IGtleXMgdG8gb25seSBwZXJmb3JtIGlmIGl0IGlzIHN0ZXBwZWQgaW50cm9kdWN0aW9uXG4gICAgaWYgKHRoaXMuc3RlcHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gUklHSFRfS0VZX0NPREUpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVOZXh0KCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IExFRlRfS0VZX0NPREUpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVQcmV2aW91cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0byB0aGUgcHJldmlvdXMgc3RlcCBpZiBwb3NzaWJsZVxuICAgKiBvdGhlcndpc2UgcmVzZXRzIHRoZSBvdmVybGF5XG4gICAqIEBwdWJsaWNcbiAgICovXG4gIG1vdmVQcmV2aW91cygpIHtcbiAgICBjb25zdCBwcmV2aW91c1N0ZXAgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudFN0ZXAgLSAxXTtcbiAgICBpZiAoIXByZXZpb3VzU3RlcCkge1xuICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3ZlcmxheS5oaWdobGlnaHQocHJldmlvdXNTdGVwKTtcbiAgICB0aGlzLmN1cnJlbnRTdGVwIC09IDE7XG4gIH1cblxuICAvKipcbiAgICogUHJldmVudHMgdGhlIGN1cnJlbnQgbW92ZS4gVXNlZnVsIGluIGBvbk5leHRgIGlmIHlvdSB3YW50IHRvXG4gICAqIHBlcmZvcm0gc29tZSBhc3luY2hyb25vdXMgdGFzayBhbmQgbWFudWFsbHkgbW92ZSB0byBuZXh0IHN0ZXBcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgcHJldmVudE1vdmUoKSB7XG4gICAgdGhpcy5jdXJyZW50TW92ZVByZXZlbnRlZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgaW50ZXJuYWwgXCJtb3ZlIHRvIG5leHRcIiBldmVudFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgaGFuZGxlTmV4dCgpIHtcbiAgICB0aGlzLmN1cnJlbnRNb3ZlUHJldmVudGVkID0gZmFsc2U7XG5cbiAgICAvLyBDYWxsIHRoZSBib3VuZCBgb25OZXh0YCBoYW5kbGVyIGlmIGF2YWlsYWJsZVxuICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5zdGVwc1t0aGlzLmN1cnJlbnRTdGVwXTtcbiAgICBpZiAoY3VycmVudFN0ZXAub3B0aW9ucy5vbk5leHQpIHtcbiAgICAgIGN1cnJlbnRTdGVwLm9wdGlvbnMub25OZXh0KHRoaXMub3ZlcmxheS5oaWdobGlnaHRlZEVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRNb3ZlUHJldmVudGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tb3ZlTmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIGludGVybmFsIFwibW92ZSB0byBwcmV2aW91c1wiIGV2ZW50XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBoYW5kbGVQcmV2aW91cygpIHtcbiAgICB0aGlzLmN1cnJlbnRNb3ZlUHJldmVudGVkID0gZmFsc2U7XG5cbiAgICAvLyBDYWxsIHRoZSBib3VuZCBgb25QcmV2aW91c2AgaGFuZGxlciBpZiBhdmFpbGFibGVcbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuc3RlcHNbdGhpcy5jdXJyZW50U3RlcF07XG4gICAgaWYgKGN1cnJlbnRTdGVwLm9wdGlvbnMub25QcmV2aW91cykge1xuICAgICAgY3VycmVudFN0ZXAub3B0aW9ucy5vblByZXZpb3VzKHRoaXMub3ZlcmxheS5oaWdobGlnaHRlZEVsZW1lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmN1cnJlbnRNb3ZlUHJldmVudGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tb3ZlUHJldmlvdXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlcyB0byB0aGUgbmV4dCBzdGVwIGlmIHBvc3NpYmxlXG4gICAqIG90aGVyd2lzZSByZXNldHMgdGhlIG92ZXJsYXlcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgbW92ZU5leHQoKSB7XG4gICAgY29uc3QgbmV4dFN0ZXAgPSB0aGlzLnN0ZXBzW3RoaXMuY3VycmVudFN0ZXAgKyAxXTtcbiAgICBpZiAoIW5leHRTdGVwKSB7XG4gICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vdmVybGF5LmhpZ2hsaWdodChuZXh0U3RlcCk7XG4gICAgdGhpcy5jdXJyZW50U3RlcCArPSAxO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKiBAcHVibGljXG4gICAqL1xuICBoYXNOZXh0U3RlcCgpIHtcbiAgICByZXR1cm4gISF0aGlzLnN0ZXBzW3RoaXMuY3VycmVudFN0ZXAgKyAxXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgaGFzUHJldmlvdXNTdGVwKCkge1xuICAgIHJldHVybiAhIXRoaXMuc3RlcHNbdGhpcy5jdXJyZW50U3RlcCAtIDFdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgc3RlcHMgaWYgYW55IGFuZCBjbGVhcnMgdGhlIG92ZXJsYXlcbiAgICogQHBhcmFtIHtib29sZWFufSBpbW1lZGlhdGVcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgcmVzZXQoaW1tZWRpYXRlID0gZmFsc2UpIHtcbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gMDtcbiAgICB0aGlzLmlzQWN0aXZhdGVkID0gZmFsc2U7XG4gICAgdGhpcy5vdmVybGF5LmNsZWFyKGltbWVkaWF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZXJlIGlzIGFueSBoaWdobGlnaHRlZCBlbGVtZW50IG9yIG5vdFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICogQHB1YmxpY1xuICAgKi9cbiAgaGFzSGlnaGxpZ2h0ZWRFbGVtZW50KCkge1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkRWxlbWVudCA9IHRoaXMub3ZlcmxheS5nZXRIaWdobGlnaHRlZEVsZW1lbnQoKTtcbiAgICByZXR1cm4gaGlnaGxpZ2h0ZWRFbGVtZW50ICYmIGhpZ2hsaWdodGVkRWxlbWVudC5ub2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBlbGVtZW50IGluIG92ZXJsYXlcbiAgICogQHJldHVybnMge0VsZW1lbnR9XG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGdldEhpZ2hsaWdodGVkRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmdldEhpZ2hsaWdodGVkRWxlbWVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVsZW1lbnQgdGhhdCB3YXMgaGlnaGxpZ2h0ZWQgYmVmb3JlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBlbGVtZW50XG4gICAqIEByZXR1cm5zIHtFbGVtZW50fVxuICAgKiBAcHVibGljXG4gICAqL1xuICBnZXRMYXN0SGlnaGxpZ2h0ZWRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuZ2V0TGFzdEhpZ2hsaWdodGVkRWxlbWVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgc3RlcHMgdG8gYmUgaGlnaGxpZ2h0ZWRcbiAgICogQHBhcmFtIHthcnJheX0gc3RlcHNcbiAgICogQHB1YmxpY1xuICAgKi9cbiAgZGVmaW5lU3RlcHMoc3RlcHMpIHtcbiAgICB0aGlzLnN0ZXBzID0gW107XG5cbiAgICBmb3IgKGxldCBjb3VudGVyID0gMDsgY291bnRlciA8IHN0ZXBzLmxlbmd0aDsgY291bnRlcisrKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5wcmVwYXJlRWxlbWVudEZyb21TdGVwKHN0ZXBzW2NvdW50ZXJdLCBzdGVwcywgY291bnRlcik7XG4gICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RlcHMucHVzaChlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZXMgdGhlIHN0ZXAgcmVjZWl2ZWQgZnJvbSB0aGUgdXNlciBhbmQgcmV0dXJucyBhbiBpbnN0YW5jZVxuICAgKiBvZiBFbGVtZW50XG4gICAqXG4gICAqIEBwYXJhbSBjdXJyZW50U3RlcCBTdGVwIHRoYXQgaXMgYmVpbmcgcHJlcGFyZWRcbiAgICogQHBhcmFtIGFsbFN0ZXBzICBMaXN0IG9mIGFsbCB0aGUgc3RlcHNcbiAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSBjdXJyZW50IHN0ZXBcbiAgICogQHJldHVybnMge251bGx8RWxlbWVudH1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByZXBhcmVFbGVtZW50RnJvbVN0ZXAoY3VycmVudFN0ZXAsIGFsbFN0ZXBzID0gW10sIGluZGV4ID0gMCkge1xuICAgIGxldCBlbGVtZW50T3B0aW9ucyA9IHt9O1xuICAgIGxldCBxdWVyeVNlbGVjdG9yID0gY3VycmVudFN0ZXA7XG5cbiAgICAvLyBJZiB0aGUgYGN1cnJlbnRTdGVwYCBpcyBzdGVwIGRlZmluaXRpb25cbiAgICAvLyB0aGVuIGdyYWIgdGhlIG9wdGlvbnMgYW5kIGVsZW1lbnQgZnJvbSB0aGUgZGVmaW5pdGlvblxuICAgIGNvbnN0IGlzU3RlcERlZmluaXRpb24gPSB0eXBlb2YgY3VycmVudFN0ZXAgIT09ICdzdHJpbmcnICYmICFpc0RvbUVsZW1lbnQoY3VycmVudFN0ZXApO1xuXG4gICAgaWYgKCFjdXJyZW50U3RlcCB8fCAoaXNTdGVwRGVmaW5pdGlvbiAmJiAhY3VycmVudFN0ZXAuZWxlbWVudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRWxlbWVudCBpcyByZXF1aXJlZCBpbiBzdGVwICR7aW5kZXh9YCk7XG4gICAgfVxuXG4gICAgaWYgKGlzU3RlcERlZmluaXRpb24pIHtcbiAgICAgIHF1ZXJ5U2VsZWN0b3IgPSBjdXJyZW50U3RlcC5lbGVtZW50O1xuICAgICAgZWxlbWVudE9wdGlvbnMgPSB7IC4uLnRoaXMub3B0aW9ucywgLi4uY3VycmVudFN0ZXAgfTtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBhIHF1ZXJ5IHNlbGVjdG9yIG9yIGEgRE9NIGVsZW1lbnQ/XG4gICAgY29uc3QgZG9tRWxlbWVudCA9IGlzRG9tRWxlbWVudChxdWVyeVNlbGVjdG9yKSA/IHF1ZXJ5U2VsZWN0b3IgOiB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocXVlcnlTZWxlY3Rvcik7XG4gICAgaWYgKCFkb21FbGVtZW50KSB7XG4gICAgICBjb25zb2xlLndhcm4oYEVsZW1lbnQgdG8gaGlnaGxpZ2h0ICR7cXVlcnlTZWxlY3Rvcn0gbm90IGZvdW5kYCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgcG9wb3ZlciA9IG51bGw7XG4gICAgaWYgKGVsZW1lbnRPcHRpb25zLnBvcG92ZXIgJiYgZWxlbWVudE9wdGlvbnMucG9wb3Zlci50aXRsZSkge1xuICAgICAgY29uc3QgcG9wb3Zlck9wdGlvbnMgPSB7XG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgICAgLi4uZWxlbWVudE9wdGlvbnMucG9wb3ZlcixcbiAgICAgICAgdG90YWxDb3VudDogYWxsU3RlcHMubGVuZ3RoLFxuICAgICAgICBjdXJyZW50SW5kZXg6IGluZGV4LFxuICAgICAgICBpc0ZpcnN0OiBpbmRleCA9PT0gMCxcbiAgICAgICAgaXNMYXN0OiBpbmRleCA9PT0gYWxsU3RlcHMubGVuZ3RoIC0gMSxcbiAgICAgIH07XG5cbiAgICAgIHBvcG92ZXIgPSBuZXcgUG9wb3Zlcihwb3BvdmVyT3B0aW9ucywgdGhpcy53aW5kb3csIHRoaXMuZG9jdW1lbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YWdlT3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIC4uLmVsZW1lbnRPcHRpb25zLFxuICAgIH07XG5cbiAgICBjb25zdCBzdGFnZSA9IG5ldyBTdGFnZShzdGFnZU9wdGlvbnMsIHRoaXMud2luZG93LCB0aGlzLmRvY3VtZW50KTtcblxuICAgIHJldHVybiBuZXcgRWxlbWVudCh7XG4gICAgICBub2RlOiBkb21FbGVtZW50LFxuICAgICAgb3B0aW9uczogZWxlbWVudE9wdGlvbnMsXG4gICAgICBwb3BvdmVyLFxuICAgICAgc3RhZ2UsXG4gICAgICBvdmVybGF5OiB0aGlzLm92ZXJsYXksXG4gICAgICB3aW5kb3c6IHRoaXMud2luZG93LFxuICAgICAgZG9jdW1lbnQ6IHRoaXMuZG9jdW1lbnQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGhpZ2hsaWdodGluZyBzdGVwcyBmcm9tIGZpcnN0IHN0ZXBcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IGF0IHdoaWNoIGhpZ2hsaWdodCBpcyB0byBiZSBzdGFydGVkXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIHN0YXJ0KGluZGV4ID0gMCkge1xuICAgIGlmICghdGhpcy5zdGVwcyB8fCB0aGlzLnN0ZXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBhcmUgbm8gc3RlcHMgZGVmaW5lZCB0byBpdGVyYXRlJyk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0FjdGl2YXRlZCA9IHRydWU7XG5cbiAgICB0aGlzLmN1cnJlbnRTdGVwID0gaW5kZXg7XG4gICAgdGhpcy5vdmVybGF5LmhpZ2hsaWdodCh0aGlzLnN0ZXBzW2luZGV4XSk7XG4gIH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyB0aGUgZ2l2ZW4gZWxlbWVudFxuICAgKiBAcGFyYW0ge3N0cmluZ3x7ZWxlbWVudDogc3RyaW5nLCBwb3BvdmVyOiB7fX19IHNlbGVjdG9yIFF1ZXJ5IHNlbGVjdG9yIG9yIGEgc3RlcCBkZWZpbml0aW9uXG4gICAqIEBwdWJsaWNcbiAgICovXG4gIGhpZ2hsaWdodChzZWxlY3Rvcikge1xuICAgIHRoaXMuaXNBY3RpdmF0ZWQgPSB0cnVlO1xuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMucHJlcGFyZUVsZW1lbnRGcm9tU3RlcChzZWxlY3Rvcik7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5vdmVybGF5LmhpZ2hsaWdodChlbGVtZW50KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTs7O0FBQUE7QUFDQTtBQWNBO0FBQ0E7OztBQUFBO0FBQ0E7Ozs7O0FBQ0E7OztBQUdBO0FBQ0E7OztBQUdBO0FBQUE7QUFDQTtBQURBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQVVBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFDQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBU0E7QUFDQTtBQUNBOzs7Ozs7OztBQUtBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQXRZQTtBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///9\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\n/* eslint-disable */\ndocument.addEventListener('DOMContentLoaded', function () {\n\n var tourSteps = [{\n element: document.getElementById('driver-demo-head'),\n popover: {\n title: 'Before we start',\n description: 'This is just one use-case, make sure to check out the rest of the docs below.',\n nextBtnText: 'Okay, Start!'\n }\n }, {\n element: '#logo_emoji',\n popover: {\n title: 'Focus Anything',\n description: 'You can use it to highlight literally anything, images, text, div, span, li etc.',\n position: 'bottom'\n }\n }, {\n element: '#name_driver',\n popover: {\n title: 'Why Driver?',\n description: 'Because it lets you drive the user across the page',\n position: 'bottom'\n }\n }, {\n element: '#driver-demo-head',\n popover: {\n title: 'Let\\'s talk features',\n description: 'You may leave your mouse and use the arrow keys to move next and back or escape key anytime to close this',\n position: 'bottom'\n }\n }, {\n element: '#highlight_feature',\n popover: {\n title: 'Highlight Feature',\n description: 'You may use it to highlight single elements (with or without popover) e.g. like facebook does while creating posts'\n }\n }, {\n element: '#feature_introductions_feature',\n popover: {\n title: 'Feature Introductions',\n description: 'With it\\'s powerful API you can use it to make programmatic or user driven feature introductions',\n position: 'bottom'\n }\n }, {\n element: '#focus_shifters_feature',\n popover: {\n title: 'Focus Shifters',\n description: 'If some element or part of the page needs user\\'s interaction, you can just call the highlight method. Driver will take care of driving the user there',\n position: 'bottom'\n }\n }, {\n element: '#customizable_feature',\n popover: {\n title: 'Highly Customizable',\n description: 'Driver has a powerful API allowing you to customize the experience as much as you can.',\n position: 'bottom'\n }\n }, {\n element: '#keyboard_feature',\n popover: {\n title: 'User Friendly',\n description: 'Your users can control it with the arrow keys on keyboard, or escape to close it',\n position: 'bottom'\n }\n }, {\n element: '#free_use_feature',\n popover: {\n title: 'MIT License',\n description: 'I believe in open-source and thus Driver is completely free for both personal or commercial use'\n }\n }, {\n element: '#lightweight_feature',\n popover: {\n title: 'Only ~4KB',\n description: 'Driver is free of bloat and written in Vanilla JS. There is no external dependency at all, thus keeping it smaller in size.'\n }\n }, {\n element: '#examples_section',\n popover: {\n title: 'Usage Examples',\n description: 'Have a look at the usage examples and see how you can use it.'\n }\n }, {\n element: '#driver-demo-head',\n popover: {\n title: 'Quick Tour Ends',\n description: 'This was just a sneak peak, have a look at the API section and examples to learn more!'\n }\n }];\n\n var animatedTourDriver = new Driver({\n animate: true,\n opacity: 0.8,\n padding: 5,\n showButtons: true\n });\n\n var boringTourDriver = new Driver({\n animate: false,\n opacity: 0.8,\n padding: 5,\n showButtons: true\n });\n\n boringTourDriver.defineSteps(tourSteps);\n animatedTourDriver.defineSteps(tourSteps);\n\n document.querySelector('#animated-tour').addEventListener('click', function () {\n if (boringTourDriver.isActivated) {\n boringTourDriver.reset(true);\n }\n\n animatedTourDriver.start();\n });\n\n document.querySelector('#boring-tour').addEventListener('click', function () {\n if (animatedTourDriver.isActivated) {\n animatedTourDriver.reset(true);\n }\n\n boringTourDriver.start();\n });\n\n document.querySelectorAll('pre code').forEach(function (element) {\n hljs.highlightBlock(element);\n });\n\n /////////////////////////////////////////////\n // First example – highlighting without popover\n /////////////////////////////////////////////\n var singleDriverNoPopover = new Driver();\n document.querySelector('#run-single-element-no-popover').addEventListener('click', function (e) {\n e.preventDefault();\n singleDriverNoPopover.highlight('#single-element-no-popover');\n });\n\n /////////////////////////////////////////////\n // Form focus examples\n /////////////////////////////////////////////\n var focusDriver = new Driver({ padding: 0 });\n var inputIds = ['creation-input', 'creation-input-2', 'creation-input-3', 'creation-input-4'];\n inputIds.forEach(function (inputId) {\n // Highlight the section on focus\n document.getElementById(inputId).addEventListener('focus', function () {\n focusDriver.highlight('#' + inputId);\n });\n });\n\n /////////////////////////////////////////////\n // Highlighting single element with popover\n /////////////////////////////////////////////\n var singleDriverWithPopover = new Driver();\n document.querySelector('#run-single-element-with-popover').addEventListener('click', function (e) {\n e.preventDefault();\n singleDriverWithPopover.highlight({\n element: '#single-element-with-popover',\n popover: {\n title: 'Did you know?',\n description: 'You can add HTML in title or description also!',\n position: 'top'\n }\n });\n });\n\n /////////////////////////////////////////////////////\n // Highlighting single element with popover position\n /////////////////////////////////////////////////////\n var singleDriverWithPopoverPosition = new Driver();\n document.querySelector('#run-single-element-with-popover-position').addEventListener('click', function (e) {\n e.preventDefault();\n\n singleDriverWithPopoverPosition.highlight({\n element: '#single-element-with-popover-position',\n popover: {\n title: 'Did you know?',\n description: 'You can add HTML in title or description also!',\n position: 'top'\n }\n });\n });\n\n /////////////////////////////////////////////////////\n // Highlighting single element with popover position\n /////////////////////////////////////////////////////\n var positionBtnsDriver = new Driver({\n padding: 0\n });\n\n document.querySelector('#position-btn-left').addEventListener('click', function (e) {\n e.preventDefault();\n\n positionBtnsDriver.highlight({\n element: '#position-btn-left',\n popover: {\n title: 'Did you know?',\n description: 'You can add HTML in title or description also!',\n position: 'left'\n }\n });\n });\n\n document.querySelector('#position-btn-right').addEventListener('click', function (e) {\n e.preventDefault();\n\n positionBtnsDriver.highlight({\n element: '#position-btn-right',\n popover: {\n title: 'Did you know?',\n description: 'You can add HTML in title or description also!',\n position: 'right'\n }\n });\n });\n\n document.querySelector('#position-btn-bottom').addEventListener('click', function (e) {\n e.preventDefault();\n\n positionBtnsDriver.highlight({\n element: '#position-btn-bottom',\n popover: {\n title: 'Did you know?',\n description: 'You can add HTML in title or description also!',\n position: 'bottom'\n }\n });\n });\n\n document.querySelector('#position-btn-top').addEventListener('click', function (e) {\n e.preventDefault();\n\n positionBtnsDriver.highlight({\n element: '#position-btn-top',\n popover: {\n title: 'Did you know?',\n description: 'You can add HTML in title or description also!',\n position: 'top'\n }\n });\n });\n\n /////////////////////////////////////////////////////\n // Highlighting single element with popover position\n /////////////////////////////////////////////////////\n var htmlDriver = new Driver();\n\n document.querySelector('#run-single-element-with-popover-html').addEventListener('click', function (e) {\n e.preventDefault();\n\n htmlDriver.highlight({\n element: '#single-element-with-popover-html',\n popover: {\n title: 'Tags in title or body',\n description: 'Body can also have html tags!',\n position: 'top'\n }\n });\n });\n\n /////////////////////////////////////////////////////\n // Without Overlay Example\n /////////////////////////////////////////////////////\n var withoutOverlay = new Driver({\n opacity: 0,\n padding: 0\n });\n\n document.querySelector('#run-element-without-popover').addEventListener('click', function (e) {\n e.preventDefault();\n\n withoutOverlay.highlight({\n element: '#run-element-without-popover',\n popover: {\n title: 'Title for the Popover',\n description: 'Description for it',\n position: 'top' // can be `top`, `left`, `right`, `bottom`\n }\n });\n });\n\n /////////////////////////////////////////////\n // Single no close demo\n /////////////////////////////////////////////\n var singleNoClose = new Driver({\n allowClose: false,\n position: 'top'\n });\n\n singleNoClose.defineSteps([{\n element: '#single-element-no-close',\n popover: {\n title: 'Uh-huh!',\n description: 'You cannot close by clicking outside'\n }\n }, {\n element: '#third-element-introduction',\n popover: {\n title: 'Title on Popover',\n description: 'Body of the popover',\n position: 'top'\n }\n }]);\n\n document.querySelector('#run-single-element-no-close').addEventListener('click', function (e) {\n e.preventDefault();\n singleNoClose.start();\n });\n\n /////////////////////////////////////////////////////\n // Highlighting single element with popover position\n /////////////////////////////////////////////////////\n var featureIntroductionDriver = new Driver();\n featureIntroductionDriver.defineSteps([{\n element: '#first-element-introduction',\n popover: {\n title: 'Title on Popover',\n description: 'Body of the popover',\n position: 'top'\n }\n }, {\n element: '#second-para-feature-introductions',\n popover: {\n title: 'Title on Popover',\n description: 'Body of the popover',\n position: 'bottom'\n }\n }, {\n element: '#third-para-feature-introductions',\n popover: {\n title: 'Title on Popover',\n description: 'Body of the popover',\n position: 'top'\n }\n }, {\n element: '#run-multi-element-popovers',\n popover: {\n title: 'Title on Popover',\n description: 'Body of the popover',\n position: 'top'\n }\n }, {\n element: '#third-element-introduction',\n popover: {\n title: 'Title on Popover',\n description: 'Body of the popover',\n position: 'top'\n }\n }]);\n\n document.querySelector('#run-multi-element-popovers').addEventListener('click', function (e) {\n e.preventDefault();\n e.stopPropagation();\n featureIntroductionDriver.start();\n });\n\n var newURL = location.href.split('?')[0];\n if (newURL !== location.href) {\n window.location = newURL;\n window.location.href = newURL;\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvZGVtby9zY3JpcHRzL2RlbW8uanM/ZDM3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uICgpIHtcblxuICBjb25zdCB0b3VyU3RlcHMgPSBbXG4gICAge1xuICAgICAgZWxlbWVudDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RyaXZlci1kZW1vLWhlYWQnKSxcbiAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgdGl0bGU6ICdCZWZvcmUgd2Ugc3RhcnQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMganVzdCBvbmUgdXNlLWNhc2UsIG1ha2Ugc3VyZSB0byBjaGVjayBvdXQgdGhlIHJlc3Qgb2YgdGhlIGRvY3MgYmVsb3cuJyxcbiAgICAgICAgbmV4dEJ0blRleHQ6ICdPa2F5LCBTdGFydCEnXG4gICAgICB9LFxuICAgIH0sIHtcbiAgICAgIGVsZW1lbnQ6ICcjbG9nb19lbW9qaScsXG4gICAgICBwb3BvdmVyOiB7XG4gICAgICAgIHRpdGxlOiAnRm9jdXMgQW55dGhpbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1lvdSBjYW4gdXNlIGl0IHRvIGhpZ2hsaWdodCBsaXRlcmFsbHkgYW55dGhpbmcsIGltYWdlcywgdGV4dCwgZGl2LCBzcGFuLCBsaSBldGMuJyxcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20nXG4gICAgICB9LFxuICAgIH0sIHtcbiAgICAgIGVsZW1lbnQ6ICcjbmFtZV9kcml2ZXInLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ1doeSBEcml2ZXI/JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdCZWNhdXNlIGl0IGxldHMgeW91IGRyaXZlIHRoZSB1c2VyIGFjcm9zcyB0aGUgcGFnZScsXG4gICAgICAgIHBvc2l0aW9uOiAnYm90dG9tJ1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGVsZW1lbnQ6ICcjZHJpdmVyLWRlbW8taGVhZCcsXG4gICAgICBwb3BvdmVyOiB7XG4gICAgICAgIHRpdGxlOiAnTGV0XFwncyB0YWxrIGZlYXR1cmVzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdZb3UgbWF5IGxlYXZlIHlvdXIgbW91c2UgYW5kIHVzZSB0aGUgPHN0cm9uZz5hcnJvdyBrZXlzPC9zdHJvbmc+IHRvIG1vdmUgbmV4dCBhbmQgYmFjayBvciA8c3Ryb25nPmVzY2FwZSBrZXk8L3N0cm9uZz4gYW55dGltZSB0byBjbG9zZSB0aGlzJyxcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20nXG4gICAgICB9XG4gICAgfSwge1xuICAgICAgZWxlbWVudDogJyNoaWdobGlnaHRfZmVhdHVyZScsXG4gICAgICBwb3BvdmVyOiB7XG4gICAgICAgIHRpdGxlOiAnSGlnaGxpZ2h0IEZlYXR1cmUnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1lvdSBtYXkgdXNlIGl0IHRvIGhpZ2hsaWdodCBzaW5nbGUgZWxlbWVudHMgKHdpdGggb3Igd2l0aG91dCBwb3BvdmVyKSBlLmcuIGxpa2UgZmFjZWJvb2sgZG9lcyB3aGlsZSBjcmVhdGluZyBwb3N0cydcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBlbGVtZW50OiAnI2ZlYXR1cmVfaW50cm9kdWN0aW9uc19mZWF0dXJlJyxcbiAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgdGl0bGU6ICdGZWF0dXJlIEludHJvZHVjdGlvbnMnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1dpdGggaXRcXCdzIHBvd2VyZnVsIEFQSSB5b3UgY2FuIHVzZSBpdCB0byBtYWtlIHByb2dyYW1tYXRpYyBvciB1c2VyIGRyaXZlbiBmZWF0dXJlIGludHJvZHVjdGlvbnMnLFxuICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbSdcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBlbGVtZW50OiAnI2ZvY3VzX3NoaWZ0ZXJzX2ZlYXR1cmUnLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ0ZvY3VzIFNoaWZ0ZXJzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdJZiBzb21lIGVsZW1lbnQgb3IgcGFydCBvZiB0aGUgcGFnZSBuZWVkcyB1c2VyXFwncyBpbnRlcmFjdGlvbiwgeW91IGNhbiBqdXN0IGNhbGwgdGhlIGhpZ2hsaWdodCBtZXRob2QuIERyaXZlciB3aWxsIHRha2UgY2FyZSBvZiBkcml2aW5nIHRoZSB1c2VyIHRoZXJlJyxcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20nXG4gICAgICB9XG4gICAgfSwge1xuICAgICAgZWxlbWVudDogJyNjdXN0b21pemFibGVfZmVhdHVyZScsXG4gICAgICBwb3BvdmVyOiB7XG4gICAgICAgIHRpdGxlOiAnSGlnaGx5IEN1c3RvbWl6YWJsZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRHJpdmVyIGhhcyBhIHBvd2VyZnVsIEFQSSBhbGxvd2luZyB5b3UgdG8gY3VzdG9taXplIHRoZSBleHBlcmllbmNlIGFzIG11Y2ggYXMgeW91IGNhbi4nLFxuICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbSdcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBlbGVtZW50OiAnI2tleWJvYXJkX2ZlYXR1cmUnLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ1VzZXIgRnJpZW5kbHknLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1lvdXIgdXNlcnMgY2FuIGNvbnRyb2wgaXQgd2l0aCB0aGUgYXJyb3cga2V5cyBvbiBrZXlib2FyZCwgb3IgZXNjYXBlIHRvIGNsb3NlIGl0JyxcbiAgICAgICAgcG9zaXRpb246ICdib3R0b20nXG4gICAgICB9XG4gICAgfSwge1xuICAgICAgZWxlbWVudDogJyNmcmVlX3VzZV9mZWF0dXJlJyxcbiAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgdGl0bGU6ICdNSVQgTGljZW5zZScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnSSBiZWxpZXZlIGluIG9wZW4tc291cmNlIGFuZCB0aHVzIERyaXZlciBpcyBjb21wbGV0ZWx5IGZyZWUgZm9yIGJvdGggcGVyc29uYWwgb3IgY29tbWVyY2lhbCB1c2UnXG4gICAgICB9XG4gICAgfSwge1xuICAgICAgZWxlbWVudDogJyNsaWdodHdlaWdodF9mZWF0dXJlJyxcbiAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgdGl0bGU6ICdPbmx5IH40S0InLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0RyaXZlciBpcyBmcmVlIG9mIGJsb2F0IGFuZCB3cml0dGVuIGluIFZhbmlsbGEgSlMuIFRoZXJlIGlzIG5vIGV4dGVybmFsIGRlcGVuZGVuY3kgYXQgYWxsLCB0aHVzIGtlZXBpbmcgaXQgc21hbGxlciBpbiBzaXplLidcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICBlbGVtZW50OiAnI2V4YW1wbGVzX3NlY3Rpb24nLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ1VzYWdlIEV4YW1wbGVzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdIYXZlIGEgbG9vayBhdCB0aGUgdXNhZ2UgZXhhbXBsZXMgYW5kIHNlZSBob3cgeW91IGNhbiB1c2UgaXQuJ1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGVsZW1lbnQ6ICcjZHJpdmVyLWRlbW8taGVhZCcsXG4gICAgICBwb3BvdmVyOiB7XG4gICAgICAgIHRpdGxlOiAnUXVpY2sgVG91ciBFbmRzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGlzIHdhcyBqdXN0IGEgc25lYWsgcGVhaywgaGF2ZSBhIGxvb2sgYXQgdGhlIEFQSSBzZWN0aW9uIGFuZCBleGFtcGxlcyB0byBsZWFybiBtb3JlISdcbiAgICAgIH1cbiAgICB9XG4gIF07XG5cbiAgY29uc3QgYW5pbWF0ZWRUb3VyRHJpdmVyID0gbmV3IERyaXZlcih7XG4gICAgYW5pbWF0ZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAwLjgsXG4gICAgcGFkZGluZzogNSxcbiAgICBzaG93QnV0dG9uczogdHJ1ZSxcbiAgfSk7XG5cbiAgY29uc3QgYm9yaW5nVG91ckRyaXZlciA9IG5ldyBEcml2ZXIoe1xuICAgIGFuaW1hdGU6IGZhbHNlLFxuICAgIG9wYWNpdHk6IDAuOCxcbiAgICBwYWRkaW5nOiA1LFxuICAgIHNob3dCdXR0b25zOiB0cnVlXG4gIH0pO1xuXG4gIGJvcmluZ1RvdXJEcml2ZXIuZGVmaW5lU3RlcHModG91clN0ZXBzKTtcbiAgYW5pbWF0ZWRUb3VyRHJpdmVyLmRlZmluZVN0ZXBzKHRvdXJTdGVwcyk7XG5cbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2FuaW1hdGVkLXRvdXInKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGlmIChib3JpbmdUb3VyRHJpdmVyLmlzQWN0aXZhdGVkKSB7XG4gICAgICAgIGJvcmluZ1RvdXJEcml2ZXIucmVzZXQodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIGFuaW1hdGVkVG91ckRyaXZlci5zdGFydCgpO1xuICAgIH0pO1xuXG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNib3JpbmctdG91cicpXG4gICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgaWYgKGFuaW1hdGVkVG91ckRyaXZlci5pc0FjdGl2YXRlZCkge1xuICAgICAgICBhbmltYXRlZFRvdXJEcml2ZXIucmVzZXQodHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIGJvcmluZ1RvdXJEcml2ZXIuc3RhcnQoKTtcbiAgICB9KTtcblxuXG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3ByZSBjb2RlJykuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgIGhsanMuaGlnaGxpZ2h0QmxvY2soZWxlbWVudCk7XG4gIH0pO1xuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gRmlyc3QgZXhhbXBsZSDigJMgaGlnaGxpZ2h0aW5nIHdpdGhvdXQgcG9wb3ZlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIGNvbnN0IHNpbmdsZURyaXZlck5vUG9wb3ZlciA9IG5ldyBEcml2ZXIoKTtcbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3J1bi1zaW5nbGUtZWxlbWVudC1uby1wb3BvdmVyJylcbiAgICAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2luZ2xlRHJpdmVyTm9Qb3BvdmVyLmhpZ2hsaWdodCgnI3NpbmdsZS1lbGVtZW50LW5vLXBvcG92ZXInKTtcbiAgICB9KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBGb3JtIGZvY3VzIGV4YW1wbGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgY29uc3QgZm9jdXNEcml2ZXIgPSBuZXcgRHJpdmVyKHsgcGFkZGluZzogMCB9KTtcbiAgY29uc3QgaW5wdXRJZHMgPSBbJ2NyZWF0aW9uLWlucHV0JywgJ2NyZWF0aW9uLWlucHV0LTInLCAnY3JlYXRpb24taW5wdXQtMycsICdjcmVhdGlvbi1pbnB1dC00J107XG4gIGlucHV0SWRzLmZvckVhY2goaW5wdXRJZCA9PiB7XG4gICAgLy8gSGlnaGxpZ2h0IHRoZSBzZWN0aW9uIG9uIGZvY3VzXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCkuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB7XG4gICAgICBmb2N1c0RyaXZlci5oaWdobGlnaHQoYCMke2lucHV0SWR9YCk7XG4gICAgfSk7XG4gIH0pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhpZ2hsaWdodGluZyBzaW5nbGUgZWxlbWVudCB3aXRoIHBvcG92ZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBjb25zdCBzaW5nbGVEcml2ZXJXaXRoUG9wb3ZlciA9IG5ldyBEcml2ZXIoKTtcbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3J1bi1zaW5nbGUtZWxlbWVudC13aXRoLXBvcG92ZXInKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBzaW5nbGVEcml2ZXJXaXRoUG9wb3Zlci5oaWdobGlnaHQoe1xuICAgICAgICBlbGVtZW50OiAnI3NpbmdsZS1lbGVtZW50LXdpdGgtcG9wb3ZlcicsXG4gICAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgICB0aXRsZTogJ0RpZCB5b3Uga25vdz8nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnWW91IGNhbiBhZGQgSFRNTCBpbiB0aXRsZSBvciBkZXNjcmlwdGlvbiBhbHNvIScsXG4gICAgICAgICAgcG9zaXRpb246ICd0b3AnXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGlnaGxpZ2h0aW5nIHNpbmdsZSBlbGVtZW50IHdpdGggcG9wb3ZlciBwb3NpdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgY29uc3Qgc2luZ2xlRHJpdmVyV2l0aFBvcG92ZXJQb3NpdGlvbiA9IG5ldyBEcml2ZXIoKTtcbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3J1bi1zaW5nbGUtZWxlbWVudC13aXRoLXBvcG92ZXItcG9zaXRpb24nKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIHNpbmdsZURyaXZlcldpdGhQb3BvdmVyUG9zaXRpb24uaGlnaGxpZ2h0KHtcbiAgICAgICAgZWxlbWVudDogJyNzaW5nbGUtZWxlbWVudC13aXRoLXBvcG92ZXItcG9zaXRpb24nLFxuICAgICAgICBwb3BvdmVyOiB7XG4gICAgICAgICAgdGl0bGU6ICdEaWQgeW91IGtub3c/JyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1lvdSBjYW4gYWRkIEhUTUwgaW4gdGl0bGUgb3IgZGVzY3JpcHRpb24gYWxzbyEnLFxuICAgICAgICAgIHBvc2l0aW9uOiAndG9wJ1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEhpZ2hsaWdodGluZyBzaW5nbGUgZWxlbWVudCB3aXRoIHBvcG92ZXIgcG9zaXRpb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIGNvbnN0IHBvc2l0aW9uQnRuc0RyaXZlciA9IG5ldyBEcml2ZXIoe1xuICAgIHBhZGRpbmc6IDAsXG4gIH0pO1xuXG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwb3NpdGlvbi1idG4tbGVmdCcpXG4gICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgcG9zaXRpb25CdG5zRHJpdmVyLmhpZ2hsaWdodCh7XG4gICAgICAgIGVsZW1lbnQ6ICcjcG9zaXRpb24tYnRuLWxlZnQnLFxuICAgICAgICBwb3BvdmVyOiB7XG4gICAgICAgICAgdGl0bGU6ICdEaWQgeW91IGtub3c/JyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1lvdSBjYW4gYWRkIEhUTUwgaW4gdGl0bGUgb3IgZGVzY3JpcHRpb24gYWxzbyEnLFxuICAgICAgICAgIHBvc2l0aW9uOiAnbGVmdCdcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Bvc2l0aW9uLWJ0bi1yaWdodCcpXG4gICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgcG9zaXRpb25CdG5zRHJpdmVyLmhpZ2hsaWdodCh7XG4gICAgICAgIGVsZW1lbnQ6ICcjcG9zaXRpb24tYnRuLXJpZ2h0JyxcbiAgICAgICAgcG9wb3Zlcjoge1xuICAgICAgICAgIHRpdGxlOiAnRGlkIHlvdSBrbm93PycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdZb3UgY2FuIGFkZCBIVE1MIGluIHRpdGxlIG9yIGRlc2NyaXB0aW9uIGFsc28hJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0J1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcG9zaXRpb24tYnRuLWJvdHRvbScpXG4gICAgLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgcG9zaXRpb25CdG5zRHJpdmVyLmhpZ2hsaWdodCh7XG4gICAgICAgIGVsZW1lbnQ6ICcjcG9zaXRpb24tYnRuLWJvdHRvbScsXG4gICAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgICB0aXRsZTogJ0RpZCB5b3Uga25vdz8nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnWW91IGNhbiBhZGQgSFRNTCBpbiB0aXRsZSBvciBkZXNjcmlwdGlvbiBhbHNvIScsXG4gICAgICAgICAgcG9zaXRpb246ICdib3R0b20nXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwb3NpdGlvbi1idG4tdG9wJylcbiAgICAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBwb3NpdGlvbkJ0bnNEcml2ZXIuaGlnaGxpZ2h0KHtcbiAgICAgICAgZWxlbWVudDogJyNwb3NpdGlvbi1idG4tdG9wJyxcbiAgICAgICAgcG9wb3Zlcjoge1xuICAgICAgICAgIHRpdGxlOiAnRGlkIHlvdSBrbm93PycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdZb3UgY2FuIGFkZCBIVE1MIGluIHRpdGxlIG9yIGRlc2NyaXB0aW9uIGFsc28hJyxcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcCdcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBIaWdobGlnaHRpbmcgc2luZ2xlIGVsZW1lbnQgd2l0aCBwb3BvdmVyIHBvc2l0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBjb25zdCBodG1sRHJpdmVyID0gbmV3IERyaXZlcigpO1xuXG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNydW4tc2luZ2xlLWVsZW1lbnQtd2l0aC1wb3BvdmVyLWh0bWwnKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIGh0bWxEcml2ZXIuaGlnaGxpZ2h0KHtcbiAgICAgICAgZWxlbWVudDogJyNzaW5nbGUtZWxlbWVudC13aXRoLXBvcG92ZXItaHRtbCcsXG4gICAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgICB0aXRsZTogJzxlbT5UYWdzPC9lbT4gaW4gdGl0bGUgb3IgPHU+Ym9keTwvdT4nLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQm9keSBjYW4gYWxzbyBoYXZlIDxzdHJvbmc+aHRtbCB0YWdzPC9zdHJvbmc+IScsXG4gICAgICAgICAgcG9zaXRpb246ICd0b3AnXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV2l0aG91dCBPdmVybGF5IEV4YW1wbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIGNvbnN0IHdpdGhvdXRPdmVybGF5ID0gbmV3IERyaXZlcih7XG4gICAgb3BhY2l0eTogMCxcbiAgICBwYWRkaW5nOiAwXG4gIH0pO1xuXG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNydW4tZWxlbWVudC13aXRob3V0LXBvcG92ZXInKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgIHdpdGhvdXRPdmVybGF5LmhpZ2hsaWdodCh7XG4gICAgICAgIGVsZW1lbnQ6ICcjcnVuLWVsZW1lbnQtd2l0aG91dC1wb3BvdmVyJyxcbiAgICAgICAgcG9wb3Zlcjoge1xuICAgICAgICAgIHRpdGxlOiAnVGl0bGUgZm9yIHRoZSBQb3BvdmVyJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uIGZvciBpdCcsXG4gICAgICAgICAgcG9zaXRpb246ICd0b3AnLCAvLyBjYW4gYmUgYHRvcGAsIGBsZWZ0YCwgYHJpZ2h0YCwgYGJvdHRvbWBcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gU2luZ2xlIG5vIGNsb3NlIGRlbW9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBjb25zdCBzaW5nbGVOb0Nsb3NlID0gbmV3IERyaXZlcih7XG4gICAgYWxsb3dDbG9zZTogZmFsc2UsXG4gICAgcG9zaXRpb246ICd0b3AnXG4gIH0pO1xuXG4gIHNpbmdsZU5vQ2xvc2UuZGVmaW5lU3RlcHMoW3tcbiAgICBlbGVtZW50OiAnI3NpbmdsZS1lbGVtZW50LW5vLWNsb3NlJyxcbiAgICBwb3BvdmVyOiB7XG4gICAgICB0aXRsZTogJ1VoLWh1aCEnLFxuICAgICAgZGVzY3JpcHRpb246ICdZb3UgY2Fubm90IGNsb3NlIGJ5IGNsaWNraW5nIG91dHNpZGUnXG4gICAgfVxuICB9LCB7XG4gICAgZWxlbWVudDogJyN0aGlyZC1lbGVtZW50LWludHJvZHVjdGlvbicsXG4gICAgcG9wb3Zlcjoge1xuICAgICAgdGl0bGU6ICdUaXRsZSBvbiBQb3BvdmVyJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQm9keSBvZiB0aGUgcG9wb3ZlcicsXG4gICAgICBwb3NpdGlvbjogJ3RvcCdcbiAgICB9XG4gIH1dKTtcblxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcnVuLXNpbmdsZS1lbGVtZW50LW5vLWNsb3NlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBzaW5nbGVOb0Nsb3NlLnN0YXJ0KCk7XG4gIH0pO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gSGlnaGxpZ2h0aW5nIHNpbmdsZSBlbGVtZW50IHdpdGggcG9wb3ZlciBwb3NpdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgY29uc3QgZmVhdHVyZUludHJvZHVjdGlvbkRyaXZlciA9IG5ldyBEcml2ZXIoKTtcbiAgZmVhdHVyZUludHJvZHVjdGlvbkRyaXZlci5kZWZpbmVTdGVwcyhbXG4gICAge1xuICAgICAgZWxlbWVudDogJyNmaXJzdC1lbGVtZW50LWludHJvZHVjdGlvbicsXG4gICAgICBwb3BvdmVyOiB7XG4gICAgICAgIHRpdGxlOiAnVGl0bGUgb24gUG9wb3ZlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQm9keSBvZiB0aGUgcG9wb3ZlcicsXG4gICAgICAgIHBvc2l0aW9uOiAndG9wJ1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZWxlbWVudDogJyNzZWNvbmQtcGFyYS1mZWF0dXJlLWludHJvZHVjdGlvbnMnLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ1RpdGxlIG9uIFBvcG92ZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0JvZHkgb2YgdGhlIHBvcG92ZXInLFxuICAgICAgICBwb3NpdGlvbjogJ2JvdHRvbSdcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGVsZW1lbnQ6ICcjdGhpcmQtcGFyYS1mZWF0dXJlLWludHJvZHVjdGlvbnMnLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ1RpdGxlIG9uIFBvcG92ZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0JvZHkgb2YgdGhlIHBvcG92ZXInLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCdcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGVsZW1lbnQ6ICcjcnVuLW11bHRpLWVsZW1lbnQtcG9wb3ZlcnMnLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ1RpdGxlIG9uIFBvcG92ZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0JvZHkgb2YgdGhlIHBvcG92ZXInLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCdcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGVsZW1lbnQ6ICcjdGhpcmQtZWxlbWVudC1pbnRyb2R1Y3Rpb24nLFxuICAgICAgcG9wb3Zlcjoge1xuICAgICAgICB0aXRsZTogJ1RpdGxlIG9uIFBvcG92ZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0JvZHkgb2YgdGhlIHBvcG92ZXInLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCdcbiAgICAgIH1cbiAgICB9LFxuICBdKTtcblxuICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcnVuLW11bHRpLWVsZW1lbnQtcG9wb3ZlcnMnKVxuICAgIC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZmVhdHVyZUludHJvZHVjdGlvbkRyaXZlci5zdGFydCgpO1xuICAgIH0pO1xuXG4gIGNvbnN0IG5ld1VSTCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKVswXTtcbiAgaWYgKG5ld1VSTCAhPT0gbG9jYXRpb24uaHJlZikge1xuICAgIHdpbmRvdy5sb2NhdGlvbiA9IG5ld1VSTDtcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IG5ld1VSTDtcbiAgfVxufSk7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUZBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBRkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFGQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUZBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBRkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUZBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUZBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUZBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUZBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUZBO0FBQ0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBRkE7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUZBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUZBO0FBUUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBRkE7QUFRQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUZBO0FBRkE7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQUNBO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUZBO0FBU0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBRkE7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFGQTtBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUZBO0FBQ0E7QUFTQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///10\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\n// Just for the sake of styling page\n/* eslint-disable */\n\n/**\n * Determine if this browser supports emoji.\n *\n * Modified from https://gist.github.com/mwunsch/4710561\n * and probobly originally github's javascript source\n */\nfunction doesSupportEmoji() {\n var context = void 0;\n if (!document.createElement('canvas').getContext) return;\n context = document.createElement('canvas').getContext('2d');\n if (typeof context.fillText !== 'function') {\n return;\n }\n\n var smile = String.fromCharCode(55357) + String.fromCharCode(56835);\n\n context.textBaseline = \"top\";\n context.font = \"32px Arial\";\n context.fillText(smile, 0, 0);\n return context.getImageData(16, 16, 1, 1).data[0] !== 0;\n}\n\nif (!doesSupportEmoji()) {\n twemoji.parse(document.body);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvZGVtby9zY3JpcHRzL2Vtb2ppLmpzPzMwNmUiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSnVzdCBmb3IgdGhlIHNha2Ugb2Ygc3R5bGluZyBwYWdlXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuXG4vKipcbiAqIERldGVybWluZSBpZiB0aGlzIGJyb3dzZXIgc3VwcG9ydHMgZW1vamkuXG4gKlxuICogTW9kaWZpZWQgZnJvbSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9td3Vuc2NoLzQ3MTA1NjFcbiAqIGFuZCBwcm9ib2JseSBvcmlnaW5hbGx5IGdpdGh1YidzIGphdmFzY3JpcHQgc291cmNlXG4gKi9cbmZ1bmN0aW9uIGRvZXNTdXBwb3J0RW1vamkoKSB7XG4gIGxldCBjb250ZXh0O1xuICBpZiAoIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQpIHJldHVybjtcbiAgY29udGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJyk7XG4gIGlmICgodHlwZW9mIGNvbnRleHQuZmlsbFRleHQpICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IHNtaWxlID0gU3RyaW5nLmZyb21DaGFyQ29kZSg1NTM1NykgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDU2ODM1KTtcblxuICBjb250ZXh0LnRleHRCYXNlbGluZSA9IFwidG9wXCI7XG4gIGNvbnRleHQuZm9udCA9IFwiMzJweCBBcmlhbFwiO1xuICBjb250ZXh0LmZpbGxUZXh0KHNtaWxlLCAwLCAwKTtcbiAgcmV0dXJuIGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDE2LCAxNiwgMSwgMSkuZGF0YVswXSAhPT0gMDtcbn1cblxuaWYgKCFkb2VzU3VwcG9ydEVtb2ppKCkpIHtcbiAgdHdlbW9qaS5wYXJzZShkb2N1bWVudC5ib2R5KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///11\n")},function(module,exports){eval("// removed by extract-text-webpack-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTIuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvLi9kZW1vL3N0eWxlcy9kZW1vLnNjc3M/ZTZlZCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZW1vdmVkIGJ5IGV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpbiJdLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///12\n")},function(module,exports){eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvLi9ub2RlX21vZHVsZXMvZXZlbnRzL2V2ZW50cy5qcz9mYWExIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIHRoaXMuX2V2ZW50cyA9IHRoaXMuX2V2ZW50cyB8fCB7fTtcbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxuRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24obikge1xuICBpZiAoIWlzTnVtYmVyKG4pIHx8IG4gPCAwIHx8IGlzTmFOKG4pKVxuICAgIHRocm93IFR5cGVFcnJvcignbiBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyJyk7XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIgZXIsIGhhbmRsZXIsIGxlbiwgYXJncywgaSwgbGlzdGVuZXJzO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzKVxuICAgIHRoaXMuX2V2ZW50cyA9IHt9O1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKHR5cGUgPT09ICdlcnJvcicpIHtcbiAgICBpZiAoIXRoaXMuX2V2ZW50cy5lcnJvciB8fFxuICAgICAgICAoaXNPYmplY3QodGhpcy5fZXZlbnRzLmVycm9yKSAmJiAhdGhpcy5fZXZlbnRzLmVycm9yLmxlbmd0aCkpIHtcbiAgICAgIGVyID0gYXJndW1lbnRzWzFdO1xuICAgICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBBdCBsZWFzdCBnaXZlIHNvbWUga2luZCBvZiBjb250ZXh0IHRvIHRoZSB1c2VyXG4gICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuY2F1Z2h0LCB1bnNwZWNpZmllZCBcImVycm9yXCIgZXZlbnQuICgnICsgZXIgKyAnKScpO1xuICAgICAgICBlcnIuY29udGV4dCA9IGVyO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlciA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICBpZiAoaXNVbmRlZmluZWQoaGFuZGxlcikpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmIChpc0Z1bmN0aW9uKGhhbmRsZXIpKSB7XG4gICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAvLyBmYXN0IGNhc2VzXG4gICAgICBjYXNlIDE6XG4gICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzLCBhcmd1bWVudHNbMV0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBzbG93ZXJcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICBoYW5kbGVyLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc09iamVjdChoYW5kbGVyKSkge1xuICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgIGxpc3RlbmVycyA9IGhhbmRsZXIuc2xpY2UoKTtcbiAgICBsZW4gPSBsaXN0ZW5lcnMubGVuZ3RoO1xuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKylcbiAgICAgIGxpc3RlbmVyc1tpXS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBtO1xuXG4gIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICBpZiAoIXRoaXMuX2V2ZW50cylcbiAgICB0aGlzLl9ldmVudHMgPSB7fTtcblxuICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSBcIm5ld0xpc3RlbmVyXCIhIEJlZm9yZVxuICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCBcIm5ld0xpc3RlbmVyXCIuXG4gIGlmICh0aGlzLl9ldmVudHMubmV3TGlzdGVuZXIpXG4gICAgdGhpcy5lbWl0KCduZXdMaXN0ZW5lcicsIHR5cGUsXG4gICAgICAgICAgICAgIGlzRnVuY3Rpb24obGlzdGVuZXIubGlzdGVuZXIpID9cbiAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuXG4gICAgdGhpcy5fZXZlbnRzW3R5cGVdID0gbGlzdGVuZXI7XG4gIGVsc2UgaWYgKGlzT2JqZWN0KHRoaXMuX2V2ZW50c1t0eXBlXSkpXG4gICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLlxuICAgIHRoaXMuX2V2ZW50c1t0eXBlXS5wdXNoKGxpc3RlbmVyKTtcbiAgZWxzZVxuICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LlxuICAgIHRoaXMuX2V2ZW50c1t0eXBlXSA9IFt0aGlzLl9ldmVudHNbdHlwZV0sIGxpc3RlbmVyXTtcblxuICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVha1xuICBpZiAoaXNPYmplY3QodGhpcy5fZXZlbnRzW3R5cGVdKSAmJiAhdGhpcy5fZXZlbnRzW3R5cGVdLndhcm5lZCkge1xuICAgIGlmICghaXNVbmRlZmluZWQodGhpcy5fbWF4TGlzdGVuZXJzKSkge1xuICAgICAgbSA9IHRoaXMuX21heExpc3RlbmVycztcbiAgICB9IGVsc2Uge1xuICAgICAgbSA9IEV2ZW50RW1pdHRlci5kZWZhdWx0TWF4TGlzdGVuZXJzO1xuICAgIH1cblxuICAgIGlmIChtICYmIG0gPiAwICYmIHRoaXMuX2V2ZW50c1t0eXBlXS5sZW5ndGggPiBtKSB7XG4gICAgICB0aGlzLl9ldmVudHNbdHlwZV0ud2FybmVkID0gdHJ1ZTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJyhub2RlKSB3YXJuaW5nOiBwb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5ICcgK1xuICAgICAgICAgICAgICAgICAgICAnbGVhayBkZXRlY3RlZC4gJWQgbGlzdGVuZXJzIGFkZGVkLiAnICtcbiAgICAgICAgICAgICAgICAgICAgJ1VzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0LicsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50c1t0eXBlXS5sZW5ndGgpO1xuICAgICAgaWYgKHR5cGVvZiBjb25zb2xlLnRyYWNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIG5vdCBzdXBwb3J0ZWQgaW4gSUUgMTBcbiAgICAgICAgY29uc29sZS50cmFjZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XG4gIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICB2YXIgZmlyZWQgPSBmYWxzZTtcblxuICBmdW5jdGlvbiBnKCkge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgZyk7XG5cbiAgICBpZiAoIWZpcmVkKSB7XG4gICAgICBmaXJlZCA9IHRydWU7XG4gICAgICBsaXN0ZW5lci5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfVxuXG4gIGcubGlzdGVuZXIgPSBsaXN0ZW5lcjtcbiAgdGhpcy5vbih0eXBlLCBnKTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbi8vIGVtaXRzIGEgJ3JlbW92ZUxpc3RlbmVyJyBldmVudCBpZmYgdGhlIGxpc3RlbmVyIHdhcyByZW1vdmVkXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHtcbiAgdmFyIGxpc3QsIHBvc2l0aW9uLCBsZW5ndGgsIGk7XG5cbiAgaWYgKCFpc0Z1bmN0aW9uKGxpc3RlbmVyKSlcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ2xpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbicpO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzIHx8ICF0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgbGlzdCA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgbGVuZ3RoID0gbGlzdC5sZW5ndGg7XG4gIHBvc2l0aW9uID0gLTE7XG5cbiAgaWYgKGxpc3QgPT09IGxpc3RlbmVyIHx8XG4gICAgICAoaXNGdW5jdGlvbihsaXN0Lmxpc3RlbmVyKSAmJiBsaXN0Lmxpc3RlbmVyID09PSBsaXN0ZW5lcikpIHtcbiAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuICAgIGlmICh0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXIpXG4gICAgICB0aGlzLmVtaXQoJ3JlbW92ZUxpc3RlbmVyJywgdHlwZSwgbGlzdGVuZXIpO1xuXG4gIH0gZWxzZSBpZiAoaXNPYmplY3QobGlzdCkpIHtcbiAgICBmb3IgKGkgPSBsZW5ndGg7IGktLSA+IDA7KSB7XG4gICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHxcbiAgICAgICAgICAobGlzdFtpXS5saXN0ZW5lciAmJiBsaXN0W2ldLmxpc3RlbmVyID09PSBsaXN0ZW5lcikpIHtcbiAgICAgICAgcG9zaXRpb24gPSBpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24gPCAwKVxuICAgICAgcmV0dXJuIHRoaXM7XG5cbiAgICBpZiAobGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgIGxpc3QubGVuZ3RoID0gMDtcbiAgICAgIGRlbGV0ZSB0aGlzLl9ldmVudHNbdHlwZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3Quc3BsaWNlKHBvc2l0aW9uLCAxKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlKSB7XG4gIHZhciBrZXksIGxpc3RlbmVycztcblxuICBpZiAoIXRoaXMuX2V2ZW50cylcbiAgICByZXR1cm4gdGhpcztcblxuICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0XG4gIGlmICghdGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKSB7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApXG4gICAgICB0aGlzLl9ldmVudHMgPSB7fTtcbiAgICBlbHNlIGlmICh0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgZm9yIChrZXkgaW4gdGhpcy5fZXZlbnRzKSB7XG4gICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTtcbiAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGtleSk7XG4gICAgfVxuICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpO1xuICAgIHRoaXMuX2V2ZW50cyA9IHt9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbGlzdGVuZXJzID0gdGhpcy5fZXZlbnRzW3R5cGVdO1xuXG4gIGlmIChpc0Z1bmN0aW9uKGxpc3RlbmVycykpIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGxpc3RlbmVycyk7XG4gIH0gZWxzZSBpZiAobGlzdGVuZXJzKSB7XG4gICAgLy8gTElGTyBvcmRlclxuICAgIHdoaWxlIChsaXN0ZW5lcnMubGVuZ3RoKVxuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbbGlzdGVuZXJzLmxlbmd0aCAtIDFdKTtcbiAgfVxuICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlKSB7XG4gIHZhciByZXQ7XG4gIGlmICghdGhpcy5fZXZlbnRzIHx8ICF0aGlzLl9ldmVudHNbdHlwZV0pXG4gICAgcmV0ID0gW107XG4gIGVsc2UgaWYgKGlzRnVuY3Rpb24odGhpcy5fZXZlbnRzW3R5cGVdKSlcbiAgICByZXQgPSBbdGhpcy5fZXZlbnRzW3R5cGVdXTtcbiAgZWxzZVxuICAgIHJldCA9IHRoaXMuX2V2ZW50c1t0eXBlXS5zbGljZSgpO1xuICByZXR1cm4gcmV0O1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24odHlwZSkge1xuICBpZiAodGhpcy5fZXZlbnRzKSB7XG4gICAgdmFyIGV2bGlzdGVuZXIgPSB0aGlzLl9ldmVudHNbdHlwZV07XG5cbiAgICBpZiAoaXNGdW5jdGlvbihldmxpc3RlbmVyKSlcbiAgICAgIHJldHVybiAxO1xuICAgIGVsc2UgaWYgKGV2bGlzdGVuZXIpXG4gICAgICByZXR1cm4gZXZsaXN0ZW5lci5sZW5ndGg7XG4gIH1cbiAgcmV0dXJuIDA7XG59O1xuXG5FdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHtcbiAgcmV0dXJuIGVtaXR0ZXIubGlzdGVuZXJDb3VudCh0eXBlKTtcbn07XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24oYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBpc051bWJlcihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdudW1iZXInO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdChhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmIGFyZyAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNVbmRlZmluZWQoYXJnKSB7XG4gIHJldHVybiBhcmcgPT09IHZvaWQgMDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///13\n")},function(module,exports,__webpack_require__){eval("var EventEmitter = __webpack_require__(13);\r\nmodule.exports = new EventEmitter();\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvKHdlYnBhY2spL2hvdC9lbWl0dGVyLmpzP2E2YmQiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoXCJldmVudHNcIik7XHJcbm1vZHVsZS5leHBvcnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///14\n")},function(module,exports){eval('var logLevel = "info";\n\nfunction dummy() {}\n\nfunction shouldLog(level) {\n\tvar shouldLog =\n\t\t(logLevel === "info" && level === "info") ||\n\t\t(["info", "warning"].indexOf(logLevel) >= 0 && level === "warning") ||\n\t\t(["info", "warning", "error"].indexOf(logLevel) >= 0 && level === "error");\n\treturn shouldLog;\n}\n\nfunction logGroup(logFn) {\n\treturn function(level, msg) {\n\t\tif (shouldLog(level)) {\n\t\t\tlogFn(msg);\n\t\t}\n\t};\n}\n\nmodule.exports = function(level, msg) {\n\tif (shouldLog(level)) {\n\t\tif (level === "info") {\n\t\t\tconsole.log(msg);\n\t\t} else if (level === "warning") {\n\t\t\tconsole.warn(msg);\n\t\t} else if (level === "error") {\n\t\t\tconsole.error(msg);\n\t\t}\n\t}\n};\n\nvar group = console.group || dummy;\nvar groupCollapsed = console.groupCollapsed || dummy;\nvar groupEnd = console.groupEnd || dummy;\n\nmodule.exports.group = logGroup(group);\n\nmodule.exports.groupCollapsed = logGroup(groupCollapsed);\n\nmodule.exports.groupEnd = logGroup(groupEnd);\n\nmodule.exports.setLogLevel = function(level) {\n\tlogLevel = level;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvKHdlYnBhY2spL2hvdC9sb2cuanM/MWFmZCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbG9nTGV2ZWwgPSBcImluZm9cIjtcblxuZnVuY3Rpb24gZHVtbXkoKSB7fVxuXG5mdW5jdGlvbiBzaG91bGRMb2cobGV2ZWwpIHtcblx0dmFyIHNob3VsZExvZyA9XG5cdFx0KGxvZ0xldmVsID09PSBcImluZm9cIiAmJiBsZXZlbCA9PT0gXCJpbmZvXCIpIHx8XG5cdFx0KFtcImluZm9cIiwgXCJ3YXJuaW5nXCJdLmluZGV4T2YobG9nTGV2ZWwpID49IDAgJiYgbGV2ZWwgPT09IFwid2FybmluZ1wiKSB8fFxuXHRcdChbXCJpbmZvXCIsIFwid2FybmluZ1wiLCBcImVycm9yXCJdLmluZGV4T2YobG9nTGV2ZWwpID49IDAgJiYgbGV2ZWwgPT09IFwiZXJyb3JcIik7XG5cdHJldHVybiBzaG91bGRMb2c7XG59XG5cbmZ1bmN0aW9uIGxvZ0dyb3VwKGxvZ0ZuKSB7XG5cdHJldHVybiBmdW5jdGlvbihsZXZlbCwgbXNnKSB7XG5cdFx0aWYgKHNob3VsZExvZyhsZXZlbCkpIHtcblx0XHRcdGxvZ0ZuKG1zZyk7XG5cdFx0fVxuXHR9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGxldmVsLCBtc2cpIHtcblx0aWYgKHNob3VsZExvZyhsZXZlbCkpIHtcblx0XHRpZiAobGV2ZWwgPT09IFwiaW5mb1wiKSB7XG5cdFx0XHRjb25zb2xlLmxvZyhtc2cpO1xuXHRcdH0gZWxzZSBpZiAobGV2ZWwgPT09IFwid2FybmluZ1wiKSB7XG5cdFx0XHRjb25zb2xlLndhcm4obXNnKTtcblx0XHR9IGVsc2UgaWYgKGxldmVsID09PSBcImVycm9yXCIpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IobXNnKTtcblx0XHR9XG5cdH1cbn07XG5cbnZhciBncm91cCA9IGNvbnNvbGUuZ3JvdXAgfHwgZHVtbXk7XG52YXIgZ3JvdXBDb2xsYXBzZWQgPSBjb25zb2xlLmdyb3VwQ29sbGFwc2VkIHx8IGR1bW15O1xudmFyIGdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZCB8fCBkdW1teTtcblxubW9kdWxlLmV4cG9ydHMuZ3JvdXAgPSBsb2dHcm91cChncm91cCk7XG5cbm1vZHVsZS5leHBvcnRzLmdyb3VwQ29sbGFwc2VkID0gbG9nR3JvdXAoZ3JvdXBDb2xsYXBzZWQpO1xuXG5tb2R1bGUuZXhwb3J0cy5ncm91cEVuZCA9IGxvZ0dyb3VwKGdyb3VwRW5kKTtcblxubW9kdWxlLmV4cG9ydHMuc2V0TG9nTGV2ZWwgPSBmdW5jdGlvbihsZXZlbCkge1xuXHRsb2dMZXZlbCA9IGxldmVsO1xufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///15\n')},function(module,exports,__webpack_require__){eval('var map = {\n\t"./log": 15\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error("Cannot find module \'" + req + "\'");\n\t\te.code = \'MODULE_NOT_FOUND\';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 16;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTYuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvKHdlYnBhY2spL2hvdCBzeW5jIG5vbnJlY3Vyc2l2ZSBeXFwuXFwvbG9nJD8xYzNkIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBtYXAgPSB7XG5cdFwiLi9sb2dcIjogMTVcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdHZhciBpZCA9IG1hcFtyZXFdO1xuXHRpZighKGlkICsgMSkpIHsgLy8gY2hlY2sgZm9yIG51bWJlciBvciBzdHJpbmdcblx0XHR2YXIgZSA9IG5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIgKyByZXEgKyBcIidcIik7XG5cdFx0ZS5jb2RlID0gJ01PRFVMRV9OT1RfRk9VTkQnO1xuXHRcdHRocm93IGU7XG5cdH1cblx0cmV0dXJuIGlkO1xufVxud2VicGFja0NvbnRleHQua2V5cyA9IGZ1bmN0aW9uIHdlYnBhY2tDb250ZXh0S2V5cygpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKG1hcCk7XG59O1xud2VicGFja0NvbnRleHQucmVzb2x2ZSA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZTtcbm1vZHVsZS5leHBvcnRzID0gd2VicGFja0NvbnRleHQ7XG53ZWJwYWNrQ29udGV4dC5pZCA9IDE2OyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///16\n')},function(module,exports){eval("var HTML_ALPHA = ['apos', 'nbsp', 'iexcl', 'cent', 'pound', 'curren', 'yen', 'brvbar', 'sect', 'uml', 'copy', 'ordf', 'laquo', 'not', 'shy', 'reg', 'macr', 'deg', 'plusmn', 'sup2', 'sup3', 'acute', 'micro', 'para', 'middot', 'cedil', 'sup1', 'ordm', 'raquo', 'frac14', 'frac12', 'frac34', 'iquest', 'Agrave', 'Aacute', 'Acirc', 'Atilde', 'Auml', 'Aring', 'Aelig', 'Ccedil', 'Egrave', 'Eacute', 'Ecirc', 'Euml', 'Igrave', 'Iacute', 'Icirc', 'Iuml', 'ETH', 'Ntilde', 'Ograve', 'Oacute', 'Ocirc', 'Otilde', 'Ouml', 'times', 'Oslash', 'Ugrave', 'Uacute', 'Ucirc', 'Uuml', 'Yacute', 'THORN', 'szlig', 'agrave', 'aacute', 'acirc', 'atilde', 'auml', 'aring', 'aelig', 'ccedil', 'egrave', 'eacute', 'ecirc', 'euml', 'igrave', 'iacute', 'icirc', 'iuml', 'eth', 'ntilde', 'ograve', 'oacute', 'ocirc', 'otilde', 'ouml', 'divide', 'oslash', 'ugrave', 'uacute', 'ucirc', 'uuml', 'yacute', 'thorn', 'yuml', 'quot', 'amp', 'lt', 'gt', 'OElig', 'oelig', 'Scaron', 'scaron', 'Yuml', 'circ', 'tilde', 'ensp', 'emsp', 'thinsp', 'zwnj', 'zwj', 'lrm', 'rlm', 'ndash', 'mdash', 'lsquo', 'rsquo', 'sbquo', 'ldquo', 'rdquo', 'bdquo', 'dagger', 'Dagger', 'permil', 'lsaquo', 'rsaquo', 'euro', 'fnof', 'Alpha', 'Beta', 'Gamma', 'Delta', 'Epsilon', 'Zeta', 'Eta', 'Theta', 'Iota', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Xi', 'Omicron', 'Pi', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'Phi', 'Chi', 'Psi', 'Omega', 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta', 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron', 'pi', 'rho', 'sigmaf', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi', 'omega', 'thetasym', 'upsih', 'piv', 'bull', 'hellip', 'prime', 'Prime', 'oline', 'frasl', 'weierp', 'image', 'real', 'trade', 'alefsym', 'larr', 'uarr', 'rarr', 'darr', 'harr', 'crarr', 'lArr', 'uArr', 'rArr', 'dArr', 'hArr', 'forall', 'part', 'exist', 'empty', 'nabla', 'isin', 'notin', 'ni', 'prod', 'sum', 'minus', 'lowast', 'radic', 'prop', 'infin', 'ang', 'and', 'or', 'cap', 'cup', 'int', 'there4', 'sim', 'cong', 'asymp', 'ne', 'equiv', 'le', 'ge', 'sub', 'sup', 'nsub', 'sube', 'supe', 'oplus', 'otimes', 'perp', 'sdot', 'lceil', 'rceil', 'lfloor', 'rfloor', 'lang', 'rang', 'loz', 'spades', 'clubs', 'hearts', 'diams'];\nvar HTML_CODES = [39, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 34, 38, 60, 62, 338, 339, 352, 353, 376, 710, 732, 8194, 8195, 8201, 8204, 8205, 8206, 8207, 8211, 8212, 8216, 8217, 8218, 8220, 8221, 8222, 8224, 8225, 8240, 8249, 8250, 8364, 402, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 977, 978, 982, 8226, 8230, 8242, 8243, 8254, 8260, 8472, 8465, 8476, 8482, 8501, 8592, 8593, 8594, 8595, 8596, 8629, 8656, 8657, 8658, 8659, 8660, 8704, 8706, 8707, 8709, 8711, 8712, 8713, 8715, 8719, 8721, 8722, 8727, 8730, 8733, 8734, 8736, 8743, 8744, 8745, 8746, 8747, 8756, 8764, 8773, 8776, 8800, 8801, 8804, 8805, 8834, 8835, 8836, 8838, 8839, 8853, 8855, 8869, 8901, 8968, 8969, 8970, 8971, 9001, 9002, 9674, 9824, 9827, 9829, 9830];\n\nvar alphaIndex = {};\nvar numIndex = {};\n\nvar i = 0;\nvar length = HTML_ALPHA.length;\nwhile (i < length) {\n var a = HTML_ALPHA[i];\n var c = HTML_CODES[i];\n alphaIndex[a] = String.fromCharCode(c);\n numIndex[c] = a;\n i++;\n}\n\n/**\n * @constructor\n */\nfunction Html4Entities() {}\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.decode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/&(#?[\\w\\d]+);?/g, function(s, entity) {\n var chr;\n if (entity.charAt(0) === \"#\") {\n var code = entity.charAt(1).toLowerCase() === 'x' ?\n parseInt(entity.substr(2), 16) :\n parseInt(entity.substr(1));\n\n if (!(isNaN(code) || code < -32768 || code > 65535)) {\n chr = String.fromCharCode(code);\n }\n } else {\n chr = alphaIndex[entity];\n }\n return chr || s;\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.decode = function(str) {\n return new Html4Entities().decode(str);\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.encode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var alpha = numIndex[str.charCodeAt(i)];\n result += alpha ? \"&\" + alpha + \";\" : str.charAt(i);\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.encode = function(str) {\n return new Html4Entities().encode(str);\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.encodeNonUTF = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var cc = str.charCodeAt(i);\n var alpha = numIndex[cc];\n if (alpha) {\n result += \"&\" + alpha + \";\";\n } else if (cc < 32 || cc > 126) {\n result += \"&#\" + cc + \";\";\n } else {\n result += str.charAt(i);\n }\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.encodeNonUTF = function(str) {\n return new Html4Entities().encodeNonUTF(str);\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.prototype.encodeNonASCII = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n if (c <= 255) {\n result += str[i++];\n continue;\n }\n result += '&#' + c + ';';\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\nHtml4Entities.encodeNonASCII = function(str) {\n return new Html4Entities().encodeNonASCII(str);\n};\n\nmodule.exports = Html4Entities;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTcuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvLi9ub2RlX21vZHVsZXMvaHRtbC1lbnRpdGllcy9saWIvaHRtbDQtZW50aXRpZXMuanM/MWYwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgSFRNTF9BTFBIQSA9IFsnYXBvcycsICduYnNwJywgJ2lleGNsJywgJ2NlbnQnLCAncG91bmQnLCAnY3VycmVuJywgJ3llbicsICdicnZiYXInLCAnc2VjdCcsICd1bWwnLCAnY29weScsICdvcmRmJywgJ2xhcXVvJywgJ25vdCcsICdzaHknLCAncmVnJywgJ21hY3InLCAnZGVnJywgJ3BsdXNtbicsICdzdXAyJywgJ3N1cDMnLCAnYWN1dGUnLCAnbWljcm8nLCAncGFyYScsICdtaWRkb3QnLCAnY2VkaWwnLCAnc3VwMScsICdvcmRtJywgJ3JhcXVvJywgJ2ZyYWMxNCcsICdmcmFjMTInLCAnZnJhYzM0JywgJ2lxdWVzdCcsICdBZ3JhdmUnLCAnQWFjdXRlJywgJ0FjaXJjJywgJ0F0aWxkZScsICdBdW1sJywgJ0FyaW5nJywgJ0FlbGlnJywgJ0NjZWRpbCcsICdFZ3JhdmUnLCAnRWFjdXRlJywgJ0VjaXJjJywgJ0V1bWwnLCAnSWdyYXZlJywgJ0lhY3V0ZScsICdJY2lyYycsICdJdW1sJywgJ0VUSCcsICdOdGlsZGUnLCAnT2dyYXZlJywgJ09hY3V0ZScsICdPY2lyYycsICdPdGlsZGUnLCAnT3VtbCcsICd0aW1lcycsICdPc2xhc2gnLCAnVWdyYXZlJywgJ1VhY3V0ZScsICdVY2lyYycsICdVdW1sJywgJ1lhY3V0ZScsICdUSE9STicsICdzemxpZycsICdhZ3JhdmUnLCAnYWFjdXRlJywgJ2FjaXJjJywgJ2F0aWxkZScsICdhdW1sJywgJ2FyaW5nJywgJ2FlbGlnJywgJ2NjZWRpbCcsICdlZ3JhdmUnLCAnZWFjdXRlJywgJ2VjaXJjJywgJ2V1bWwnLCAnaWdyYXZlJywgJ2lhY3V0ZScsICdpY2lyYycsICdpdW1sJywgJ2V0aCcsICdudGlsZGUnLCAnb2dyYXZlJywgJ29hY3V0ZScsICdvY2lyYycsICdvdGlsZGUnLCAnb3VtbCcsICdkaXZpZGUnLCAnb3NsYXNoJywgJ3VncmF2ZScsICd1YWN1dGUnLCAndWNpcmMnLCAndXVtbCcsICd5YWN1dGUnLCAndGhvcm4nLCAneXVtbCcsICdxdW90JywgJ2FtcCcsICdsdCcsICdndCcsICdPRWxpZycsICdvZWxpZycsICdTY2Fyb24nLCAnc2Nhcm9uJywgJ1l1bWwnLCAnY2lyYycsICd0aWxkZScsICdlbnNwJywgJ2Vtc3AnLCAndGhpbnNwJywgJ3p3bmonLCAnendqJywgJ2xybScsICdybG0nLCAnbmRhc2gnLCAnbWRhc2gnLCAnbHNxdW8nLCAncnNxdW8nLCAnc2JxdW8nLCAnbGRxdW8nLCAncmRxdW8nLCAnYmRxdW8nLCAnZGFnZ2VyJywgJ0RhZ2dlcicsICdwZXJtaWwnLCAnbHNhcXVvJywgJ3JzYXF1bycsICdldXJvJywgJ2Zub2YnLCAnQWxwaGEnLCAnQmV0YScsICdHYW1tYScsICdEZWx0YScsICdFcHNpbG9uJywgJ1pldGEnLCAnRXRhJywgJ1RoZXRhJywgJ0lvdGEnLCAnS2FwcGEnLCAnTGFtYmRhJywgJ011JywgJ051JywgJ1hpJywgJ09taWNyb24nLCAnUGknLCAnUmhvJywgJ1NpZ21hJywgJ1RhdScsICdVcHNpbG9uJywgJ1BoaScsICdDaGknLCAnUHNpJywgJ09tZWdhJywgJ2FscGhhJywgJ2JldGEnLCAnZ2FtbWEnLCAnZGVsdGEnLCAnZXBzaWxvbicsICd6ZXRhJywgJ2V0YScsICd0aGV0YScsICdpb3RhJywgJ2thcHBhJywgJ2xhbWJkYScsICdtdScsICdudScsICd4aScsICdvbWljcm9uJywgJ3BpJywgJ3JobycsICdzaWdtYWYnLCAnc2lnbWEnLCAndGF1JywgJ3Vwc2lsb24nLCAncGhpJywgJ2NoaScsICdwc2knLCAnb21lZ2EnLCAndGhldGFzeW0nLCAndXBzaWgnLCAncGl2JywgJ2J1bGwnLCAnaGVsbGlwJywgJ3ByaW1lJywgJ1ByaW1lJywgJ29saW5lJywgJ2ZyYXNsJywgJ3dlaWVycCcsICdpbWFnZScsICdyZWFsJywgJ3RyYWRlJywgJ2FsZWZzeW0nLCAnbGFycicsICd1YXJyJywgJ3JhcnInLCAnZGFycicsICdoYXJyJywgJ2NyYXJyJywgJ2xBcnInLCAndUFycicsICdyQXJyJywgJ2RBcnInLCAnaEFycicsICdmb3JhbGwnLCAncGFydCcsICdleGlzdCcsICdlbXB0eScsICduYWJsYScsICdpc2luJywgJ25vdGluJywgJ25pJywgJ3Byb2QnLCAnc3VtJywgJ21pbnVzJywgJ2xvd2FzdCcsICdyYWRpYycsICdwcm9wJywgJ2luZmluJywgJ2FuZycsICdhbmQnLCAnb3InLCAnY2FwJywgJ2N1cCcsICdpbnQnLCAndGhlcmU0JywgJ3NpbScsICdjb25nJywgJ2FzeW1wJywgJ25lJywgJ2VxdWl2JywgJ2xlJywgJ2dlJywgJ3N1YicsICdzdXAnLCAnbnN1YicsICdzdWJlJywgJ3N1cGUnLCAnb3BsdXMnLCAnb3RpbWVzJywgJ3BlcnAnLCAnc2RvdCcsICdsY2VpbCcsICdyY2VpbCcsICdsZmxvb3InLCAncmZsb29yJywgJ2xhbmcnLCAncmFuZycsICdsb3onLCAnc3BhZGVzJywgJ2NsdWJzJywgJ2hlYXJ0cycsICdkaWFtcyddO1xudmFyIEhUTUxfQ09ERVMgPSBbMzksIDE2MCwgMTYxLCAxNjIsIDE2MywgMTY0LCAxNjUsIDE2NiwgMTY3LCAxNjgsIDE2OSwgMTcwLCAxNzEsIDE3MiwgMTczLCAxNzQsIDE3NSwgMTc2LCAxNzcsIDE3OCwgMTc5LCAxODAsIDE4MSwgMTgyLCAxODMsIDE4NCwgMTg1LCAxODYsIDE4NywgMTg4LCAxODksIDE5MCwgMTkxLCAxOTIsIDE5MywgMTk0LCAxOTUsIDE5NiwgMTk3LCAxOTgsIDE5OSwgMjAwLCAyMDEsIDIwMiwgMjAzLCAyMDQsIDIwNSwgMjA2LCAyMDcsIDIwOCwgMjA5LCAyMTAsIDIxMSwgMjEyLCAyMTMsIDIxNCwgMjE1LCAyMTYsIDIxNywgMjE4LCAyMTksIDIyMCwgMjIxLCAyMjIsIDIyMywgMjI0LCAyMjUsIDIyNiwgMjI3LCAyMjgsIDIyOSwgMjMwLCAyMzEsIDIzMiwgMjMzLCAyMzQsIDIzNSwgMjM2LCAyMzcsIDIzOCwgMjM5LCAyNDAsIDI0MSwgMjQyLCAyNDMsIDI0NCwgMjQ1LCAyNDYsIDI0NywgMjQ4LCAyNDksIDI1MCwgMjUxLCAyNTIsIDI1MywgMjU0LCAyNTUsIDM0LCAzOCwgNjAsIDYyLCAzMzgsIDMzOSwgMzUyLCAzNTMsIDM3NiwgNzEwLCA3MzIsIDgxOTQsIDgxOTUsIDgyMDEsIDgyMDQsIDgyMDUsIDgyMDYsIDgyMDcsIDgyMTEsIDgyMTIsIDgyMTYsIDgyMTcsIDgyMTgsIDgyMjAsIDgyMjEsIDgyMjIsIDgyMjQsIDgyMjUsIDgyNDAsIDgyNDksIDgyNTAsIDgzNjQsIDQwMiwgOTEzLCA5MTQsIDkxNSwgOTE2LCA5MTcsIDkxOCwgOTE5LCA5MjAsIDkyMSwgOTIyLCA5MjMsIDkyNCwgOTI1LCA5MjYsIDkyNywgOTI4LCA5MjksIDkzMSwgOTMyLCA5MzMsIDkzNCwgOTM1LCA5MzYsIDkzNywgOTQ1LCA5NDYsIDk0NywgOTQ4LCA5NDksIDk1MCwgOTUxLCA5NTIsIDk1MywgOTU0LCA5NTUsIDk1NiwgOTU3LCA5NTgsIDk1OSwgOTYwLCA5NjEsIDk2MiwgOTYzLCA5NjQsIDk2NSwgOTY2LCA5NjcsIDk2OCwgOTY5LCA5NzcsIDk3OCwgOTgyLCA4MjI2LCA4MjMwLCA4MjQyLCA4MjQzLCA4MjU0LCA4MjYwLCA4NDcyLCA4NDY1LCA4NDc2LCA4NDgyLCA4NTAxLCA4NTkyLCA4NTkzLCA4NTk0LCA4NTk1LCA4NTk2LCA4NjI5LCA4NjU2LCA4NjU3LCA4NjU4LCA4NjU5LCA4NjYwLCA4NzA0LCA4NzA2LCA4NzA3LCA4NzA5LCA4NzExLCA4NzEyLCA4NzEzLCA4NzE1LCA4NzE5LCA4NzIxLCA4NzIyLCA4NzI3LCA4NzMwLCA4NzMzLCA4NzM0LCA4NzM2LCA4NzQzLCA4NzQ0LCA4NzQ1LCA4NzQ2LCA4NzQ3LCA4NzU2LCA4NzY0LCA4NzczLCA4Nzc2LCA4ODAwLCA4ODAxLCA4ODA0LCA4ODA1LCA4ODM0LCA4ODM1LCA4ODM2LCA4ODM4LCA4ODM5LCA4ODUzLCA4ODU1LCA4ODY5LCA4OTAxLCA4OTY4LCA4OTY5LCA4OTcwLCA4OTcxLCA5MDAxLCA5MDAyLCA5Njc0LCA5ODI0LCA5ODI3LCA5ODI5LCA5ODMwXTtcblxudmFyIGFscGhhSW5kZXggPSB7fTtcbnZhciBudW1JbmRleCA9IHt9O1xuXG52YXIgaSA9IDA7XG52YXIgbGVuZ3RoID0gSFRNTF9BTFBIQS5sZW5ndGg7XG53aGlsZSAoaSA8IGxlbmd0aCkge1xuICAgIHZhciBhID0gSFRNTF9BTFBIQVtpXTtcbiAgICB2YXIgYyA9IEhUTUxfQ09ERVNbaV07XG4gICAgYWxwaGFJbmRleFthXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoYyk7XG4gICAgbnVtSW5kZXhbY10gPSBhO1xuICAgIGkrKztcbn1cblxuLyoqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gSHRtbDRFbnRpdGllcygpIHt9XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuSHRtbDRFbnRpdGllcy5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgaWYgKCFzdHIgfHwgIXN0ci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyYoIz9bXFx3XFxkXSspOz8vZywgZnVuY3Rpb24ocywgZW50aXR5KSB7XG4gICAgICAgIHZhciBjaHI7XG4gICAgICAgIGlmIChlbnRpdHkuY2hhckF0KDApID09PSBcIiNcIikge1xuICAgICAgICAgICAgdmFyIGNvZGUgPSBlbnRpdHkuY2hhckF0KDEpLnRvTG93ZXJDYXNlKCkgPT09ICd4JyA/XG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoZW50aXR5LnN1YnN0cigyKSwgMTYpIDpcbiAgICAgICAgICAgICAgICBwYXJzZUludChlbnRpdHkuc3Vic3RyKDEpKTtcblxuICAgICAgICAgICAgaWYgKCEoaXNOYU4oY29kZSkgfHwgY29kZSA8IC0zMjc2OCB8fCBjb2RlID4gNjU1MzUpKSB7XG4gICAgICAgICAgICAgICAgY2hyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNociA9IGFscGhhSW5kZXhbZW50aXR5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hyIHx8IHM7XG4gICAgfSk7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbkh0bWw0RW50aXRpZXMuZGVjb2RlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIG5ldyBIdG1sNEVudGl0aWVzKCkuZGVjb2RlKHN0cik7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbkh0bWw0RW50aXRpZXMucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgdmFyIHN0ckxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHN0ckxlbmd0aCkge1xuICAgICAgICB2YXIgYWxwaGEgPSBudW1JbmRleFtzdHIuY2hhckNvZGVBdChpKV07XG4gICAgICAgIHJlc3VsdCArPSBhbHBoYSA/IFwiJlwiICsgYWxwaGEgKyBcIjtcIiA6IHN0ci5jaGFyQXQoaSk7XG4gICAgICAgIGkrKztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuSHRtbDRFbnRpdGllcy5lbmNvZGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gbmV3IEh0bWw0RW50aXRpZXMoKS5lbmNvZGUoc3RyKTtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuSHRtbDRFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlTm9uVVRGID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgaWYgKCFzdHIgfHwgIXN0ci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICB2YXIgc3RyTGVuZ3RoID0gc3RyLmxlbmd0aDtcbiAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgdmFyIGkgPSAwO1xuICAgIHdoaWxlIChpIDwgc3RyTGVuZ3RoKSB7XG4gICAgICAgIHZhciBjYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICB2YXIgYWxwaGEgPSBudW1JbmRleFtjY107XG4gICAgICAgIGlmIChhbHBoYSkge1xuICAgICAgICAgICAgcmVzdWx0ICs9IFwiJlwiICsgYWxwaGEgKyBcIjtcIjtcbiAgICAgICAgfSBlbHNlIGlmIChjYyA8IDMyIHx8IGNjID4gMTI2KSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gXCImI1wiICsgY2MgKyBcIjtcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBzdHIuY2hhckF0KGkpO1xuICAgICAgICB9XG4gICAgICAgIGkrKztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuSHRtbDRFbnRpdGllcy5lbmNvZGVOb25VVEYgPSBmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gbmV3IEh0bWw0RW50aXRpZXMoKS5lbmNvZGVOb25VVEYoc3RyKTtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuSHRtbDRFbnRpdGllcy5wcm90b3R5cGUuZW5jb2RlTm9uQVNDSUkgPSBmdW5jdGlvbihzdHIpIHtcbiAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHZhciBzdHJMZW5ndGggPSBzdHIubGVuZ3RoO1xuICAgIHZhciByZXN1bHQgPSAnJztcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBzdHJMZW5ndGgpIHtcbiAgICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaWYgKGMgPD0gMjU1KSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gc3RyW2krK107XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gJyYjJyArIGMgKyAnOyc7XG4gICAgICAgIGkrKztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuSHRtbDRFbnRpdGllcy5lbmNvZGVOb25BU0NJSSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBuZXcgSHRtbDRFbnRpdGllcygpLmVuY29kZU5vbkFTQ0lJKHN0cik7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IEh0bWw0RW50aXRpZXM7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///17\n")},function(module,exports){eval("var ALPHA_INDEX = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&apos': '\\'',\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': '\\'',\n '&': '&'\n};\n\nvar CHAR_INDEX = {\n 60: 'lt',\n 62: 'gt',\n 34: 'quot',\n 39: 'apos',\n 38: 'amp'\n};\n\nvar CHAR_S_INDEX = {\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '&': '&'\n};\n\n/**\n * @constructor\n */\nfunction XmlEntities() {}\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.encode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/<|>|\"|'|&/g, function(s) {\n return CHAR_S_INDEX[s];\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.encode = function(str) {\n return new XmlEntities().encode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.decode = function(str) {\n if (!str || !str.length) {\n return '';\n }\n return str.replace(/&#?[0-9a-zA-Z]+;?/g, function(s) {\n if (s.charAt(1) === '#') {\n var code = s.charAt(2).toLowerCase() === 'x' ?\n parseInt(s.substr(3), 16) :\n parseInt(s.substr(2));\n\n if (isNaN(code) || code < -32768 || code > 65535) {\n return '';\n }\n return String.fromCharCode(code);\n }\n return ALPHA_INDEX[s] || s;\n });\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.decode = function(str) {\n return new XmlEntities().decode(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.encodeNonUTF = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLength = str.length;\n var result = '';\n var i = 0;\n while (i < strLength) {\n var c = str.charCodeAt(i);\n var alpha = CHAR_INDEX[c];\n if (alpha) {\n result += \"&\" + alpha + \";\";\n i++;\n continue;\n }\n if (c < 32 || c > 126) {\n result += '&#' + c + ';';\n } else {\n result += str.charAt(i);\n }\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.encodeNonUTF = function(str) {\n return new XmlEntities().encodeNonUTF(str);\n };\n\n/**\n * @param {String} str\n * @returns {String}\n */\nXmlEntities.prototype.encodeNonASCII = function(str) {\n if (!str || !str.length) {\n return '';\n }\n var strLenght = str.length;\n var result = '';\n var i = 0;\n while (i < strLenght) {\n var c = str.charCodeAt(i);\n if (c <= 255) {\n result += str[i++];\n continue;\n }\n result += '&#' + c + ';';\n i++;\n }\n return result;\n};\n\n/**\n * @param {String} str\n * @returns {String}\n */\n XmlEntities.encodeNonASCII = function(str) {\n return new XmlEntities().encodeNonASCII(str);\n };\n\nmodule.exports = XmlEntities;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTguanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvLi9ub2RlX21vZHVsZXMvaHRtbC1lbnRpdGllcy9saWIveG1sLWVudGl0aWVzLmpzPzUwMjkiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIEFMUEhBX0lOREVYID0ge1xuICAgICcmbHQnOiAnPCcsXG4gICAgJyZndCc6ICc+JyxcbiAgICAnJnF1b3QnOiAnXCInLFxuICAgICcmYXBvcyc6ICdcXCcnLFxuICAgICcmYW1wJzogJyYnLFxuICAgICcmbHQ7JzogJzwnLFxuICAgICcmZ3Q7JzogJz4nLFxuICAgICcmcXVvdDsnOiAnXCInLFxuICAgICcmYXBvczsnOiAnXFwnJyxcbiAgICAnJmFtcDsnOiAnJidcbn07XG5cbnZhciBDSEFSX0lOREVYID0ge1xuICAgIDYwOiAnbHQnLFxuICAgIDYyOiAnZ3QnLFxuICAgIDM0OiAncXVvdCcsXG4gICAgMzk6ICdhcG9zJyxcbiAgICAzODogJ2FtcCdcbn07XG5cbnZhciBDSEFSX1NfSU5ERVggPSB7XG4gICAgJzwnOiAnJmx0OycsXG4gICAgJz4nOiAnJmd0OycsXG4gICAgJ1wiJzogJyZxdW90OycsXG4gICAgJ1xcJyc6ICcmYXBvczsnLFxuICAgICcmJzogJyZhbXA7J1xufTtcblxuLyoqXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZnVuY3Rpb24gWG1sRW50aXRpZXMoKSB7fVxuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cblhtbEVudGl0aWVzLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICBpZiAoIXN0ciB8fCAhc3RyLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBzdHIucmVwbGFjZSgvPHw+fFwifCd8Ji9nLCBmdW5jdGlvbihzKSB7XG4gICAgICAgIHJldHVybiBDSEFSX1NfSU5ERVhbc107XG4gICAgfSk7XG59O1xuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbiBYbWxFbnRpdGllcy5lbmNvZGUgPSBmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gbmV3IFhtbEVudGl0aWVzKCkuZW5jb2RlKHN0cik7XG4gfTtcblxuLyoqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5YbWxFbnRpdGllcy5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgaWYgKCFzdHIgfHwgIXN0ci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyYjP1swLTlhLXpBLVpdKzs/L2csIGZ1bmN0aW9uKHMpIHtcbiAgICAgICAgaWYgKHMuY2hhckF0KDEpID09PSAnIycpIHtcbiAgICAgICAgICAgIHZhciBjb2RlID0gcy5jaGFyQXQoMikudG9Mb3dlckNhc2UoKSA9PT0gJ3gnID9cbiAgICAgICAgICAgICAgICBwYXJzZUludChzLnN1YnN0cigzKSwgMTYpIDpcbiAgICAgICAgICAgICAgICBwYXJzZUludChzLnN1YnN0cigyKSk7XG5cbiAgICAgICAgICAgIGlmIChpc05hTihjb2RlKSB8fCBjb2RlIDwgLTMyNzY4IHx8IGNvZGUgPiA2NTUzNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBBTFBIQV9JTkRFWFtzXSB8fCBzO1xuICAgIH0pO1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG4gWG1sRW50aXRpZXMuZGVjb2RlID0gZnVuY3Rpb24oc3RyKSB7XG4gICAgcmV0dXJuIG5ldyBYbWxFbnRpdGllcygpLmRlY29kZShzdHIpO1xuIH07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuWG1sRW50aXRpZXMucHJvdG90eXBlLmVuY29kZU5vblVURiA9IGZ1bmN0aW9uKHN0cikge1xuICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgdmFyIHN0ckxlbmd0aCA9IHN0ci5sZW5ndGg7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHN0ckxlbmd0aCkge1xuICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICB2YXIgYWxwaGEgPSBDSEFSX0lOREVYW2NdO1xuICAgICAgICBpZiAoYWxwaGEpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBcIiZcIiArIGFscGhhICsgXCI7XCI7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYyA8IDMyIHx8IGMgPiAxMjYpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSAnJiMnICsgYyArICc7JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBzdHIuY2hhckF0KGkpO1xuICAgICAgICB9XG4gICAgICAgIGkrKztcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuIFhtbEVudGl0aWVzLmVuY29kZU5vblVURiA9IGZ1bmN0aW9uKHN0cikge1xuICAgIHJldHVybiBuZXcgWG1sRW50aXRpZXMoKS5lbmNvZGVOb25VVEYoc3RyKTtcbiB9O1xuXG4vKipcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cblhtbEVudGl0aWVzLnByb3RvdHlwZS5lbmNvZGVOb25BU0NJSSA9IGZ1bmN0aW9uKHN0cikge1xuICAgIGlmICghc3RyIHx8ICFzdHIubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgdmFyIHN0ckxlbmdodCA9IHN0ci5sZW5ndGg7XG4gICAgdmFyIHJlc3VsdCA9ICcnO1xuICAgIHZhciBpID0gMDtcbiAgICB3aGlsZSAoaSA8IHN0ckxlbmdodCkge1xuICAgICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgICAgICBpZiAoYyA8PSAyNTUpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBzdHJbaSsrXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCArPSAnJiMnICsgYyArICc7JztcbiAgICAgICAgaSsrO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG4gWG1sRW50aXRpZXMuZW5jb2RlTm9uQVNDSUkgPSBmdW5jdGlvbihzdHIpIHtcbiAgICByZXR1cm4gbmV3IFhtbEVudGl0aWVzKCkuZW5jb2RlTm9uQVNDSUkoc3RyKTtcbiB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFhtbEVudGl0aWVzO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///18\n")},function(module,exports,__webpack_require__){eval("module.exports = {\n XmlEntities: __webpack_require__(18),\n Html4Entities: __webpack_require__(17),\n Html5Entities: __webpack_require__(3),\n AllHtmlEntities: __webpack_require__(3)\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMTkuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvLi9ub2RlX21vZHVsZXMvaHRtbC1lbnRpdGllcy9pbmRleC5qcz84MmM3Il0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge1xuICBYbWxFbnRpdGllczogcmVxdWlyZSgnLi9saWIveG1sLWVudGl0aWVzLmpzJyksXG4gIEh0bWw0RW50aXRpZXM6IHJlcXVpcmUoJy4vbGliL2h0bWw0LWVudGl0aWVzLmpzJyksXG4gIEh0bWw1RW50aXRpZXM6IHJlcXVpcmUoJy4vbGliL2h0bWw1LWVudGl0aWVzLmpzJyksXG4gIEFsbEh0bWxFbnRpdGllczogcmVxdWlyZSgnLi9saWIvaHRtbDUtZW50aXRpZXMuanMnKVxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///19\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = ansiHTML\n\n// Reference to https://github.com/sindresorhus/ansi-regex\nvar _regANSI = /(?:(?:\\u001b\\[)|\\u009b)(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\\u001b[A-M]/\n\nvar _defColors = {\n reset: ['fff', '000'], // [FOREGROUD_COLOR, BACKGROUND_COLOR]\n black: '000',\n red: 'ff0000',\n green: '209805',\n yellow: 'e8bf03',\n blue: '0000ff',\n magenta: 'ff00ff',\n cyan: '00ffee',\n lightgrey: 'f0f0f0',\n darkgrey: '888'\n}\nvar _styles = {\n 30: 'black',\n 31: 'red',\n 32: 'green',\n 33: 'yellow',\n 34: 'blue',\n 35: 'magenta',\n 36: 'cyan',\n 37: 'lightgrey'\n}\nvar _openTags = {\n '1': 'font-weight:bold', // bold\n '2': 'opacity:0.5', // dim\n '3': '', // italic\n '4': '', // underscore\n '8': 'display:none', // hidden\n '9': '' // delete\n}\nvar _closeTags = {\n '23': '', // reset italic\n '24': '', // reset underscore\n '29': '' // reset delete\n}\n\n;[0, 21, 22, 27, 28, 39, 49].forEach(function (n) {\n _closeTags[n] = ''\n})\n\n/**\n * Converts text with ANSI color codes to HTML markup.\n * @param {String} text\n * @returns {*}\n */\nfunction ansiHTML (text) {\n // Returns the text if the string has no ANSI escape code.\n if (!_regANSI.test(text)) {\n return text\n }\n\n // Cache opened sequence.\n var ansiCodes = []\n // Replace with markup.\n var ret = text.replace(/\\033\\[(\\d+)*m/g, function (match, seq) {\n var ot = _openTags[seq]\n if (ot) {\n // If current sequence has been opened, close it.\n if (!!~ansiCodes.indexOf(seq)) { // eslint-disable-line no-extra-boolean-cast\n ansiCodes.pop()\n return ''\n }\n // Open tag.\n ansiCodes.push(seq)\n return ot[0] === '<' ? ot : ''\n }\n\n var ct = _closeTags[seq]\n if (ct) {\n // Pop sequence\n ansiCodes.pop()\n return ct\n }\n return ''\n })\n\n // Make sure tags are closed.\n var l = ansiCodes.length\n ;(l > 0) && (ret += Array(l + 1).join(''))\n\n return ret\n}\n\n/**\n * Customize colors.\n * @param {Object} colors reference to _defColors\n */\nansiHTML.setColors = function (colors) {\n if (typeof colors !== 'object') {\n throw new Error('`colors` parameter must be an Object.')\n }\n\n var _finalColors = {}\n for (var key in _defColors) {\n var hex = colors.hasOwnProperty(key) ? colors[key] : null\n if (!hex) {\n _finalColors[key] = _defColors[key]\n continue\n }\n if ('reset' === key) {\n if (typeof hex === 'string') {\n hex = [hex]\n }\n if (!Array.isArray(hex) || hex.length === 0 || hex.some(function (h) {\n return typeof h !== 'string'\n })) {\n throw new Error('The value of `' + key + '` property must be an Array and each item could only be a hex string, e.g.: FF0000')\n }\n var defHexColor = _defColors[key]\n if (!hex[0]) {\n hex[0] = defHexColor[0]\n }\n if (hex.length === 1 || !hex[1]) {\n hex = [hex[0]]\n hex.push(defHexColor[1])\n }\n\n hex = hex.slice(0, 2)\n } else if (typeof hex !== 'string') {\n throw new Error('The value of `' + key + '` property must be a hex string, e.g.: FF0000')\n }\n _finalColors[key] = hex\n }\n _setTags(_finalColors)\n}\n\n/**\n * Reset colors.\n */\nansiHTML.reset = function () {\n _setTags(_defColors)\n}\n\n/**\n * Expose tags, including open and close.\n * @type {Object}\n */\nansiHTML.tags = {}\n\nif (Object.defineProperty) {\n Object.defineProperty(ansiHTML.tags, 'open', {\n get: function () { return _openTags }\n })\n Object.defineProperty(ansiHTML.tags, 'close', {\n get: function () { return _closeTags }\n })\n} else {\n ansiHTML.tags.open = _openTags\n ansiHTML.tags.close = _closeTags\n}\n\nfunction _setTags (colors) {\n // reset all\n _openTags['0'] = 'font-weight:normal;opacity:1;color:#' + colors.reset[0] + ';background:#' + colors.reset[1]\n // inverse\n _openTags['7'] = 'color:#' + colors.reset[1] + ';background:#' + colors.reset[0]\n // dark grey\n _openTags['90'] = 'color:#' + colors.darkgrey\n\n for (var code in _styles) {\n var color = _styles[code]\n var oriColor = colors[color] || '000'\n _openTags[code] = 'color:#' + oriColor\n code = parseInt(code)\n _openTags[(code + 10).toString()] = 'background:#' + oriColor\n }\n}\n\nansiHTML.reset()\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjAuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvLi9ub2RlX21vZHVsZXMvYW5zaS1odG1sL2luZGV4LmpzPzRlMWMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gYW5zaUhUTUxcblxuLy8gUmVmZXJlbmNlIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvYW5zaS1yZWdleFxudmFyIF9yZWdBTlNJID0gLyg/Oig/OlxcdTAwMWJcXFspfFxcdTAwOWIpKD86KD86WzAtOV17MSwzfSk/KD86KD86O1swLTldezAsM30pKik/W0EtTXxmLW1dKXxcXHUwMDFiW0EtTV0vXG5cbnZhciBfZGVmQ29sb3JzID0ge1xuICByZXNldDogWydmZmYnLCAnMDAwJ10sIC8vIFtGT1JFR1JPVURfQ09MT1IsIEJBQ0tHUk9VTkRfQ09MT1JdXG4gIGJsYWNrOiAnMDAwJyxcbiAgcmVkOiAnZmYwMDAwJyxcbiAgZ3JlZW46ICcyMDk4MDUnLFxuICB5ZWxsb3c6ICdlOGJmMDMnLFxuICBibHVlOiAnMDAwMGZmJyxcbiAgbWFnZW50YTogJ2ZmMDBmZicsXG4gIGN5YW46ICcwMGZmZWUnLFxuICBsaWdodGdyZXk6ICdmMGYwZjAnLFxuICBkYXJrZ3JleTogJzg4OCdcbn1cbnZhciBfc3R5bGVzID0ge1xuICAzMDogJ2JsYWNrJyxcbiAgMzE6ICdyZWQnLFxuICAzMjogJ2dyZWVuJyxcbiAgMzM6ICd5ZWxsb3cnLFxuICAzNDogJ2JsdWUnLFxuICAzNTogJ21hZ2VudGEnLFxuICAzNjogJ2N5YW4nLFxuICAzNzogJ2xpZ2h0Z3JleSdcbn1cbnZhciBfb3BlblRhZ3MgPSB7XG4gICcxJzogJ2ZvbnQtd2VpZ2h0OmJvbGQnLCAvLyBib2xkXG4gICcyJzogJ29wYWNpdHk6MC41JywgLy8gZGltXG4gICczJzogJzxpPicsIC8vIGl0YWxpY1xuICAnNCc6ICc8dT4nLCAvLyB1bmRlcnNjb3JlXG4gICc4JzogJ2Rpc3BsYXk6bm9uZScsIC8vIGhpZGRlblxuICAnOSc6ICc8ZGVsPicgLy8gZGVsZXRlXG59XG52YXIgX2Nsb3NlVGFncyA9IHtcbiAgJzIzJzogJzwvaT4nLCAvLyByZXNldCBpdGFsaWNcbiAgJzI0JzogJzwvdT4nLCAvLyByZXNldCB1bmRlcnNjb3JlXG4gICcyOSc6ICc8L2RlbD4nIC8vIHJlc2V0IGRlbGV0ZVxufVxuXG47WzAsIDIxLCAyMiwgMjcsIDI4LCAzOSwgNDldLmZvckVhY2goZnVuY3Rpb24gKG4pIHtcbiAgX2Nsb3NlVGFnc1tuXSA9ICc8L3NwYW4+J1xufSlcblxuLyoqXG4gKiBDb252ZXJ0cyB0ZXh0IHdpdGggQU5TSSBjb2xvciBjb2RlcyB0byBIVE1MIG1hcmt1cC5cbiAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0XG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuZnVuY3Rpb24gYW5zaUhUTUwgKHRleHQpIHtcbiAgLy8gUmV0dXJucyB0aGUgdGV4dCBpZiB0aGUgc3RyaW5nIGhhcyBubyBBTlNJIGVzY2FwZSBjb2RlLlxuICBpZiAoIV9yZWdBTlNJLnRlc3QodGV4dCkpIHtcbiAgICByZXR1cm4gdGV4dFxuICB9XG5cbiAgLy8gQ2FjaGUgb3BlbmVkIHNlcXVlbmNlLlxuICB2YXIgYW5zaUNvZGVzID0gW11cbiAgLy8gUmVwbGFjZSB3aXRoIG1hcmt1cC5cbiAgdmFyIHJldCA9IHRleHQucmVwbGFjZSgvXFwwMzNcXFsoXFxkKykqbS9nLCBmdW5jdGlvbiAobWF0Y2gsIHNlcSkge1xuICAgIHZhciBvdCA9IF9vcGVuVGFnc1tzZXFdXG4gICAgaWYgKG90KSB7XG4gICAgICAvLyBJZiBjdXJyZW50IHNlcXVlbmNlIGhhcyBiZWVuIG9wZW5lZCwgY2xvc2UgaXQuXG4gICAgICBpZiAoISF+YW5zaUNvZGVzLmluZGV4T2Yoc2VxKSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWV4dHJhLWJvb2xlYW4tY2FzdFxuICAgICAgICBhbnNpQ29kZXMucG9wKClcbiAgICAgICAgcmV0dXJuICc8L3NwYW4+J1xuICAgICAgfVxuICAgICAgLy8gT3BlbiB0YWcuXG4gICAgICBhbnNpQ29kZXMucHVzaChzZXEpXG4gICAgICByZXR1cm4gb3RbMF0gPT09ICc8JyA/IG90IDogJzxzcGFuIHN0eWxlPVwiJyArIG90ICsgJztcIj4nXG4gICAgfVxuXG4gICAgdmFyIGN0ID0gX2Nsb3NlVGFnc1tzZXFdXG4gICAgaWYgKGN0KSB7XG4gICAgICAvLyBQb3Agc2VxdWVuY2VcbiAgICAgIGFuc2lDb2Rlcy5wb3AoKVxuICAgICAgcmV0dXJuIGN0XG4gICAgfVxuICAgIHJldHVybiAnJ1xuICB9KVxuXG4gIC8vIE1ha2Ugc3VyZSB0YWdzIGFyZSBjbG9zZWQuXG4gIHZhciBsID0gYW5zaUNvZGVzLmxlbmd0aFxuICA7KGwgPiAwKSAmJiAocmV0ICs9IEFycmF5KGwgKyAxKS5qb2luKCc8L3NwYW4+JykpXG5cbiAgcmV0dXJuIHJldFxufVxuXG4vKipcbiAqIEN1c3RvbWl6ZSBjb2xvcnMuXG4gKiBAcGFyYW0ge09iamVjdH0gY29sb3JzIHJlZmVyZW5jZSB0byBfZGVmQ29sb3JzXG4gKi9cbmFuc2lIVE1MLnNldENvbG9ycyA9IGZ1bmN0aW9uIChjb2xvcnMpIHtcbiAgaWYgKHR5cGVvZiBjb2xvcnMgIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgY29sb3JzYCBwYXJhbWV0ZXIgbXVzdCBiZSBhbiBPYmplY3QuJylcbiAgfVxuXG4gIHZhciBfZmluYWxDb2xvcnMgPSB7fVxuICBmb3IgKHZhciBrZXkgaW4gX2RlZkNvbG9ycykge1xuICAgIHZhciBoZXggPSBjb2xvcnMuaGFzT3duUHJvcGVydHkoa2V5KSA/IGNvbG9yc1trZXldIDogbnVsbFxuICAgIGlmICghaGV4KSB7XG4gICAgICBfZmluYWxDb2xvcnNba2V5XSA9IF9kZWZDb2xvcnNba2V5XVxuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKCdyZXNldCcgPT09IGtleSkge1xuICAgICAgaWYgKHR5cGVvZiBoZXggPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGhleCA9IFtoZXhdXG4gICAgICB9XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaGV4KSB8fCBoZXgubGVuZ3RoID09PSAwIHx8IGhleC5zb21lKGZ1bmN0aW9uIChoKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgaCAhPT0gJ3N0cmluZydcbiAgICAgIH0pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHZhbHVlIG9mIGAnICsga2V5ICsgJ2AgcHJvcGVydHkgbXVzdCBiZSBhbiBBcnJheSBhbmQgZWFjaCBpdGVtIGNvdWxkIG9ubHkgYmUgYSBoZXggc3RyaW5nLCBlLmcuOiBGRjAwMDAnKVxuICAgICAgfVxuICAgICAgdmFyIGRlZkhleENvbG9yID0gX2RlZkNvbG9yc1trZXldXG4gICAgICBpZiAoIWhleFswXSkge1xuICAgICAgICBoZXhbMF0gPSBkZWZIZXhDb2xvclswXVxuICAgICAgfVxuICAgICAgaWYgKGhleC5sZW5ndGggPT09IDEgfHwgIWhleFsxXSkge1xuICAgICAgICBoZXggPSBbaGV4WzBdXVxuICAgICAgICBoZXgucHVzaChkZWZIZXhDb2xvclsxXSlcbiAgICAgIH1cblxuICAgICAgaGV4ID0gaGV4LnNsaWNlKDAsIDIpXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgaGV4ICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgdmFsdWUgb2YgYCcgKyBrZXkgKyAnYCBwcm9wZXJ0eSBtdXN0IGJlIGEgaGV4IHN0cmluZywgZS5nLjogRkYwMDAwJylcbiAgICB9XG4gICAgX2ZpbmFsQ29sb3JzW2tleV0gPSBoZXhcbiAgfVxuICBfc2V0VGFncyhfZmluYWxDb2xvcnMpXG59XG5cbi8qKlxuICogUmVzZXQgY29sb3JzLlxuICovXG5hbnNpSFRNTC5yZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgX3NldFRhZ3MoX2RlZkNvbG9ycylcbn1cblxuLyoqXG4gKiBFeHBvc2UgdGFncywgaW5jbHVkaW5nIG9wZW4gYW5kIGNsb3NlLlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuYW5zaUhUTUwudGFncyA9IHt9XG5cbmlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFuc2lIVE1MLnRhZ3MsICdvcGVuJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gX29wZW5UYWdzIH1cbiAgfSlcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFuc2lIVE1MLnRhZ3MsICdjbG9zZScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9jbG9zZVRhZ3MgfVxuICB9KVxufSBlbHNlIHtcbiAgYW5zaUhUTUwudGFncy5vcGVuID0gX29wZW5UYWdzXG4gIGFuc2lIVE1MLnRhZ3MuY2xvc2UgPSBfY2xvc2VUYWdzXG59XG5cbmZ1bmN0aW9uIF9zZXRUYWdzIChjb2xvcnMpIHtcbiAgLy8gcmVzZXQgYWxsXG4gIF9vcGVuVGFnc1snMCddID0gJ2ZvbnQtd2VpZ2h0Om5vcm1hbDtvcGFjaXR5OjE7Y29sb3I6IycgKyBjb2xvcnMucmVzZXRbMF0gKyAnO2JhY2tncm91bmQ6IycgKyBjb2xvcnMucmVzZXRbMV1cbiAgLy8gaW52ZXJzZVxuICBfb3BlblRhZ3NbJzcnXSA9ICdjb2xvcjojJyArIGNvbG9ycy5yZXNldFsxXSArICc7YmFja2dyb3VuZDojJyArIGNvbG9ycy5yZXNldFswXVxuICAvLyBkYXJrIGdyZXlcbiAgX29wZW5UYWdzWyc5MCddID0gJ2NvbG9yOiMnICsgY29sb3JzLmRhcmtncmV5XG5cbiAgZm9yICh2YXIgY29kZSBpbiBfc3R5bGVzKSB7XG4gICAgdmFyIGNvbG9yID0gX3N0eWxlc1tjb2RlXVxuICAgIHZhciBvcmlDb2xvciA9IGNvbG9yc1tjb2xvcl0gfHwgJzAwMCdcbiAgICBfb3BlblRhZ3NbY29kZV0gPSAnY29sb3I6IycgKyBvcmlDb2xvclxuICAgIGNvZGUgPSBwYXJzZUludChjb2RlKVxuICAgIF9vcGVuVGFnc1soY29kZSArIDEwKS50b1N0cmluZygpXSA9ICdiYWNrZ3JvdW5kOiMnICsgb3JpQ29sb3JcbiAgfVxufVxuXG5hbnNpSFRNTC5yZXNldCgpXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\n// The error overlay is inspired (and mostly copied) from Create React App (https://github.com/facebookincubator/create-react-app)\n// They, in turn, got inspired by webpack-hot-middleware (https://github.com/glenjamin/webpack-hot-middleware).\n\nvar ansiHTML = __webpack_require__(20);\nvar Entities = __webpack_require__(19).AllHtmlEntities;\n\nvar entities = new Entities();\n\nvar colors = {\n reset: ['transparent', 'transparent'],\n black: '181818',\n red: 'E36049',\n green: 'B3CB74',\n yellow: 'FFD080',\n blue: '7CAFC2',\n magenta: '7FACCA',\n cyan: 'C3C2EF',\n lightgrey: 'EBE7E3',\n darkgrey: '6D7891'\n};\nansiHTML.setColors(colors);\n\nfunction createOverlayIframe(onIframeLoad) {\n var iframe = document.createElement('iframe');\n iframe.id = 'webpack-dev-server-client-overlay';\n iframe.src = 'about:blank';\n iframe.style.position = 'fixed';\n iframe.style.left = 0;\n iframe.style.top = 0;\n iframe.style.right = 0;\n iframe.style.bottom = 0;\n iframe.style.width = '100vw';\n iframe.style.height = '100vh';\n iframe.style.border = 'none';\n iframe.style.zIndex = 9999999999;\n iframe.onload = onIframeLoad;\n return iframe;\n}\n\nfunction addOverlayDivTo(iframe) {\n var div = iframe.contentDocument.createElement('div');\n div.id = 'webpack-dev-server-client-overlay-div';\n div.style.position = 'fixed';\n div.style.boxSizing = 'border-box';\n div.style.left = 0;\n div.style.top = 0;\n div.style.right = 0;\n div.style.bottom = 0;\n div.style.width = '100vw';\n div.style.height = '100vh';\n div.style.backgroundColor = 'rgba(0, 0, 0, 0.85)';\n div.style.color = '#E8E8E8';\n div.style.fontFamily = 'Menlo, Consolas, monospace';\n div.style.fontSize = 'large';\n div.style.padding = '2rem';\n div.style.lineHeight = '1.2';\n div.style.whiteSpace = 'pre-wrap';\n div.style.overflow = 'auto';\n iframe.contentDocument.body.appendChild(div);\n return div;\n}\n\nvar overlayIframe = null;\nvar overlayDiv = null;\nvar lastOnOverlayDivReady = null;\n\nfunction ensureOverlayDivExists(onOverlayDivReady) {\n if (overlayDiv) {\n // Everything is ready, call the callback right away.\n onOverlayDivReady(overlayDiv);\n return;\n }\n\n // Creating an iframe may be asynchronous so we'll schedule the callback.\n // In case of multiple calls, last callback wins.\n lastOnOverlayDivReady = onOverlayDivReady;\n\n if (overlayIframe) {\n // We're already creating it.\n return;\n }\n\n // Create iframe and, when it is ready, a div inside it.\n overlayIframe = createOverlayIframe(function () {\n overlayDiv = addOverlayDivTo(overlayIframe);\n // Now we can talk!\n lastOnOverlayDivReady(overlayDiv);\n });\n\n // Zalgo alert: onIframeLoad() will be called either synchronously\n // or asynchronously depending on the browser.\n // We delay adding it so `overlayIframe` is set when `onIframeLoad` fires.\n document.body.appendChild(overlayIframe);\n}\n\nfunction showMessageOverlay(message) {\n ensureOverlayDivExists(function (div) {\n // Make it look similar to our terminal.\n div.innerHTML = 'Failed to compile.

' + ansiHTML(entities.encode(message));\n });\n}\n\nfunction destroyErrorOverlay() {\n if (!overlayDiv) {\n // It is not there in the first place.\n return;\n }\n\n // Clean up and reset internal state.\n document.body.removeChild(overlayIframe);\n overlayDiv = null;\n overlayIframe = null;\n lastOnOverlayDivReady = null;\n}\n\n// Successful compilation.\nexports.clear = function handleSuccess() {\n destroyErrorOverlay();\n};\n\n// Compilation with errors (e.g. syntax error or missing modules).\nexports.showMessage = function handleMessage(messages) {\n showMessageOverlay(messages[0]);\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMjEuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Ecml2ZXIvKHdlYnBhY2spLWRldi1zZXJ2ZXIvY2xpZW50L292ZXJsYXkuanM/MmFjNiJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8vIFRoZSBlcnJvciBvdmVybGF5IGlzIGluc3BpcmVkIChhbmQgbW9zdGx5IGNvcGllZCkgZnJvbSBDcmVhdGUgUmVhY3QgQXBwIChodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2tpbmN1YmF0b3IvY3JlYXRlLXJlYWN0LWFwcClcbi8vIFRoZXksIGluIHR1cm4sIGdvdCBpbnNwaXJlZCBieSB3ZWJwYWNrLWhvdC1taWRkbGV3YXJlIChodHRwczovL2dpdGh1Yi5jb20vZ2xlbmphbWluL3dlYnBhY2staG90LW1pZGRsZXdhcmUpLlxuXG52YXIgYW5zaUhUTUwgPSByZXF1aXJlKCdhbnNpLWh0bWwnKTtcbnZhciBFbnRpdGllcyA9IHJlcXVpcmUoJ2h0bWwtZW50aXRpZXMnKS5BbGxIdG1sRW50aXRpZXM7XG5cbnZhciBlbnRpdGllcyA9IG5ldyBFbnRpdGllcygpO1xuXG52YXIgY29sb3JzID0ge1xuICByZXNldDogWyd0cmFuc3BhcmVudCcsICd0cmFuc3BhcmVudCddLFxuICBibGFjazogJzE4MTgxOCcsXG4gIHJlZDogJ0UzNjA0OScsXG4gIGdyZWVuOiAnQjNDQjc0JyxcbiAgeWVsbG93OiAnRkZEMDgwJyxcbiAgYmx1ZTogJzdDQUZDMicsXG4gIG1hZ2VudGE6ICc3RkFDQ0EnLFxuICBjeWFuOiAnQzNDMkVGJyxcbiAgbGlnaHRncmV5OiAnRUJFN0UzJyxcbiAgZGFya2dyZXk6ICc2RDc4OTEnXG59O1xuYW5zaUhUTUwuc2V0Q29sb3JzKGNvbG9ycyk7XG5cbmZ1bmN0aW9uIGNyZWF0ZU92ZXJsYXlJZnJhbWUob25JZnJhbWVMb2FkKSB7XG4gIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgaWZyYW1lLmlkID0gJ3dlYnBhY2stZGV2LXNlcnZlci1jbGllbnQtb3ZlcmxheSc7XG4gIGlmcmFtZS5zcmMgPSAnYWJvdXQ6YmxhbmsnO1xuICBpZnJhbWUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuICBpZnJhbWUuc3R5bGUubGVmdCA9IDA7XG4gIGlmcmFtZS5zdHlsZS50b3AgPSAwO1xuICBpZnJhbWUuc3R5bGUucmlnaHQgPSAwO1xuICBpZnJhbWUuc3R5bGUuYm90dG9tID0gMDtcbiAgaWZyYW1lLnN0eWxlLndpZHRoID0gJzEwMHZ3JztcbiAgaWZyYW1lLnN0eWxlLmhlaWdodCA9ICcxMDB2aCc7XG4gIGlmcmFtZS5zdHlsZS5ib3JkZXIgPSAnbm9uZSc7XG4gIGlmcmFtZS5zdHlsZS56SW5kZXggPSA5OTk5OTk5OTk5O1xuICBpZnJhbWUub25sb2FkID0gb25JZnJhbWVMb2FkO1xuICByZXR1cm4gaWZyYW1lO1xufVxuXG5mdW5jdGlvbiBhZGRPdmVybGF5RGl2VG8oaWZyYW1lKSB7XG4gIHZhciBkaXYgPSBpZnJhbWUuY29udGVudERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuaWQgPSAnd2VicGFjay1kZXYtc2VydmVyLWNsaWVudC1vdmVybGF5LWRpdic7XG4gIGRpdi5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG4gIGRpdi5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCc7XG4gIGRpdi5zdHlsZS5sZWZ0ID0gMDtcbiAgZGl2LnN0eWxlLnRvcCA9IDA7XG4gIGRpdi5zdHlsZS5yaWdodCA9IDA7XG4gIGRpdi5zdHlsZS5ib3R0b20gPSAwO1xuICBkaXYuc3R5bGUud2lkdGggPSAnMTAwdncnO1xuICBkaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcbiAgZGl2LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDAsIDAsIDAsIDAuODUpJztcbiAgZGl2LnN0eWxlLmNvbG9yID0gJyNFOEU4RTgnO1xuICBkaXYuc3R5bGUuZm9udEZhbWlseSA9ICdNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSc7XG4gIGRpdi5zdHlsZS5mb250U2l6ZSA9ICdsYXJnZSc7XG4gIGRpdi5zdHlsZS5wYWRkaW5nID0gJzJyZW0nO1xuICBkaXYuc3R5bGUubGluZUhlaWdodCA9ICcxLjInO1xuICBkaXYuc3R5bGUud2hpdGVTcGFjZSA9ICdwcmUtd3JhcCc7XG4gIGRpdi5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gIHJldHVybiBkaXY7XG59XG5cbnZhciBvdmVybGF5SWZyYW1lID0gbnVsbDtcbnZhciBvdmVybGF5RGl2ID0gbnVsbDtcbnZhciBsYXN0T25PdmVybGF5RGl2UmVhZHkgPSBudWxsO1xuXG5mdW5jdGlvbiBlbnN1cmVPdmVybGF5RGl2RXhpc3RzKG9uT3ZlcmxheURpdlJlYWR5KSB7XG4gIGlmIChvdmVybGF5RGl2KSB7XG4gICAgLy8gRXZlcnl0aGluZyBpcyByZWFkeSwgY2FsbCB0aGUgY2FsbGJhY2sgcmlnaHQgYXdheS5cbiAgICBvbk92ZXJsYXlEaXZSZWFkeShvdmVybGF5RGl2KTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBDcmVhdGluZyBhbiBpZnJhbWUgbWF5IGJlIGFzeW5jaHJvbm91cyBzbyB3ZSdsbCBzY2hlZHVsZSB0aGUgY2FsbGJhY2suXG4gIC8vIEluIGNhc2Ugb2YgbXVsdGlwbGUgY2FsbHMsIGxhc3QgY2FsbGJhY2sgd2lucy5cbiAgbGFzdE9uT3ZlcmxheURpdlJlYWR5ID0gb25PdmVybGF5RGl2UmVhZHk7XG5cbiAgaWYgKG92ZXJsYXlJZnJhbWUpIHtcbiAgICAvLyBXZSdyZSBhbHJlYWR5IGNyZWF0aW5nIGl0LlxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIENyZWF0ZSBpZnJhbWUgYW5kLCB3aGVuIGl0IGlzIHJlYWR5LCBhIGRpdiBpbnNpZGUgaXQuXG4gIG92ZXJsYXlJZnJhbWUgPSBjcmVhdGVPdmVybGF5SWZyYW1lKGZ1bmN0aW9uICgpIHtcbiAgICBvdmVybGF5RGl2ID0gYWRkT3ZlcmxheURpdlRvKG92ZXJsYXlJZnJhbWUpO1xuICAgIC8vIE5vdyB3ZSBjYW4gdGFsayFcbiAgICBsYXN0T25PdmVybGF5RGl2UmVhZHkob3ZlcmxheURpdik7XG4gIH0pO1xuXG4gIC8vIFphbGdvIGFsZXJ0OiBvbklmcmFtZUxvYWQoKSB3aWxsIGJlIGNhbGxlZCBlaXRoZXIgc3luY2hyb25vdXNseVxuICAvLyBvciBhc3luY2hyb25vdXNseSBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXIuXG4gIC8vIFdlIGRlbGF5IGFkZGluZyBpdCBzbyBgb3ZlcmxheUlmcmFtZWAgaXMgc2V0IHdoZW4gYG9uSWZyYW1lTG9hZGAgZmlyZXMuXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3ZlcmxheUlmcmFtZSk7XG59XG5cbmZ1bmN0aW9uIHNob3dNZXNzYWdlT3ZlcmxheShtZXNzYWdlKSB7XG4gIGVuc3VyZU92ZXJsYXlEaXZFeGlzdHMoZnVuY3Rpb24gKGRpdikge1xuICAgIC8vIE1ha2UgaXQgbG9vayBzaW1pbGFyIHRvIG91ciB0ZXJtaW5hbC5cbiAgICBkaXYuaW5uZXJIVE1MID0gJzxzcGFuIHN0eWxlPVwiY29sb3I6ICMnICsgY29sb3JzLnJlZCArICdcIj5GYWlsZWQgdG8gY29tcGlsZS48L3NwYW4+PGJyPjxicj4nICsgYW5zaUhUTUwoZW50aXRpZXMuZW5jb2RlKG1lc3NhZ2UpKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGRlc3Ryb3lFcnJvck92ZXJsYXkoKSB7XG4gIGlmICghb3ZlcmxheURpdikge1xuICAgIC8vIEl0IGlzIG5vdCB0aGVyZSBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gQ2xlYW4gdXAgYW5kIHJlc2V0IGludGVybmFsIHN0YXRlLlxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG92ZXJsYXlJZnJhbWUpO1xuICBvdmVybGF5RGl2ID0gbnVsbDtcbiAgb3ZlcmxheUlmcmFtZSA9IG51bGw7XG4gIGxhc3RPbk92ZXJsYXlEaXZSZWFkeSA9IG51bGw7XG59XG5cbi8vIFN1Y2Nlc3NmdWwgY29tcGlsYXRpb24uXG5leHBvcnRzLmNsZWFyID0gZnVuY3Rpb24gaGFuZGxlU3VjY2VzcygpIHtcbiAgZGVzdHJveUVycm9yT3ZlcmxheSgpO1xufTtcblxuLy8gQ29tcGlsYXRpb24gd2l0aCBlcnJvcnMgKGUuZy4gc3ludGF4IGVycm9yIG9yIG1pc3NpbmcgbW9kdWxlcykuXG5leHBvcnRzLnNob3dNZXNzYWdlID0gZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShtZXNzYWdlcykge1xuICBzaG93TWVzc2FnZU92ZXJsYXkobWVzc2FnZXNbMF0pO1xufTsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///21\n")},function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(global) {var require;var require;/* sockjs-client v1.1.4 | http://sockjs.org | MIT license */\n(function(f){if(true){module.exports=f()}else { var g; }})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return require(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1) {\n // Make a copy so as not to interfere with a current dispatchEvent.\n this._listeners[eventType] = arr.slice(0, idx).concat(arr.slice(idx + 1));\n } else {\n delete this._listeners[eventType];\n }\n return;\n }\n};\n\nEventTarget.prototype.dispatchEvent = function() {\n var event = arguments[0];\n var t = event.type;\n // equivalent of Array.prototype.slice.call(arguments, 0);\n var args = arguments.length === 1 ? [event] : Array.apply(null, arguments);\n // TODO: This doesn't match the real behavior; per spec, onfoo get\n // their place in line from the /first/ time they're set from\n // non-null. Although WebKit bumps it to the end every time it's\n // set.\n if (this['on' + t]) {\n this['on' + t].apply(this, args);\n }\n if (t in this._listeners) {\n // Grab a reference to the listeners list. removeEventListener may alter the list.\n var listeners = this._listeners[t];\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].apply(this, args);\n }\n }\n};\n\nmodule.exports = EventTarget;\n\n},{}],6:[function(require,module,exports){\n'use strict';\n\nvar inherits = require('inherits')\n , Event = require('./event')\n ;\n\nfunction TransportMessageEvent(data) {\n Event.call(this);\n this.initEvent('message', false, false);\n this.data = data;\n}\n\ninherits(TransportMessageEvent, Event);\n\nmodule.exports = TransportMessageEvent;\n\n},{\"./event\":4,\"inherits\":57}],7:[function(require,module,exports){\n'use strict';\n\nvar JSON3 = require('json3')\n , iframeUtils = require('./utils/iframe')\n ;\n\nfunction FacadeJS(transport) {\n this._transport = transport;\n transport.on('message', this._transportMessage.bind(this));\n transport.on('close', this._transportClose.bind(this));\n}\n\nFacadeJS.prototype._transportClose = function(code, reason) {\n iframeUtils.postMessage('c', JSON3.stringify([code, reason]));\n};\nFacadeJS.prototype._transportMessage = function(frame) {\n iframeUtils.postMessage('t', frame);\n};\nFacadeJS.prototype._send = function(data) {\n this._transport.send(data);\n};\nFacadeJS.prototype._close = function() {\n this._transport.close();\n this._transport.removeAllListeners();\n};\n\nmodule.exports = FacadeJS;\n\n},{\"./utils/iframe\":47,\"json3\":58}],8:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar urlUtils = require('./utils/url')\n , eventUtils = require('./utils/event')\n , JSON3 = require('json3')\n , FacadeJS = require('./facade')\n , InfoIframeReceiver = require('./info-iframe-receiver')\n , iframeUtils = require('./utils/iframe')\n , loc = require('./location')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:iframe-bootstrap');\n}\n\nmodule.exports = function(SockJS, availableTransports) {\n var transportMap = {};\n availableTransports.forEach(function(at) {\n if (at.facadeTransport) {\n transportMap[at.facadeTransport.transportName] = at.facadeTransport;\n }\n });\n\n // hard-coded for the info iframe\n // TODO see if we can make this more dynamic\n transportMap[InfoIframeReceiver.transportName] = InfoIframeReceiver;\n var parentOrigin;\n\n /* eslint-disable camelcase */\n SockJS.bootstrap_iframe = function() {\n /* eslint-enable camelcase */\n var facade;\n iframeUtils.currentWindowId = loc.hash.slice(1);\n var onMessage = function(e) {\n if (e.source !== parent) {\n return;\n }\n if (typeof parentOrigin === 'undefined') {\n parentOrigin = e.origin;\n }\n if (e.origin !== parentOrigin) {\n return;\n }\n\n var iframeMessage;\n try {\n iframeMessage = JSON3.parse(e.data);\n } catch (ignored) {\n debug('bad json', e.data);\n return;\n }\n\n if (iframeMessage.windowId !== iframeUtils.currentWindowId) {\n return;\n }\n switch (iframeMessage.type) {\n case 's':\n var p;\n try {\n p = JSON3.parse(iframeMessage.data);\n } catch (ignored) {\n debug('bad json', iframeMessage.data);\n break;\n }\n var version = p[0];\n var transport = p[1];\n var transUrl = p[2];\n var baseUrl = p[3];\n debug(version, transport, transUrl, baseUrl);\n // change this to semver logic\n if (version !== SockJS.version) {\n throw new Error('Incompatible SockJS! Main site uses:' +\n ' \"' + version + '\", the iframe:' +\n ' \"' + SockJS.version + '\".');\n }\n\n if (!urlUtils.isOriginEqual(transUrl, loc.href) ||\n !urlUtils.isOriginEqual(baseUrl, loc.href)) {\n throw new Error('Can\\'t connect to different domain from within an ' +\n 'iframe. (' + loc.href + ', ' + transUrl + ', ' + baseUrl + ')');\n }\n facade = new FacadeJS(new transportMap[transport](transUrl, baseUrl));\n break;\n case 'm':\n facade._send(iframeMessage.data);\n break;\n case 'c':\n if (facade) {\n facade._close();\n }\n facade = null;\n break;\n }\n };\n\n eventUtils.attachEvent('message', onMessage);\n\n // Start\n iframeUtils.postMessage('s');\n };\n};\n\n}).call(this,{ env: {} })\n\n},{\"./facade\":7,\"./info-iframe-receiver\":10,\"./location\":13,\"./utils/event\":46,\"./utils/iframe\":47,\"./utils/url\":52,\"debug\":55,\"json3\":58}],9:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , JSON3 = require('json3')\n , objectUtils = require('./utils/object')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-ajax');\n}\n\nfunction InfoAjax(url, AjaxObject) {\n EventEmitter.call(this);\n\n var self = this;\n var t0 = +new Date();\n this.xo = new AjaxObject('GET', url);\n\n this.xo.once('finish', function(status, text) {\n var info, rtt;\n if (status === 200) {\n rtt = (+new Date()) - t0;\n if (text) {\n try {\n info = JSON3.parse(text);\n } catch (e) {\n debug('bad json', text);\n }\n }\n\n if (!objectUtils.isObject(info)) {\n info = {};\n }\n }\n self.emit('finish', info, rtt);\n self.removeAllListeners();\n });\n}\n\ninherits(InfoAjax, EventEmitter);\n\nInfoAjax.prototype.close = function() {\n this.removeAllListeners();\n this.xo.close();\n};\n\nmodule.exports = InfoAjax;\n\n}).call(this,{ env: {} })\n\n},{\"./utils/object\":49,\"debug\":55,\"events\":3,\"inherits\":57,\"json3\":58}],10:[function(require,module,exports){\n'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , JSON3 = require('json3')\n , XHRLocalObject = require('./transport/sender/xhr-local')\n , InfoAjax = require('./info-ajax')\n ;\n\nfunction InfoReceiverIframe(transUrl) {\n var self = this;\n EventEmitter.call(this);\n\n this.ir = new InfoAjax(transUrl, XHRLocalObject);\n this.ir.once('finish', function(info, rtt) {\n self.ir = null;\n self.emit('message', JSON3.stringify([info, rtt]));\n });\n}\n\ninherits(InfoReceiverIframe, EventEmitter);\n\nInfoReceiverIframe.transportName = 'iframe-info-receiver';\n\nInfoReceiverIframe.prototype.close = function() {\n if (this.ir) {\n this.ir.close();\n this.ir = null;\n }\n this.removeAllListeners();\n};\n\nmodule.exports = InfoReceiverIframe;\n\n},{\"./info-ajax\":9,\"./transport/sender/xhr-local\":37,\"events\":3,\"inherits\":57,\"json3\":58}],11:[function(require,module,exports){\n(function (process,global){\n'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , JSON3 = require('json3')\n , utils = require('./utils/event')\n , IframeTransport = require('./transport/iframe')\n , InfoReceiverIframe = require('./info-iframe-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-iframe');\n}\n\nfunction InfoIframe(baseUrl, url) {\n var self = this;\n EventEmitter.call(this);\n\n var go = function() {\n var ifr = self.ifr = new IframeTransport(InfoReceiverIframe.transportName, url, baseUrl);\n\n ifr.once('message', function(msg) {\n if (msg) {\n var d;\n try {\n d = JSON3.parse(msg);\n } catch (e) {\n debug('bad json', msg);\n self.emit('finish');\n self.close();\n return;\n }\n\n var info = d[0], rtt = d[1];\n self.emit('finish', info, rtt);\n }\n self.close();\n });\n\n ifr.once('close', function() {\n self.emit('finish');\n self.close();\n });\n };\n\n // TODO this seems the same as the 'needBody' from transports\n if (!global.document.body) {\n utils.attachEvent('load', go);\n } else {\n go();\n }\n}\n\ninherits(InfoIframe, EventEmitter);\n\nInfoIframe.enabled = function() {\n return IframeTransport.enabled();\n};\n\nInfoIframe.prototype.close = function() {\n if (this.ifr) {\n this.ifr.close();\n }\n this.removeAllListeners();\n this.ifr = null;\n};\n\nmodule.exports = InfoIframe;\n\n}).call(this,{ env: {} },typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"./info-iframe-receiver\":10,\"./transport/iframe\":22,\"./utils/event\":46,\"debug\":55,\"events\":3,\"inherits\":57,\"json3\":58}],12:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , urlUtils = require('./utils/url')\n , XDR = require('./transport/sender/xdr')\n , XHRCors = require('./transport/sender/xhr-cors')\n , XHRLocal = require('./transport/sender/xhr-local')\n , XHRFake = require('./transport/sender/xhr-fake')\n , InfoIframe = require('./info-iframe')\n , InfoAjax = require('./info-ajax')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-receiver');\n}\n\nfunction InfoReceiver(baseUrl, urlInfo) {\n debug(baseUrl);\n var self = this;\n EventEmitter.call(this);\n\n setTimeout(function() {\n self.doXhr(baseUrl, urlInfo);\n }, 0);\n}\n\ninherits(InfoReceiver, EventEmitter);\n\n// TODO this is currently ignoring the list of available transports and the whitelist\n\nInfoReceiver._getReceiver = function(baseUrl, url, urlInfo) {\n // determine method of CORS support (if needed)\n if (urlInfo.sameOrigin) {\n return new InfoAjax(url, XHRLocal);\n }\n if (XHRCors.enabled) {\n return new InfoAjax(url, XHRCors);\n }\n if (XDR.enabled && urlInfo.sameScheme) {\n return new InfoAjax(url, XDR);\n }\n if (InfoIframe.enabled()) {\n return new InfoIframe(baseUrl, url);\n }\n return new InfoAjax(url, XHRFake);\n};\n\nInfoReceiver.prototype.doXhr = function(baseUrl, urlInfo) {\n var self = this\n , url = urlUtils.addPath(baseUrl, '/info')\n ;\n debug('doXhr', url);\n\n this.xo = InfoReceiver._getReceiver(baseUrl, url, urlInfo);\n\n this.timeoutRef = setTimeout(function() {\n debug('timeout');\n self._cleanup(false);\n self.emit('finish');\n }, InfoReceiver.timeout);\n\n this.xo.once('finish', function(info, rtt) {\n debug('finish', info, rtt);\n self._cleanup(true);\n self.emit('finish', info, rtt);\n });\n};\n\nInfoReceiver.prototype._cleanup = function(wasClean) {\n debug('_cleanup');\n clearTimeout(this.timeoutRef);\n this.timeoutRef = null;\n if (!wasClean && this.xo) {\n this.xo.close();\n }\n this.xo = null;\n};\n\nInfoReceiver.prototype.close = function() {\n debug('close');\n this.removeAllListeners();\n this._cleanup(false);\n};\n\nInfoReceiver.timeout = 8000;\n\nmodule.exports = InfoReceiver;\n\n}).call(this,{ env: {} })\n\n},{\"./info-ajax\":9,\"./info-iframe\":11,\"./transport/sender/xdr\":34,\"./transport/sender/xhr-cors\":35,\"./transport/sender/xhr-fake\":36,\"./transport/sender/xhr-local\":37,\"./utils/url\":52,\"debug\":55,\"events\":3,\"inherits\":57}],13:[function(require,module,exports){\n(function (global){\n'use strict';\n\nmodule.exports = global.location || {\n origin: 'http://localhost:80'\n, protocol: 'http'\n, host: 'localhost'\n, port: 80\n, href: 'http://localhost/'\n, hash: ''\n};\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],14:[function(require,module,exports){\n(function (process,global){\n'use strict';\n\nrequire('./shims');\n\nvar URL = require('url-parse')\n , inherits = require('inherits')\n , JSON3 = require('json3')\n , random = require('./utils/random')\n , escape = require('./utils/escape')\n , urlUtils = require('./utils/url')\n , eventUtils = require('./utils/event')\n , transport = require('./utils/transport')\n , objectUtils = require('./utils/object')\n , browser = require('./utils/browser')\n , log = require('./utils/log')\n , Event = require('./event/event')\n , EventTarget = require('./event/eventtarget')\n , loc = require('./location')\n , CloseEvent = require('./event/close')\n , TransportMessageEvent = require('./event/trans-message')\n , InfoReceiver = require('./info-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:main');\n}\n\nvar transports;\n\n// follow constructor steps defined at http://dev.w3.org/html5/websockets/#the-websocket-interface\nfunction SockJS(url, protocols, options) {\n if (!(this instanceof SockJS)) {\n return new SockJS(url, protocols, options);\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'SockJS: 1 argument required, but only 0 present\");\n }\n EventTarget.call(this);\n\n this.readyState = SockJS.CONNECTING;\n this.extensions = '';\n this.protocol = '';\n\n // non-standard extension\n options = options || {};\n if (options.protocols_whitelist) {\n log.warn(\"'protocols_whitelist' is DEPRECATED. Use 'transports' instead.\");\n }\n this._transportsWhitelist = options.transports;\n this._transportOptions = options.transportOptions || {};\n\n var sessionId = options.sessionId || 8;\n if (typeof sessionId === 'function') {\n this._generateSessionId = sessionId;\n } else if (typeof sessionId === 'number') {\n this._generateSessionId = function() {\n return random.string(sessionId);\n };\n } else {\n throw new TypeError('If sessionId is used in the options, it needs to be a number or a function.');\n }\n\n this._server = options.server || random.numberString(1000);\n\n // Step 1 of WS spec - parse and validate the url. Issue #8\n var parsedUrl = new URL(url);\n if (!parsedUrl.host || !parsedUrl.protocol) {\n throw new SyntaxError(\"The URL '\" + url + \"' is invalid\");\n } else if (parsedUrl.hash) {\n throw new SyntaxError('The URL must not contain a fragment');\n } else if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new SyntaxError(\"The URL's scheme must be either 'http:' or 'https:'. '\" + parsedUrl.protocol + \"' is not allowed.\");\n }\n\n var secure = parsedUrl.protocol === 'https:';\n // Step 2 - don't allow secure origin with an insecure protocol\n if (loc.protocol === 'https' && !secure) {\n throw new Error('SecurityError: An insecure SockJS connection may not be initiated from a page loaded over HTTPS');\n }\n\n // Step 3 - check port access - no need here\n // Step 4 - parse protocols argument\n if (!protocols) {\n protocols = [];\n } else if (!Array.isArray(protocols)) {\n protocols = [protocols];\n }\n\n // Step 5 - check protocols argument\n var sortedProtocols = protocols.sort();\n sortedProtocols.forEach(function(proto, i) {\n if (!proto) {\n throw new SyntaxError(\"The protocols entry '\" + proto + \"' is invalid.\");\n }\n if (i < (sortedProtocols.length - 1) && proto === sortedProtocols[i + 1]) {\n throw new SyntaxError(\"The protocols entry '\" + proto + \"' is duplicated.\");\n }\n });\n\n // Step 6 - convert origin\n var o = urlUtils.getOrigin(loc.href);\n this._origin = o ? o.toLowerCase() : null;\n\n // remove the trailing slash\n parsedUrl.set('pathname', parsedUrl.pathname.replace(/\\/+$/, ''));\n\n // store the sanitized url\n this.url = parsedUrl.href;\n debug('using url', this.url);\n\n // Step 7 - start connection in background\n // obtain server info\n // http://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html#section-26\n this._urlInfo = {\n nullOrigin: !browser.hasDomain()\n , sameOrigin: urlUtils.isOriginEqual(this.url, loc.href)\n , sameScheme: urlUtils.isSchemeEqual(this.url, loc.href)\n };\n\n this._ir = new InfoReceiver(this.url, this._urlInfo);\n this._ir.once('finish', this._receiveInfo.bind(this));\n}\n\ninherits(SockJS, EventTarget);\n\nfunction userSetCode(code) {\n return code === 1000 || (code >= 3000 && code <= 4999);\n}\n\nSockJS.prototype.close = function(code, reason) {\n // Step 1\n if (code && !userSetCode(code)) {\n throw new Error('InvalidAccessError: Invalid code');\n }\n // Step 2.4 states the max is 123 bytes, but we are just checking length\n if (reason && reason.length > 123) {\n throw new SyntaxError('reason argument has an invalid length');\n }\n\n // Step 3.1\n if (this.readyState === SockJS.CLOSING || this.readyState === SockJS.CLOSED) {\n return;\n }\n\n // TODO look at docs to determine how to set this\n var wasClean = true;\n this._close(code || 1000, reason || 'Normal closure', wasClean);\n};\n\nSockJS.prototype.send = function(data) {\n // #13 - convert anything non-string to string\n // TODO this currently turns objects into [object Object]\n if (typeof data !== 'string') {\n data = '' + data;\n }\n if (this.readyState === SockJS.CONNECTING) {\n throw new Error('InvalidStateError: The connection has not been established yet');\n }\n if (this.readyState !== SockJS.OPEN) {\n return;\n }\n this._transport.send(escape.quote(data));\n};\n\nSockJS.version = require('./version');\n\nSockJS.CONNECTING = 0;\nSockJS.OPEN = 1;\nSockJS.CLOSING = 2;\nSockJS.CLOSED = 3;\n\nSockJS.prototype._receiveInfo = function(info, rtt) {\n debug('_receiveInfo', rtt);\n this._ir = null;\n if (!info) {\n this._close(1002, 'Cannot connect to server');\n return;\n }\n\n // establish a round-trip timeout (RTO) based on the\n // round-trip time (RTT)\n this._rto = this.countRTO(rtt);\n // allow server to override url used for the actual transport\n this._transUrl = info.base_url ? info.base_url : this.url;\n info = objectUtils.extend(info, this._urlInfo);\n debug('info', info);\n // determine list of desired and supported transports\n var enabledTransports = transports.filterToEnabled(this._transportsWhitelist, info);\n this._transports = enabledTransports.main;\n debug(this._transports.length + ' enabled transports');\n\n this._connect();\n};\n\nSockJS.prototype._connect = function() {\n for (var Transport = this._transports.shift(); Transport; Transport = this._transports.shift()) {\n debug('attempt', Transport.transportName);\n if (Transport.needBody) {\n if (!global.document.body ||\n (typeof global.document.readyState !== 'undefined' &&\n global.document.readyState !== 'complete' &&\n global.document.readyState !== 'interactive')) {\n debug('waiting for body');\n this._transports.unshift(Transport);\n eventUtils.attachEvent('load', this._connect.bind(this));\n return;\n }\n }\n\n // calculate timeout based on RTO and round trips. Default to 5s\n var timeoutMs = (this._rto * Transport.roundTrips) || 5000;\n this._transportTimeoutId = setTimeout(this._transportTimeout.bind(this), timeoutMs);\n debug('using timeout', timeoutMs);\n\n var transportUrl = urlUtils.addPath(this._transUrl, '/' + this._server + '/' + this._generateSessionId());\n var options = this._transportOptions[Transport.transportName];\n debug('transport url', transportUrl);\n var transportObj = new Transport(transportUrl, this._transUrl, options);\n transportObj.on('message', this._transportMessage.bind(this));\n transportObj.once('close', this._transportClose.bind(this));\n transportObj.transportName = Transport.transportName;\n this._transport = transportObj;\n\n return;\n }\n this._close(2000, 'All transports failed', false);\n};\n\nSockJS.prototype._transportTimeout = function() {\n debug('_transportTimeout');\n if (this.readyState === SockJS.CONNECTING) {\n this._transportClose(2007, 'Transport timed out');\n }\n};\n\nSockJS.prototype._transportMessage = function(msg) {\n debug('_transportMessage', msg);\n var self = this\n , type = msg.slice(0, 1)\n , content = msg.slice(1)\n , payload\n ;\n\n // first check for messages that don't need a payload\n switch (type) {\n case 'o':\n this._open();\n return;\n case 'h':\n this.dispatchEvent(new Event('heartbeat'));\n debug('heartbeat', this.transport);\n return;\n }\n\n if (content) {\n try {\n payload = JSON3.parse(content);\n } catch (e) {\n debug('bad json', content);\n }\n }\n\n if (typeof payload === 'undefined') {\n debug('empty payload', content);\n return;\n }\n\n switch (type) {\n case 'a':\n if (Array.isArray(payload)) {\n payload.forEach(function(p) {\n debug('message', self.transport, p);\n self.dispatchEvent(new TransportMessageEvent(p));\n });\n }\n break;\n case 'm':\n debug('message', this.transport, payload);\n this.dispatchEvent(new TransportMessageEvent(payload));\n break;\n case 'c':\n if (Array.isArray(payload) && payload.length === 2) {\n this._close(payload[0], payload[1], true);\n }\n break;\n }\n};\n\nSockJS.prototype._transportClose = function(code, reason) {\n debug('_transportClose', this.transport, code, reason);\n if (this._transport) {\n this._transport.removeAllListeners();\n this._transport = null;\n this.transport = null;\n }\n\n if (!userSetCode(code) && code !== 2000 && this.readyState === SockJS.CONNECTING) {\n this._connect();\n return;\n }\n\n this._close(code, reason);\n};\n\nSockJS.prototype._open = function() {\n debug('_open', this._transport.transportName, this.readyState);\n if (this.readyState === SockJS.CONNECTING) {\n if (this._transportTimeoutId) {\n clearTimeout(this._transportTimeoutId);\n this._transportTimeoutId = null;\n }\n this.readyState = SockJS.OPEN;\n this.transport = this._transport.transportName;\n this.dispatchEvent(new Event('open'));\n debug('connected', this.transport);\n } else {\n // The server might have been restarted, and lost track of our\n // connection.\n this._close(1006, 'Server lost session');\n }\n};\n\nSockJS.prototype._close = function(code, reason, wasClean) {\n debug('_close', this.transport, code, reason, wasClean, this.readyState);\n var forceFail = false;\n\n if (this._ir) {\n forceFail = true;\n this._ir.close();\n this._ir = null;\n }\n if (this._transport) {\n this._transport.close();\n this._transport = null;\n this.transport = null;\n }\n\n if (this.readyState === SockJS.CLOSED) {\n throw new Error('InvalidStateError: SockJS has already been closed');\n }\n\n this.readyState = SockJS.CLOSING;\n setTimeout(function() {\n this.readyState = SockJS.CLOSED;\n\n if (forceFail) {\n this.dispatchEvent(new Event('error'));\n }\n\n var e = new CloseEvent('close');\n e.wasClean = wasClean || false;\n e.code = code || 1000;\n e.reason = reason;\n\n this.dispatchEvent(e);\n this.onmessage = this.onclose = this.onerror = null;\n debug('disconnected');\n }.bind(this), 0);\n};\n\n// See: http://www.erg.abdn.ac.uk/~gerrit/dccp/notes/ccid2/rto_estimator/\n// and RFC 2988.\nSockJS.prototype.countRTO = function(rtt) {\n // In a local environment, when using IE8/9 and the `jsonp-polling`\n // transport the time needed to establish a connection (the time that pass\n // from the opening of the transport to the call of `_dispatchOpen`) is\n // around 200msec (the lower bound used in the article above) and this\n // causes spurious timeouts. For this reason we calculate a value slightly\n // larger than that used in the article.\n if (rtt > 100) {\n return 4 * rtt; // rto > 400msec\n }\n return 300 + rtt; // 300msec < rto <= 400msec\n};\n\nmodule.exports = function(availableTransports) {\n transports = transport(availableTransports);\n require('./iframe-bootstrap')(SockJS, availableTransports);\n return SockJS;\n};\n\n}).call(this,{ env: {} },typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"./event/close\":2,\"./event/event\":4,\"./event/eventtarget\":5,\"./event/trans-message\":6,\"./iframe-bootstrap\":8,\"./info-receiver\":12,\"./location\":13,\"./shims\":15,\"./utils/browser\":44,\"./utils/escape\":45,\"./utils/event\":46,\"./utils/log\":48,\"./utils/object\":49,\"./utils/random\":50,\"./utils/transport\":51,\"./utils/url\":52,\"./version\":53,\"debug\":55,\"inherits\":57,\"json3\":58,\"url-parse\":61}],15:[function(require,module,exports){\n/* eslint-disable */\n/* jscs: disable */\n'use strict';\n\n// pulled specific shims from https://github.com/es-shims/es5-shim\n\nvar ArrayPrototype = Array.prototype;\nvar ObjectPrototype = Object.prototype;\nvar FunctionPrototype = Function.prototype;\nvar StringPrototype = String.prototype;\nvar array_slice = ArrayPrototype.slice;\n\nvar _toString = ObjectPrototype.toString;\nvar isFunction = function (val) {\n return ObjectPrototype.toString.call(val) === '[object Function]';\n};\nvar isArray = function isArray(obj) {\n return _toString.call(obj) === '[object Array]';\n};\nvar isString = function isString(obj) {\n return _toString.call(obj) === '[object String]';\n};\n\nvar supportsDescriptors = Object.defineProperty && (function () {\n try {\n Object.defineProperty({}, 'x', {});\n return true;\n } catch (e) { /* this is ES3 */\n return false;\n }\n}());\n\n// Define configurable, writable and non-enumerable props\n// if they don't exist.\nvar defineProperty;\nif (supportsDescriptors) {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method\n });\n };\n} else {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n object[name] = method;\n };\n}\nvar defineProperties = function (object, map, forceAssign) {\n for (var name in map) {\n if (ObjectPrototype.hasOwnProperty.call(map, name)) {\n defineProperty(object, name, map[name], forceAssign);\n }\n }\n};\n\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \" + o + ' to object');\n }\n return Object(o);\n};\n\n//\n// Util\n// ======\n//\n\n// ES5 9.4\n// http://es5.github.com/#x9.4\n// http://jsperf.com/to-integer\n\nfunction toInteger(num) {\n var n = +num;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction ToUint32(x) {\n return x >>> 0;\n}\n\n//\n// Function\n// ========\n//\n\n// ES-5 15.3.4.5\n// http://es5.github.com/#x15.3.4.5\n\nfunction Empty() {}\n\ndefineProperties(FunctionPrototype, {\n bind: function bind(that) { // .length is 1\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isFunction(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = target.apply(\n this,\n args.concat(array_slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return target.apply(\n that,\n args.concat(array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = Math.max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n});\n\n//\n// Array\n// =====\n//\n\n// ES5 15.4.3.2\n// http://es5.github.com/#x15.4.3.2\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\ndefineProperties(Array, { isArray: isArray });\n\n\nvar boxedString = Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar properlyBoxesContext = function properlyBoxed(method) {\n // Check node 0.6.21 bug where third parameter is not boxed\n var properlyBoxesNonStrict = true;\n var properlyBoxesStrict = true;\n if (method) {\n method.call('foo', function (_, __, context) {\n if (typeof context !== 'object') { properlyBoxesNonStrict = false; }\n });\n\n method.call([1], function () {\n 'use strict';\n properlyBoxesStrict = typeof this === 'string';\n }, 'x');\n }\n return !!method && properlyBoxesNonStrict && properlyBoxesStrict;\n};\n\ndefineProperties(ArrayPrototype, {\n forEach: function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && isString(this) ? this.split('') : object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n\n // If no callback function or if callback is not a callable function\n if (!isFunction(fun)) {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n // Invoke the callback function with call, passing arguments:\n // context, property value, property key, thisArg object\n // context\n fun.call(thisp, self[i], i, object);\n }\n }\n }\n}, !properlyBoxesContext(ArrayPrototype.forEach));\n\n// ES5 15.4.4.14\n// http://es5.github.com/#x15.4.4.14\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\nvar hasFirefox2IndexOfBug = Array.prototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\ndefineProperties(ArrayPrototype, {\n indexOf: function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && isString(this) ? this.split('') : toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n\n // handle negative indices\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n }\n}, hasFirefox2IndexOfBug);\n\n//\n// String\n// ======\n//\n\n// ES5 15.5.4.14\n// http://es5.github.com/#x15.5.4.14\n\n// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n// Many browsers do not split properly with regular expressions or they\n// do not perform the split correctly under obscure conditions.\n// See http://blog.stevenlevithan.com/archives/cross-browser-split\n// I've tested in many browsers and this seems to cover the deviant ones:\n// 'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n// '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n// 'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n// [undefined, \"t\", undefined, \"e\", ...]\n// ''.split(/.?/) should be [], not [\"\"]\n// '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\nvar string_split = StringPrototype.split;\nif (\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n 'tesst'.split(/(s)*/)[1] === 't' ||\n 'test'.split(/(?:)/, -1).length !== 4 ||\n ''.split(/.?/).length ||\n '.'.split(/()()/).length > 1\n) {\n (function () {\n var compliantExecNpcg = /()??/.exec('')[1] === void 0; // NPCG: nonparticipating capturing group\n\n StringPrototype.split = function (separator, limit) {\n var string = this;\n if (separator === void 0 && limit === 0) {\n return [];\n }\n\n // If `separator` is not a regex, use native split\n if (_toString.call(separator) !== '[object RegExp]') {\n return string_split.call(this, separator, limit);\n }\n\n var output = [],\n flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.extended ? 'x' : '') + // Proposed for ES6\n (separator.sticky ? 'y' : ''), // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n separator = new RegExp(separator.source, flags + 'g');\n string += ''; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp('^' + separator.source + '$(?!\\\\s)', flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n limit = limit === void 0 ?\n -1 >>> 0 : // Math.pow(2, 32) - 1\n ToUint32(limit);\n while (match = separator.exec(string)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === void 0) {\n match[i] = void 0;\n }\n }\n });\n }\n if (match.length > 1 && match.index < string.length) {\n ArrayPrototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separator.test('')) {\n output.push('');\n }\n } else {\n output.push(string.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n }());\n\n// [bugfix, chrome]\n// If separator is undefined, then the result array contains just one String,\n// which is the this value (converted to a String). If limit is not undefined,\n// then the output array is truncated so that it contains no more than limit\n// elements.\n// \"0\".split(undefined, 0) -> []\n} else if ('0'.split(void 0, 0).length) {\n StringPrototype.split = function split(separator, limit) {\n if (separator === void 0 && limit === 0) { return []; }\n return string_split.call(this, separator, limit);\n };\n}\n\n// ECMA-262, 3rd B.2.3\n// Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n// non-normative section suggesting uniform semantics and it should be\n// normalized across all browsers\n// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\nvar string_substr = StringPrototype.substr;\nvar hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\ndefineProperties(StringPrototype, {\n substr: function substr(start, length) {\n return string_substr.call(\n this,\n start < 0 ? ((start = this.length + start) < 0 ? 0 : start) : start,\n length\n );\n }\n}, hasNegativeSubstrBug);\n\n},{}],16:[function(require,module,exports){\n'use strict';\n\nmodule.exports = [\n // streaming transports\n require('./transport/websocket')\n, require('./transport/xhr-streaming')\n, require('./transport/xdr-streaming')\n, require('./transport/eventsource')\n, require('./transport/lib/iframe-wrap')(require('./transport/eventsource'))\n\n // polling transports\n, require('./transport/htmlfile')\n, require('./transport/lib/iframe-wrap')(require('./transport/htmlfile'))\n, require('./transport/xhr-polling')\n, require('./transport/xdr-polling')\n, require('./transport/lib/iframe-wrap')(require('./transport/xhr-polling'))\n, require('./transport/jsonp-polling')\n];\n\n},{\"./transport/eventsource\":20,\"./transport/htmlfile\":21,\"./transport/jsonp-polling\":23,\"./transport/lib/iframe-wrap\":26,\"./transport/websocket\":38,\"./transport/xdr-polling\":39,\"./transport/xdr-streaming\":40,\"./transport/xhr-polling\":41,\"./transport/xhr-streaming\":42}],17:[function(require,module,exports){\n(function (process,global){\n'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , utils = require('../../utils/event')\n , urlUtils = require('../../utils/url')\n , XHR = global.XMLHttpRequest\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:browser:xhr');\n}\n\nfunction AbstractXHRObject(method, url, payload, opts) {\n debug(method, url);\n var self = this;\n EventEmitter.call(this);\n\n setTimeout(function () {\n self._start(method, url, payload, opts);\n }, 0);\n}\n\ninherits(AbstractXHRObject, EventEmitter);\n\nAbstractXHRObject.prototype._start = function(method, url, payload, opts) {\n var self = this;\n\n try {\n this.xhr = new XHR();\n } catch (x) {\n // intentionally empty\n }\n\n if (!this.xhr) {\n debug('no xhr');\n this.emit('finish', 0, 'no xhr support');\n this._cleanup();\n return;\n }\n\n // several browsers cache POSTs\n url = urlUtils.addQuery(url, 't=' + (+new Date()));\n\n // Explorer tends to keep connection open, even after the\n // tab gets closed: http://bugs.jquery.com/ticket/5280\n this.unloadRef = utils.unloadAdd(function() {\n debug('unload cleanup');\n self._cleanup(true);\n });\n try {\n this.xhr.open(method, url, true);\n if (this.timeout && 'timeout' in this.xhr) {\n this.xhr.timeout = this.timeout;\n this.xhr.ontimeout = function() {\n debug('xhr timeout');\n self.emit('finish', 0, '');\n self._cleanup(false);\n };\n }\n } catch (e) {\n debug('exception', e);\n // IE raises an exception on wrong port.\n this.emit('finish', 0, '');\n this._cleanup(false);\n return;\n }\n\n if ((!opts || !opts.noCredentials) && AbstractXHRObject.supportsCORS) {\n debug('withCredentials');\n // Mozilla docs says https://developer.mozilla.org/en/XMLHttpRequest :\n // \"This never affects same-site requests.\"\n\n this.xhr.withCredentials = 'true';\n }\n if (opts && opts.headers) {\n for (var key in opts.headers) {\n this.xhr.setRequestHeader(key, opts.headers[key]);\n }\n }\n\n this.xhr.onreadystatechange = function() {\n if (self.xhr) {\n var x = self.xhr;\n var text, status;\n debug('readyState', x.readyState);\n switch (x.readyState) {\n case 3:\n // IE doesn't like peeking into responseText or status\n // on Microsoft.XMLHTTP and readystate=3\n try {\n status = x.status;\n text = x.responseText;\n } catch (e) {\n // intentionally empty\n }\n debug('status', status);\n // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n if (status === 1223) {\n status = 204;\n }\n\n // IE does return readystate == 3 for 404 answers.\n if (status === 200 && text && text.length > 0) {\n debug('chunk');\n self.emit('chunk', status, text);\n }\n break;\n case 4:\n status = x.status;\n debug('status', status);\n // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n if (status === 1223) {\n status = 204;\n }\n // IE returns this for a bad port\n // http://msdn.microsoft.com/en-us/library/windows/desktop/aa383770(v=vs.85).aspx\n if (status === 12005 || status === 12029) {\n status = 0;\n }\n\n debug('finish', status, x.responseText);\n self.emit('finish', status, x.responseText);\n self._cleanup(false);\n break;\n }\n }\n };\n\n try {\n self.xhr.send(payload);\n } catch (e) {\n self.emit('finish', 0, '');\n self._cleanup(false);\n }\n};\n\nAbstractXHRObject.prototype._cleanup = function(abort) {\n debug('cleanup');\n if (!this.xhr) {\n return;\n }\n this.removeAllListeners();\n utils.unloadDel(this.unloadRef);\n\n // IE needs this field to be a function\n this.xhr.onreadystatechange = function() {};\n if (this.xhr.ontimeout) {\n this.xhr.ontimeout = null;\n }\n\n if (abort) {\n try {\n this.xhr.abort();\n } catch (x) {\n // intentionally empty\n }\n }\n this.unloadRef = this.xhr = null;\n};\n\nAbstractXHRObject.prototype.close = function() {\n debug('close');\n this._cleanup(true);\n};\n\nAbstractXHRObject.enabled = !!XHR;\n// override XMLHttpRequest for IE6/7\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (!AbstractXHRObject.enabled && (axo in global)) {\n debug('overriding xmlhttprequest');\n XHR = function() {\n try {\n return new global[axo]('Microsoft.XMLHTTP');\n } catch (e) {\n return null;\n }\n };\n AbstractXHRObject.enabled = !!new XHR();\n}\n\nvar cors = false;\ntry {\n cors = 'withCredentials' in new XHR();\n} catch (ignored) {\n // intentionally empty\n}\n\nAbstractXHRObject.supportsCORS = cors;\n\nmodule.exports = AbstractXHRObject;\n\n}).call(this,{ env: {} },typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"../../utils/event\":46,\"../../utils/url\":52,\"debug\":55,\"events\":3,\"inherits\":57}],18:[function(require,module,exports){\n(function (global){\nmodule.exports = global.EventSource;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],19:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar Driver = global.WebSocket || global.MozWebSocket;\nif (Driver) {\n\tmodule.exports = function WebSocketBrowserDriver(url) {\n\t\treturn new Driver(url);\n\t};\n} else {\n\tmodule.exports = undefined;\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{}],20:[function(require,module,exports){\n'use strict';\n\nvar inherits = require('inherits')\n , AjaxBasedTransport = require('./lib/ajax-based')\n , EventSourceReceiver = require('./receiver/eventsource')\n , XHRCorsObject = require('./sender/xhr-cors')\n , EventSourceDriver = require('eventsource')\n ;\n\nfunction EventSourceTransport(transUrl) {\n if (!EventSourceTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n\n AjaxBasedTransport.call(this, transUrl, '/eventsource', EventSourceReceiver, XHRCorsObject);\n}\n\ninherits(EventSourceTransport, AjaxBasedTransport);\n\nEventSourceTransport.enabled = function() {\n return !!EventSourceDriver;\n};\n\nEventSourceTransport.transportName = 'eventsource';\nEventSourceTransport.roundTrips = 2;\n\nmodule.exports = EventSourceTransport;\n\n},{\"./lib/ajax-based\":24,\"./receiver/eventsource\":29,\"./sender/xhr-cors\":35,\"eventsource\":18,\"inherits\":57}],21:[function(require,module,exports){\n'use strict';\n\nvar inherits = require('inherits')\n , HtmlfileReceiver = require('./receiver/htmlfile')\n , XHRLocalObject = require('./sender/xhr-local')\n , AjaxBasedTransport = require('./lib/ajax-based')\n ;\n\nfunction HtmlFileTransport(transUrl) {\n if (!HtmlfileReceiver.enabled) {\n throw new Error('Transport created when disabled');\n }\n AjaxBasedTransport.call(this, transUrl, '/htmlfile', HtmlfileReceiver, XHRLocalObject);\n}\n\ninherits(HtmlFileTransport, AjaxBasedTransport);\n\nHtmlFileTransport.enabled = function(info) {\n return HtmlfileReceiver.enabled && info.sameOrigin;\n};\n\nHtmlFileTransport.transportName = 'htmlfile';\nHtmlFileTransport.roundTrips = 2;\n\nmodule.exports = HtmlFileTransport;\n\n},{\"./lib/ajax-based\":24,\"./receiver/htmlfile\":30,\"./sender/xhr-local\":37,\"inherits\":57}],22:[function(require,module,exports){\n(function (process){\n'use strict';\n\n// Few cool transports do work only for same-origin. In order to make\n// them work cross-domain we shall use iframe, served from the\n// remote domain. New browsers have capabilities to communicate with\n// cross domain iframe using postMessage(). In IE it was implemented\n// from IE 8+, but of course, IE got some details wrong:\n// http://msdn.microsoft.com/en-us/library/cc197015(v=VS.85).aspx\n// http://stevesouders.com/misc/test-postmessage.php\n\nvar inherits = require('inherits')\n , JSON3 = require('json3')\n , EventEmitter = require('events').EventEmitter\n , version = require('../version')\n , urlUtils = require('../utils/url')\n , iframeUtils = require('../utils/iframe')\n , eventUtils = require('../utils/event')\n , random = require('../utils/random')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:transport:iframe');\n}\n\nfunction IframeTransport(transport, transUrl, baseUrl) {\n if (!IframeTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n EventEmitter.call(this);\n\n var self = this;\n this.origin = urlUtils.getOrigin(baseUrl);\n this.baseUrl = baseUrl;\n this.transUrl = transUrl;\n this.transport = transport;\n this.windowId = random.string(8);\n\n var iframeUrl = urlUtils.addPath(baseUrl, '/iframe.html') + '#' + this.windowId;\n debug(transport, transUrl, iframeUrl);\n\n this.iframeObj = iframeUtils.createIframe(iframeUrl, function(r) {\n debug('err callback');\n self.emit('close', 1006, 'Unable to load an iframe (' + r + ')');\n self.close();\n });\n\n this.onmessageCallback = this._message.bind(this);\n eventUtils.attachEvent('message', this.onmessageCallback);\n}\n\ninherits(IframeTransport, EventEmitter);\n\nIframeTransport.prototype.close = function() {\n debug('close');\n this.removeAllListeners();\n if (this.iframeObj) {\n eventUtils.detachEvent('message', this.onmessageCallback);\n try {\n // When the iframe is not loaded, IE raises an exception\n // on 'contentWindow'.\n this.postMessage('c');\n } catch (x) {\n // intentionally empty\n }\n this.iframeObj.cleanup();\n this.iframeObj = null;\n this.onmessageCallback = this.iframeObj = null;\n }\n};\n\nIframeTransport.prototype._message = function(e) {\n debug('message', e.data);\n if (!urlUtils.isOriginEqual(e.origin, this.origin)) {\n debug('not same origin', e.origin, this.origin);\n return;\n }\n\n var iframeMessage;\n try {\n iframeMessage = JSON3.parse(e.data);\n } catch (ignored) {\n debug('bad json', e.data);\n return;\n }\n\n if (iframeMessage.windowId !== this.windowId) {\n debug('mismatched window id', iframeMessage.windowId, this.windowId);\n return;\n }\n\n switch (iframeMessage.type) {\n case 's':\n this.iframeObj.loaded();\n // window global dependency\n this.postMessage('s', JSON3.stringify([\n version\n , this.transport\n , this.transUrl\n , this.baseUrl\n ]));\n break;\n case 't':\n this.emit('message', iframeMessage.data);\n break;\n case 'c':\n var cdata;\n try {\n cdata = JSON3.parse(iframeMessage.data);\n } catch (ignored) {\n debug('bad json', iframeMessage.data);\n return;\n }\n this.emit('close', cdata[0], cdata[1]);\n this.close();\n break;\n }\n};\n\nIframeTransport.prototype.postMessage = function(type, data) {\n debug('postMessage', type, data);\n this.iframeObj.post(JSON3.stringify({\n windowId: this.windowId\n , type: type\n , data: data || ''\n }), this.origin);\n};\n\nIframeTransport.prototype.send = function(message) {\n debug('send', message);\n this.postMessage('m', message);\n};\n\nIframeTransport.enabled = function() {\n return iframeUtils.iframeEnabled;\n};\n\nIframeTransport.transportName = 'iframe';\nIframeTransport.roundTrips = 2;\n\nmodule.exports = IframeTransport;\n\n}).call(this,{ env: {} })\n\n},{\"../utils/event\":46,\"../utils/iframe\":47,\"../utils/random\":50,\"../utils/url\":52,\"../version\":53,\"debug\":55,\"events\":3,\"inherits\":57,\"json3\":58}],23:[function(require,module,exports){\n(function (global){\n'use strict';\n\n// The simplest and most robust transport, using the well-know cross\n// domain hack - JSONP. This transport is quite inefficient - one\n// message could use up to one http request. But at least it works almost\n// everywhere.\n// Known limitations:\n// o you will get a spinning cursor\n// o for Konqueror a dumb timer is needed to detect errors\n\nvar inherits = require('inherits')\n , SenderReceiver = require('./lib/sender-receiver')\n , JsonpReceiver = require('./receiver/jsonp')\n , jsonpSender = require('./sender/jsonp')\n ;\n\nfunction JsonPTransport(transUrl) {\n if (!JsonPTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n SenderReceiver.call(this, transUrl, '/jsonp', jsonpSender, JsonpReceiver);\n}\n\ninherits(JsonPTransport, SenderReceiver);\n\nJsonPTransport.enabled = function() {\n return !!global.document;\n};\n\nJsonPTransport.transportName = 'jsonp-polling';\nJsonPTransport.roundTrips = 1;\nJsonPTransport.needBody = true;\n\nmodule.exports = JsonPTransport;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"./lib/sender-receiver\":28,\"./receiver/jsonp\":31,\"./sender/jsonp\":33,\"inherits\":57}],24:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar inherits = require('inherits')\n , urlUtils = require('../../utils/url')\n , SenderReceiver = require('./sender-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:ajax-based');\n}\n\nfunction createAjaxSender(AjaxObject) {\n return function(url, payload, callback) {\n debug('create ajax sender', url, payload);\n var opt = {};\n if (typeof payload === 'string') {\n opt.headers = {'Content-type': 'text/plain'};\n }\n var ajaxUrl = urlUtils.addPath(url, '/xhr_send');\n var xo = new AjaxObject('POST', ajaxUrl, payload, opt);\n xo.once('finish', function(status) {\n debug('finish', status);\n xo = null;\n\n if (status !== 200 && status !== 204) {\n return callback(new Error('http status ' + status));\n }\n callback();\n });\n return function() {\n debug('abort');\n xo.close();\n xo = null;\n\n var err = new Error('Aborted');\n err.code = 1000;\n callback(err);\n };\n };\n}\n\nfunction AjaxBasedTransport(transUrl, urlSuffix, Receiver, AjaxObject) {\n SenderReceiver.call(this, transUrl, urlSuffix, createAjaxSender(AjaxObject), Receiver, AjaxObject);\n}\n\ninherits(AjaxBasedTransport, SenderReceiver);\n\nmodule.exports = AjaxBasedTransport;\n\n}).call(this,{ env: {} })\n\n},{\"../../utils/url\":52,\"./sender-receiver\":28,\"debug\":55,\"inherits\":57}],25:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:buffered-sender');\n}\n\nfunction BufferedSender(url, sender) {\n debug(url);\n EventEmitter.call(this);\n this.sendBuffer = [];\n this.sender = sender;\n this.url = url;\n}\n\ninherits(BufferedSender, EventEmitter);\n\nBufferedSender.prototype.send = function(message) {\n debug('send', message);\n this.sendBuffer.push(message);\n if (!this.sendStop) {\n this.sendSchedule();\n }\n};\n\n// For polling transports in a situation when in the message callback,\n// new message is being send. If the sending connection was started\n// before receiving one, it is possible to saturate the network and\n// timeout due to the lack of receiving socket. To avoid that we delay\n// sending messages by some small time, in order to let receiving\n// connection be started beforehand. This is only a halfmeasure and\n// does not fix the big problem, but it does make the tests go more\n// stable on slow networks.\nBufferedSender.prototype.sendScheduleWait = function() {\n debug('sendScheduleWait');\n var self = this;\n var tref;\n this.sendStop = function() {\n debug('sendStop');\n self.sendStop = null;\n clearTimeout(tref);\n };\n tref = setTimeout(function() {\n debug('timeout');\n self.sendStop = null;\n self.sendSchedule();\n }, 25);\n};\n\nBufferedSender.prototype.sendSchedule = function() {\n debug('sendSchedule', this.sendBuffer.length);\n var self = this;\n if (this.sendBuffer.length > 0) {\n var payload = '[' + this.sendBuffer.join(',') + ']';\n this.sendStop = this.sender(this.url, payload, function(err) {\n self.sendStop = null;\n if (err) {\n debug('error', err);\n self.emit('close', err.code || 1006, 'Sending error: ' + err);\n self.close();\n } else {\n self.sendScheduleWait();\n }\n });\n this.sendBuffer = [];\n }\n};\n\nBufferedSender.prototype._cleanup = function() {\n debug('_cleanup');\n this.removeAllListeners();\n};\n\nBufferedSender.prototype.close = function() {\n debug('close');\n this._cleanup();\n if (this.sendStop) {\n this.sendStop();\n this.sendStop = null;\n }\n};\n\nmodule.exports = BufferedSender;\n\n}).call(this,{ env: {} })\n\n},{\"debug\":55,\"events\":3,\"inherits\":57}],26:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar inherits = require('inherits')\n , IframeTransport = require('../iframe')\n , objectUtils = require('../../utils/object')\n ;\n\nmodule.exports = function(transport) {\n\n function IframeWrapTransport(transUrl, baseUrl) {\n IframeTransport.call(this, transport.transportName, transUrl, baseUrl);\n }\n\n inherits(IframeWrapTransport, IframeTransport);\n\n IframeWrapTransport.enabled = function(url, info) {\n if (!global.document) {\n return false;\n }\n\n var iframeInfo = objectUtils.extend({}, info);\n iframeInfo.sameOrigin = true;\n return transport.enabled(iframeInfo) && IframeTransport.enabled();\n };\n\n IframeWrapTransport.transportName = 'iframe-' + transport.transportName;\n IframeWrapTransport.needBody = true;\n IframeWrapTransport.roundTrips = IframeTransport.roundTrips + transport.roundTrips - 1; // html, javascript (2) + transport - no CORS (1)\n\n IframeWrapTransport.facadeTransport = transport;\n\n return IframeWrapTransport;\n};\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"../../utils/object\":49,\"../iframe\":22,\"inherits\":57}],27:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:polling');\n}\n\nfunction Polling(Receiver, receiveUrl, AjaxObject) {\n debug(receiveUrl);\n EventEmitter.call(this);\n this.Receiver = Receiver;\n this.receiveUrl = receiveUrl;\n this.AjaxObject = AjaxObject;\n this._scheduleReceiver();\n}\n\ninherits(Polling, EventEmitter);\n\nPolling.prototype._scheduleReceiver = function() {\n debug('_scheduleReceiver');\n var self = this;\n var poll = this.poll = new this.Receiver(this.receiveUrl, this.AjaxObject);\n\n poll.on('message', function(msg) {\n debug('message', msg);\n self.emit('message', msg);\n });\n\n poll.once('close', function(code, reason) {\n debug('close', code, reason, self.pollIsClosing);\n self.poll = poll = null;\n\n if (!self.pollIsClosing) {\n if (reason === 'network') {\n self._scheduleReceiver();\n } else {\n self.emit('close', code || 1006, reason);\n self.removeAllListeners();\n }\n }\n });\n};\n\nPolling.prototype.abort = function() {\n debug('abort');\n this.removeAllListeners();\n this.pollIsClosing = true;\n if (this.poll) {\n this.poll.abort();\n }\n};\n\nmodule.exports = Polling;\n\n}).call(this,{ env: {} })\n\n},{\"debug\":55,\"events\":3,\"inherits\":57}],28:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar inherits = require('inherits')\n , urlUtils = require('../../utils/url')\n , BufferedSender = require('./buffered-sender')\n , Polling = require('./polling')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:sender-receiver');\n}\n\nfunction SenderReceiver(transUrl, urlSuffix, senderFunc, Receiver, AjaxObject) {\n var pollUrl = urlUtils.addPath(transUrl, urlSuffix);\n debug(pollUrl);\n var self = this;\n BufferedSender.call(this, transUrl, senderFunc);\n\n this.poll = new Polling(Receiver, pollUrl, AjaxObject);\n this.poll.on('message', function(msg) {\n debug('poll message', msg);\n self.emit('message', msg);\n });\n this.poll.once('close', function(code, reason) {\n debug('poll close', code, reason);\n self.poll = null;\n self.emit('close', code, reason);\n self.close();\n });\n}\n\ninherits(SenderReceiver, BufferedSender);\n\nSenderReceiver.prototype.close = function() {\n BufferedSender.prototype.close.call(this);\n debug('close');\n this.removeAllListeners();\n if (this.poll) {\n this.poll.abort();\n this.poll = null;\n }\n};\n\nmodule.exports = SenderReceiver;\n\n}).call(this,{ env: {} })\n\n},{\"../../utils/url\":52,\"./buffered-sender\":25,\"./polling\":27,\"debug\":55,\"inherits\":57}],29:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , EventSourceDriver = require('eventsource')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:eventsource');\n}\n\nfunction EventSourceReceiver(url) {\n debug(url);\n EventEmitter.call(this);\n\n var self = this;\n var es = this.es = new EventSourceDriver(url);\n es.onmessage = function(e) {\n debug('message', e.data);\n self.emit('message', decodeURI(e.data));\n };\n es.onerror = function(e) {\n debug('error', es.readyState, e);\n // ES on reconnection has readyState = 0 or 1.\n // on network error it's CLOSED = 2\n var reason = (es.readyState !== 2 ? 'network' : 'permanent');\n self._cleanup();\n self._close(reason);\n };\n}\n\ninherits(EventSourceReceiver, EventEmitter);\n\nEventSourceReceiver.prototype.abort = function() {\n debug('abort');\n this._cleanup();\n this._close('user');\n};\n\nEventSourceReceiver.prototype._cleanup = function() {\n debug('cleanup');\n var es = this.es;\n if (es) {\n es.onmessage = es.onerror = null;\n es.close();\n this.es = null;\n }\n};\n\nEventSourceReceiver.prototype._close = function(reason) {\n debug('close', reason);\n var self = this;\n // Safari and chrome < 15 crash if we close window before\n // waiting for ES cleanup. See:\n // https://code.google.com/p/chromium/issues/detail?id=89155\n setTimeout(function() {\n self.emit('close', null, reason);\n self.removeAllListeners();\n }, 200);\n};\n\nmodule.exports = EventSourceReceiver;\n\n}).call(this,{ env: {} })\n\n},{\"debug\":55,\"events\":3,\"eventsource\":18,\"inherits\":57}],30:[function(require,module,exports){\n(function (process,global){\n'use strict';\n\nvar inherits = require('inherits')\n , iframeUtils = require('../../utils/iframe')\n , urlUtils = require('../../utils/url')\n , EventEmitter = require('events').EventEmitter\n , random = require('../../utils/random')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:htmlfile');\n}\n\nfunction HtmlfileReceiver(url) {\n debug(url);\n EventEmitter.call(this);\n var self = this;\n iframeUtils.polluteGlobalNamespace();\n\n this.id = 'a' + random.string(6);\n url = urlUtils.addQuery(url, 'c=' + decodeURIComponent(iframeUtils.WPrefix + '.' + this.id));\n\n debug('using htmlfile', HtmlfileReceiver.htmlfileEnabled);\n var constructFunc = HtmlfileReceiver.htmlfileEnabled ?\n iframeUtils.createHtmlfile : iframeUtils.createIframe;\n\n global[iframeUtils.WPrefix][this.id] = {\n start: function() {\n debug('start');\n self.iframeObj.loaded();\n }\n , message: function(data) {\n debug('message', data);\n self.emit('message', data);\n }\n , stop: function() {\n debug('stop');\n self._cleanup();\n self._close('network');\n }\n };\n this.iframeObj = constructFunc(url, function() {\n debug('callback');\n self._cleanup();\n self._close('permanent');\n });\n}\n\ninherits(HtmlfileReceiver, EventEmitter);\n\nHtmlfileReceiver.prototype.abort = function() {\n debug('abort');\n this._cleanup();\n this._close('user');\n};\n\nHtmlfileReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n if (this.iframeObj) {\n this.iframeObj.cleanup();\n this.iframeObj = null;\n }\n delete global[iframeUtils.WPrefix][this.id];\n};\n\nHtmlfileReceiver.prototype._close = function(reason) {\n debug('_close', reason);\n this.emit('close', null, reason);\n this.removeAllListeners();\n};\n\nHtmlfileReceiver.htmlfileEnabled = false;\n\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (axo in global) {\n try {\n HtmlfileReceiver.htmlfileEnabled = !!new global[axo]('htmlfile');\n } catch (x) {\n // intentionally empty\n }\n}\n\nHtmlfileReceiver.enabled = HtmlfileReceiver.htmlfileEnabled || iframeUtils.iframeEnabled;\n\nmodule.exports = HtmlfileReceiver;\n\n}).call(this,{ env: {} },typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"../../utils/iframe\":47,\"../../utils/random\":50,\"../../utils/url\":52,\"debug\":55,\"events\":3,\"inherits\":57}],31:[function(require,module,exports){\n(function (process,global){\n'use strict';\n\nvar utils = require('../../utils/iframe')\n , random = require('../../utils/random')\n , browser = require('../../utils/browser')\n , urlUtils = require('../../utils/url')\n , inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:jsonp');\n}\n\nfunction JsonpReceiver(url) {\n debug(url);\n var self = this;\n EventEmitter.call(this);\n\n utils.polluteGlobalNamespace();\n\n this.id = 'a' + random.string(6);\n var urlWithId = urlUtils.addQuery(url, 'c=' + encodeURIComponent(utils.WPrefix + '.' + this.id));\n\n global[utils.WPrefix][this.id] = this._callback.bind(this);\n this._createScript(urlWithId);\n\n // Fallback mostly for Konqueror - stupid timer, 35 seconds shall be plenty.\n this.timeoutId = setTimeout(function() {\n debug('timeout');\n self._abort(new Error('JSONP script loaded abnormally (timeout)'));\n }, JsonpReceiver.timeout);\n}\n\ninherits(JsonpReceiver, EventEmitter);\n\nJsonpReceiver.prototype.abort = function() {\n debug('abort');\n if (global[utils.WPrefix][this.id]) {\n var err = new Error('JSONP user aborted read');\n err.code = 1000;\n this._abort(err);\n }\n};\n\nJsonpReceiver.timeout = 35000;\nJsonpReceiver.scriptErrorTimeout = 1000;\n\nJsonpReceiver.prototype._callback = function(data) {\n debug('_callback', data);\n this._cleanup();\n\n if (this.aborting) {\n return;\n }\n\n if (data) {\n debug('message', data);\n this.emit('message', data);\n }\n this.emit('close', null, 'network');\n this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._abort = function(err) {\n debug('_abort', err);\n this._cleanup();\n this.aborting = true;\n this.emit('close', err.code, err.message);\n this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n clearTimeout(this.timeoutId);\n if (this.script2) {\n this.script2.parentNode.removeChild(this.script2);\n this.script2 = null;\n }\n if (this.script) {\n var script = this.script;\n // Unfortunately, you can't really abort script loading of\n // the script.\n script.parentNode.removeChild(script);\n script.onreadystatechange = script.onerror =\n script.onload = script.onclick = null;\n this.script = null;\n }\n delete global[utils.WPrefix][this.id];\n};\n\nJsonpReceiver.prototype._scriptError = function() {\n debug('_scriptError');\n var self = this;\n if (this.errorTimer) {\n return;\n }\n\n this.errorTimer = setTimeout(function() {\n if (!self.loadedOkay) {\n self._abort(new Error('JSONP script loaded abnormally (onerror)'));\n }\n }, JsonpReceiver.scriptErrorTimeout);\n};\n\nJsonpReceiver.prototype._createScript = function(url) {\n debug('_createScript', url);\n var self = this;\n var script = this.script = global.document.createElement('script');\n var script2; // Opera synchronous load trick.\n\n script.id = 'a' + random.string(8);\n script.src = url;\n script.type = 'text/javascript';\n script.charset = 'UTF-8';\n script.onerror = this._scriptError.bind(this);\n script.onload = function() {\n debug('onload');\n self._abort(new Error('JSONP script loaded abnormally (onload)'));\n };\n\n // IE9 fires 'error' event after onreadystatechange or before, in random order.\n // Use loadedOkay to determine if actually errored\n script.onreadystatechange = function() {\n debug('onreadystatechange', script.readyState);\n if (/loaded|closed/.test(script.readyState)) {\n if (script && script.htmlFor && script.onclick) {\n self.loadedOkay = true;\n try {\n // In IE, actually execute the script.\n script.onclick();\n } catch (x) {\n // intentionally empty\n }\n }\n if (script) {\n self._abort(new Error('JSONP script loaded abnormally (onreadystatechange)'));\n }\n }\n };\n // IE: event/htmlFor/onclick trick.\n // One can't rely on proper order for onreadystatechange. In order to\n // make sure, set a 'htmlFor' and 'event' properties, so that\n // script code will be installed as 'onclick' handler for the\n // script object. Later, onreadystatechange, manually execute this\n // code. FF and Chrome doesn't work with 'event' and 'htmlFor'\n // set. For reference see:\n // http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html\n // Also, read on that about script ordering:\n // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order\n if (typeof script.async === 'undefined' && global.document.attachEvent) {\n // According to mozilla docs, in recent browsers script.async defaults\n // to 'true', so we may use it to detect a good browser:\n // https://developer.mozilla.org/en/HTML/Element/script\n if (!browser.isOpera()) {\n // Naively assume we're in IE\n try {\n script.htmlFor = script.id;\n script.event = 'onclick';\n } catch (x) {\n // intentionally empty\n }\n script.async = true;\n } else {\n // Opera, second sync script hack\n script2 = this.script2 = global.document.createElement('script');\n script2.text = \"try{var a = document.getElementById('\" + script.id + \"'); if(a)a.onerror();}catch(x){};\";\n script.async = script2.async = false;\n }\n }\n if (typeof script.async !== 'undefined') {\n script.async = true;\n }\n\n var head = global.document.getElementsByTagName('head')[0];\n head.insertBefore(script, head.firstChild);\n if (script2) {\n head.insertBefore(script2, head.firstChild);\n }\n};\n\nmodule.exports = JsonpReceiver;\n\n}).call(this,{ env: {} },typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n\n},{\"../../utils/browser\":44,\"../../utils/iframe\":47,\"../../utils/random\":50,\"../../utils/url\":52,\"debug\":55,\"events\":3,\"inherits\":57}],32:[function(require,module,exports){\n(function (process){\n'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:xhr');\n}\n\nfunction XhrReceiver(url, AjaxObject) {\n debug(url);\n EventEmitter.call(this);\n var self = this;\n\n this.bufferPosition = 0;\n\n this.xo = new AjaxObject('POST', url, null);\n this.xo.on('chunk', this._chunkHandler.bind(this));\n this.xo.once('finish', function(status, text) {\n debug('finish', status, text);\n self._chunkHandler(status, text);\n self.xo = null;\n var reason = status === 200 ? 'network' : 'permanent';\n debug('close', reason);\n self.emit('close', null, reason);\n self._cleanup();\n });\n}\n\ninherits(XhrReceiver, EventEmitter);\n\nXhrReceiver.prototype._chunkHandler = function(status, text) {\n debug('_chunkHandler', status);\n if (status !== 200 || !text) {\n return;\n }\n\n for (var idx = -1; ; this.bufferPosition += idx + 1) {\n var buf = text.slice(this.bufferPosition);\n idx = buf.indexOf('\\n');\n if (idx === -1) {\n break;\n }\n var msg = buf.slice(0, idx);\n if (msg) {\n debug('message', msg);\n this.emit('message', msg);\n }\n }\n};\n\nXhrReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n this.removeAllListeners();\n};\n\nXhrReceiver.prototype.abort = function() {\n debug('abort');\n if (this.xo) {\n this.xo.close();\n debug('close');\n this.emit('close', null, 'user');\n this.xo = null;\n }\n this._cleanup();\n};\n\nmodule.exports = XhrReceiver;\n\n}).call(this,{ env: {} })\n\n},{\"debug\":55,\"events\":3,\"inherits\":57}],33:[function(require,module,exports){\n(function (process,global){\n'use strict';\n\nvar random = require('../../utils/random')\n , urlUtils = require('../../utils/url')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:sender:jsonp');\n}\n\nvar form, area;\n\nfunction createIframe(id) {\n debug('createIframe', id);\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n return global.document.createElement('