diff --git a/dist/svg-paper.js b/dist/svg-paper.js index 675b041..1dca87d 100644 --- a/dist/svg-paper.js +++ b/dist/svg-paper.js @@ -107,7 +107,7 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = (function (selector, config) { +/* harmony default export */ __webpack_exports__["default"] = (function (paperPixelRatio, selector, config) { var $this = document.querySelector(selector); if (!$this) { @@ -120,7 +120,7 @@ __webpack_require__.r(__webpack_exports__); // @see https://developer.mozilla.org/ja/docs/Web/API/Element/clientWidth $this.style.display = 'block'; - if ($this.clientWidth > config.textLength) { + if ($this.getBoundingClientRect().width * paperPixelRatio > config.textLength) { $this.querySelector('tspan').setAttribute('textLength', config.textLength); $this.querySelector('tspan').setAttribute('lengthAdjust', 'spacingAndGlyphs'); // for firefox // @see https://bugzilla.mozilla.org/show_bug.cgi?id=890692 @@ -326,12 +326,23 @@ var SvgPaper = /*#__PURE__*/function () { }, { key: "apply", value: function apply() { + var _this = this; + if (this.svg !== document.querySelector(this.selector).outerHTML) { document.querySelector(this.selector).outerHTML = this.svg; } this.adjustTextQueries.forEach(function (query) { - Object(_adjust_text__WEBPACK_IMPORTED_MODULE_0__["default"])(query.selector, { + var _$svg$getAttribute$sp, _$svg$getAttribute; + + // if viewBox is specified, Element.clientWidth and Element.getBoundingClientRect() return different values + // clientWidth: ??? + // getBoundingClientRect(): pure pixel value + // so this library uses getBoundingClientRect() and pre-calculated ratio to specify the width of some elements + var $svg = document.querySelector(_this.selector); + var viewBoxWidth = (_$svg$getAttribute$sp = (_$svg$getAttribute = $svg.getAttribute('viewBox')) === null || _$svg$getAttribute === void 0 ? void 0 : _$svg$getAttribute.split(/ +/)[2]) !== null && _$svg$getAttribute$sp !== void 0 ? _$svg$getAttribute$sp : null; + var paperPixelRatio = viewBoxWidth ? parseFloat(viewBoxWidth) / $svg.getBoundingClientRect().width : 1; + Object(_adjust_text__WEBPACK_IMPORTED_MODULE_0__["default"])(paperPixelRatio, query.selector, { textLength: query.textLength, 'text-anchor': query.textAnchor }); @@ -640,4 +651,4 @@ module.exports = __webpack_require__(/*! ./js/src/svg-paper.js */"./js/src/svg-p /******/ })["default"]; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TdmdQYXBlci93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9qcy9zcmMvYWRqdXN0LXRleHQuanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9qcy9zcmMvYWRqdXN0LXRleHRhcmVhLmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL3N2Zy1wYXBlci5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L2ZpeC10ZXh0LXRyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L3NwbGl0LXN0cmluZy1ieS13aWR0aC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L3N1Yi1zdHJpbmctYnktd2lkdGguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvZW1vamktcmVnZXgvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaW5nLXdpZHRoL2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vbm9kZV9tb2R1bGVzL3N0cmluZy13aWR0aC9ub2RlX21vZHVsZXMvaXMtZnVsbHdpZHRoLWNvZGUtcG9pbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9pbmRleC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL25vZGVfbW9kdWxlcy9zdHJpcC1hbnNpL25vZGVfbW9kdWxlcy9hbnNpLXJlZ2V4L2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vc2Nzcy9zdmctcGFwZXIuc2Nzcz9mOWQyIl0sIm5hbWVzIjpbInNlbGVjdG9yIiwiY29uZmlnIiwiJHRoaXMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzdHlsZSIsImRpc3BsYXkiLCJjbGllbnRXaWR0aCIsInRleHRMZW5ndGgiLCJzZXRBdHRyaWJ1dGUiLCJ3IiwicGFyc2VGbG9hdCIsIngiLCJ5IiwiZ2V0QXR0cmlidXRlIiwibWF0Y2giLCJ0ZXh0U3ZnIiwidGV4dENvbnRlbnQiLCJ3aWR0aCIsImhlaWdodCIsImxpbmVIZWlnaHQiLCJwYWRkaW5nWCIsInBhZGRpbmdZIiwibm93cmFwIiwiUmVnRXhwIiwiY29uc29sZSIsImVycm9yIiwib3JpZ2luYWxGb250U2l6ZSIsInBhcnNlSW50IiwiZm9udFNpemUiLCJwaHlzaWNhbExpbmVzIiwic3BsaXQiLCJsb2dpY2FsTGluZXMiLCJtYXhSb3dzIiwiTWF0aCIsImZsb29yIiwibWF4Q29sdW1ucyIsImZvckVhY2giLCJsaW5lIiwiY29uY2F0Iiwic3BsaXRTdHJpbmdCeVdpZHRoIiwibGVuZ3RoIiwiYWRqdXN0WSIsImFkanVzdGVkVGV4dFN2ZyIsImZpeFRleHRUcmFuc2Zvcm0iLCJyZXBsYWNlIiwidHNwYW4iLCJpIiwiU3ZnUGFwZXIiLCJFcnJvciIsInN2ZyIsIm91dGVySFRNTCIsImFkanVzdFRleHRRdWVyaWVzIiwic2VhcmNoIiwicmVwbGFjZW1lbnQiLCJzb3VyY2UiLCJmbGFncyIsInVuZGVmaW5lZCIsInRleHRBbmNob3IiLCJwdXNoIiwiZG9jIiwiRE9NUGFyc2VyIiwicGFyc2VGcm9tU3RyaW5nIiwidGV4dEVsZW1lbnQiLCJpbm5lckhUTUwiLCJhZGp1c3RUZXh0YXJlYSIsInF1ZXJ5IiwiYWRqdXN0VGV4dCIsImZpeGVkVGV4dFN2ZyIsImV4cHJlc3Npb24xIiwiZXZhbCIsImV4cHJlc3Npb24yIiwic3RyaW5nIiwic3BsaXRzIiwic3ViU3RyaW5nQnlXaWR0aCIsInN0YXJ0IiwiY3VycmVudFdpZHRoIiwic3ViU3RyaW5nIiwiY2hhciIsInN1YnN0ciIsInN0cmluZ1dpZHRoIiwibW9kdWxlIiwiZXhwb3J0cyIsInN0cmlwQW5zaSIsInJlcXVpcmUiLCJpc0Z1bGx3aWR0aENvZGVQb2ludCIsImVtb2ppUmVnZXgiLCJjb2RlIiwiY29kZVBvaW50QXQiLCJjb2RlUG9pbnQiLCJOdW1iZXIiLCJpc05hTiIsImFuc2lSZWdleCIsIm9ubHlGaXJzdCIsInBhdHRlcm4iLCJqb2luIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsTztRQ1ZBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBOzs7UUFHQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMENBQTBDLGdDQUFnQztRQUMxRTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLHdEQUF3RCxrQkFBa0I7UUFDMUU7UUFDQSxpREFBaUQsY0FBYztRQUMvRDs7UUFFQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EseUNBQXlDLGlDQUFpQztRQUMxRSxnSEFBZ0gsbUJBQW1CLEVBQUU7UUFDckk7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwyQkFBMkIsMEJBQTBCLEVBQUU7UUFDdkQsaUNBQWlDLGVBQWU7UUFDaEQ7UUFDQTtRQUNBOztRQUVBO1FBQ0Esc0RBQXNELCtEQUErRDs7UUFFckg7UUFDQTs7O1FBR0E7UUFDQTs7Ozs7Ozs7Ozs7OztBQ2xGQTtBQUFBOztBQUVlLHlFQUFDQSxRQUFELEVBQVdDLE1BQVgsRUFBc0I7QUFDbkMsTUFBTUMsS0FBSyxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUJKLFFBQXZCLENBQWQ7O0FBRUEsTUFBSSxDQUFDRSxLQUFMLEVBQVk7QUFDVjtBQUNELEdBTGtDLENBT25DOzs7QUFDQSxNQUFJLENBQUMsQ0FBQ0QsTUFBTSxDQUFDLFlBQUQsQ0FBWixFQUE0QjtBQUMxQjtBQUNBO0FBQ0FDLFNBQUssQ0FB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QUNBOztBQUVELFNBQU8sS0FBUDtBQUNBLENBM0NEOztBQTZDQVIsTUFBTSxDQUFDQyxPQUFQLEdBQWlCRyxvQkFBakI7QUFDQUosTUFBTSxDQUFDQyxPQUFQLGNBQXlCRyxvQkFBekIsQzs7Ozs7Ozs7Ozs7O0FDakRhOztBQUNiLElBQU1PLFNBQVMsR0FBR1IsbUJBQU8sQ0FBQyw4RUFBRCxDQUF6Qjs7QUFFQUgsTUFBTSxDQUFDQyxPQUFQLEdBQWlCLFVBQUFWLE1BQU07QUFBQSxTQUFJLE9BQU9BLE1BQVAsS0FBa0IsUUFBbEIsR0FBNkJBLE1BQU0sQ0FBQzNCLE9BQVAsQ0FBZStDLFNBQVMsRUFBeEIsRUFBNEIsRUFBNUIsQ0FBN0IsR0FBK0RwQixNQUFuRTtBQUFBLENBQXZCLEM7Ozs7Ozs7Ozs7OztBQ0hhOztBQUViUyxNQUFNLENBQUNDLE9BQVAsR0FBaUIsWUFBOEI7QUFBQSxpRkFBUCxFQUFPO0FBQUEsNEJBQTVCVyxTQUE0QjtBQUFBLE1BQTVCQSxTQUE0QiwrQkFBaEIsS0FBZ0I7O0FBQzlDLE1BQU1DLE9BQU8sR0FBRyxDQUNmLDZGQURlLEVBRWYsMERBRmUsRUFHZEMsSUFIYyxDQUdULEdBSFMsQ0FBaEI7QUFLQSxTQUFPLElBQUl2RSxNQUFKLENBQVdzRSxPQUFYLEVBQW9CRCxTQUFTLEdBQUdwQyxTQUFILEdBQWUsR0FBNUMsQ0FBUDtBQUNBLENBUEQsQzs7Ozs7Ozs7Ozs7O0FDRkE7QUFBQSIsImZpbGUiOiJzdmctcGFwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJTdmdQYXBlclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJTdmdQYXBlclwiXSA9IGZhY3RvcnkoKTtcbn0pKHdpbmRvdywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydCBkZWZhdWx0IChzZWxlY3RvciwgY29uZmlnKSA9PiB7XG4gIGNvbnN0ICR0aGlzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcilcblxuICBpZiAoISR0aGlzKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBzaHJpbmsgdGV4dCBlbGVtZW50IHRvIHNwZWNpZmllZCB3aWR0aFxuICBpZiAoISFjb25maWdbJ3RleHRMZW5ndGgnXSkge1xuICAgIC8vIGZvciBmaXJlZm94XG4gICAgLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9qYS9kb2NzL1dlYi9BUEkvRWxlbWVudC9jbGllbnRXaWR0aFxuICAgICR0aGlzLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG5cbiAgICBpZiAoJHRoaXMuY2xpZW50V2lkdGggPiBjb25maWcudGV4dExlbmd0aCkge1xuICAgICAgJHRoaXMucXVlcnlTZWxlY3RvcigndHNwYW4nKS5zZXRBdHRyaWJ1dGUoJ3RleHRMZW5ndGgnLCBjb25maWcudGV4dExlbmd0aClcbiAgICAgICR0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3RzcGFuJykuc2V0QXR0cmlidXRlKCdsZW5ndGhBZGp1c3QnLCAnc3BhY2luZ0FuZEdseXBocycpXG5cbiAgICAgIC8vIGZvciBmaXJlZm94XG4gICAgICAvLyBAc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg5MDY5MlxuICAgICAgJHRoaXMuc2V0QXR0cmlidXRlKCd0ZXh0TGVuZ3RoJywgY29uZmlnLnRleHRMZW5ndGgpXG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ2xlbmd0aEFkanVzdCcsICdzcGFjaW5nQW5kR2x5cGhzJylcbiAgICB9XG4gIH1cblxuICAvLyBhbGlnbm1lbnRcbiAgaWYgKCEhY29uZmlnWyd0ZXh0LWFuY2hvciddICYmIGNvbmZpZ1sndGV4dC1hbmNob3InXSAhPT0gJ3N0YXJ0Jykge1xuICAgIGNvbnN0IHcgPSBwYXJzZUZsb2F0KGNvbmZpZ1sndGV4dExlbmd0aCddKVxuICAgIGxldCB4ID0gMFxuICAgIGxldCB5ID0gMFxuICAgIGlmICgkdGhpcy5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpKSB7XG4gICAgICB4ID0gcGFyc2VGbG9hdCgkdGhpcy5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpLm1hdGNoKC90cmFuc2xhdGVcXCgoXFxTKykgLitcXCkvKVsxXSlcbiAgICAgIHkgPSBwYXJzZUZsb2F0KCR0aGlzLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL3RyYW5zbGF0ZVxcKFxcUysgKC4rKVxcKS8pWzFdKVxuICAgIH1cblxuICAgIGlmIChjb25maWdbJ3RleHQtYW5jaG9yJ10gPT09ICdtaWRkbGUnKSB7XG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHt4ICsgKHcgLyAyKX0gJHt5fSlgKVxuICAgIH1cblxuICAgIGlmIChjb25maWdbJ3RleHQtYW5jaG9yJ10gPT09ICdlbmQnKSB7XG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHt4ICsgd30gJHt5fSlgKVxuICAgIH1cblxuICAgICR0aGlzLnNldEF0dHJpYnV0ZSgndGV4dC1hbmNob3InLCBjb25maWdbJ3RleHQtYW5jaG9yJ10pXG4gIH1cbn1cbiIsIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgc3BsaXRTdHJpbmdCeVdpZHRoIGZyb20gJy4vdXRpbGl0eS9zcGxpdC1zdHJpbmctYnktd2lkdGgnXG5pbXBvcnQgZml4VGV4dFRyYW5zZm9ybSBmcm9tICcuL3V0aWxpdHkvZml4LXRleHQtdHJhbnNmb3JtJ1xuXG5leHBvcnQgZGVmYXVsdCAodGV4dFN2ZywgdGV4dENvbnRlbnQsIHdpZHRoLCBoZWlnaHQsIGxpbmVIZWlnaHQgPSAxLjIsIHBhZGRpbmdYID0gMC41LCBwYWRkaW5nWSA9IDAuNSwgbm93cmFwID0gZmFsc2UpID0+IHtcbiAgaWYgKCF0ZXh0U3ZnLm1hdGNoKG5ldyBSZWdFeHAoJzx0ZXh0IFtePl0qZm9udC1zaXplPVwiXFxcXGQrXCJbXj5dKj48dHNwYW4oIFtePl0qPnw+KVtePD5dKjwvdHNwYW4+PC90ZXh0PicpKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgc3ZnIHN0cmluZyBvZiB0ZXh0IGVsZW1lbnQnLCB0ZXh0U3ZnKVxuICAgIHJldHVybiB0ZXh0U3ZnXG4gIH1cblxuICBjb25zdCBvcmlnaW5hbEZvbnRTaXplID0gcGFyc2VJbnQodGV4dFN2Zy5tYXRjaCgvLitmb250LXNpemU9XCIoXFxkKylcIi4rLylbMV0pXG4gIGxldCBmb250U2l6ZSA9IG9yaWdpbmFsRm9udFNpemVcblxuICAvLyBmaW5kIHRoZSByaWdodC1zaXplIGZvbnQtc2l6ZVxuICBjb25zdCBwaHlzaWNhbExpbmVzID0gdGV4dENvbnRlbnQuc3BsaXQoXCJcXG5cIilcbiAgbGV0IGxvZ2ljYWxMaW5lcyA9IFtdXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IG1heFJvd3MgPSBNYXRoLmZsb29yKChoZWlnaHQgLSAoMiAqIGZvbnRTaXplICogcGFkZGluZ1kpKSAvIChmb250U2l6ZSAqIGxpbmVIZWlnaHQpKVxuICAgIGxldCBtYXhDb2x1bW5zID0gTWF0aC5mbG9vcigod2lkdGggLSAoMiAqIGZvbnRTaXplICogcGFkZGluZ1gpKSAvIGZvbnRTaXplKSAvLyBkb2Vzbid0IGNhcmUgYWJvdXQgcHJvcG9ydGlvbmFsIGZvbnRcblxuICAgIGlmIChub3dyYXApIHtcbiAgICAgIGxvZ2ljYWxMaW5lcyA9IHBoeXNpY2FsTGluZXNcbiAgICB9IGVsc2Uge1xuICAgICAgbG9naWNhbExpbmVzID0gW11cbiAgICAgIHBoeXNpY2FsTGluZXMuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgbG9naWNhbExpbmVzID0gbG9naWNhbExpbmVzLmNvbmNhdChzcGxpdFN0cmluZ0J5V2lkdGgobGluZSwgbWF4Q29sdW1ucyAqIDIpKSAvLyAyIHNpbmdsZS1ieXRlIGNoYXJhY3RlcnMgY2FuIGJlIHBsYWNlZCBpbiAxIGNvbHVtblxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAobG9naWNhbExpbmVzLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIGZvbnRTaXplICo9IDAuOTVcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvLyByYWlzZSB5LWNvb3JkaW5hdGUgdXAgYmVjYXVzZSB5LWNvb3JkaW5hdGUgb2YgPHRleHQgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIj4gb3IgPHRzcGFuIHk9XCJcIj4gaXMgb24gbG93ZXIgYmFzZSBvZiB0ZXh0IG9iamVjdFxuICBjb25zdCBhZGp1c3RZID0gZm9udFNpemUgLSBvcmlnaW5hbEZvbnRTaXplXG5cbiAgbGV0IGFkanVzdGVkVGV4dFN2ZyA9IGZpeFRleHRUcmFuc2Zvcm0odGV4dFN2ZylcbiAgYWRqdXN0ZWRUZXh0U3ZnID0gYWRqdXN0ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRzcGFuKC58XFxcXHMpKzwvdGV4dD4nKSwgJycpXG4gIGFkanVzdGVkVGV4dFN2ZyA9IGFkanVzdGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJ2ZvbnQtc2l6ZT1cIlxcXFxkK1wiJyksIGBmb250LXNpemU9XCIke2ZvbnRTaXplfVwiYClcbiAgYWRqdXN0ZWRUZXh0U3ZnICs9ICd7dHNwYW59PC90ZXh0PidcblxuICBsZXQgdHNwYW4gPSAnJ1xuICBjb25zdCB4ID0gZm9udFNpemUgKiBwYWRkaW5nWFxuICBsb2dpY2FsTGluZXMuZm9yRWFjaCgobGluZSwgaSkgPT4ge1xuICAgIGNvbnN0IHkgPSBhZGp1c3RZICsgZm9udFNpemUgKiAocGFkZGluZ1kgKyAoaSAqIGxpbmVIZWlnaHQpKVxuICAgIHRzcGFuICs9IGA8dHNwYW4geD1cIiR7eH1cIiB5PVwiJHt5fVwiPiR7bGluZX08L3RzcGFuPmBcbiAgfSlcblxuICBhZGp1c3RlZFRleHRTdmcgPSBhZGp1c3RlZFRleHRTdmcucmVwbGFjZSgne3RzcGFufScsIHRzcGFuKVxuXG4gIHJldHVybiBhZGp1c3RlZFRleHRTdmdcbn1cbiIsIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgYWRqdXN0VGV4dCBmcm9tICcuL2FkanVzdC10ZXh0J1xuaW1wb3J0IGFkanVzdFRleHRhcmVhIGZyb20gJy4vYWRqdXN0LXRleHRhcmVhJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdmdQYXBlciB7XG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yID0gJy5wYXBlciBzdmcnKSB7XG4gICAgaWYgKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlbGVjdG9yJylcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3JcbiAgICB0aGlzLnN2ZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLm91dGVySFRNTC5yZXBsYWNlKC9bXFxyfFxcbl0rL2csIFwiXFxuXCIpXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcyA9IFtdXG4gIH1cblxuICByZXBsYWNlKHNlYXJjaCwgcmVwbGFjZW1lbnQpIHtcbiAgICBpZiAoc2VhcmNoIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICBzZWFyY2ggPSBuZXcgUmVnRXhwKHNlYXJjaC5zb3VyY2UsIHNlYXJjaC5mbGFncy5yZXBsYWNlKC9nL2csICcnKSArICdnJylcbiAgICB9IGVsc2Uge1xuICAgICAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoL1tcXHJ8XFxuXSsvZywgXCJcXG5cIilcblxuICAgICAgLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9qYS9kb2NzL1dlYi9KYXZhU2NyaXB0L0d1aWRlL1JlZ3VsYXJfRXhwcmVzc2lvbnMjZXNjYXBpbmdcbiAgICAgIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKC9bLiorP149IToke30oKXxbXFxdXFwvXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgICBzZWFyY2ggPSBuZXcgUmVnRXhwKHNlYXJjaCwgJ2cnKVxuICAgIH1cblxuICAgIC8vIGNhc3QgdG8gc3RyaW5nXG4gICAgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudCAhPT0gdW5kZWZpbmVkICYmIHJlcGxhY2VtZW50ICE9PSBudWxsID8gcmVwbGFjZW1lbnQgKyAnJyA6ICcnXG5cbiAgICByZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50LnJlcGxhY2UoL1tcXHJ8XFxuXSsvZywgXCJcXG5cIilcblxuICAgIHRoaXMuc3ZnID0gdGhpcy5zdmcucmVwbGFjZShzZWFyY2gsIHJlcGxhY2VtZW50KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFkanVzdFRleHQoc2VsZWN0b3IsIHRleHRMZW5ndGggPSBudWxsLCB0ZXh0QW5jaG9yID0gJ3N0YXJ0Jykge1xuICAgIHRoaXMuYWRqdXN0VGV4dFF1ZXJpZXMucHVzaCh7c2VsZWN0b3IsIHRleHRMZW5ndGgsIHRleHRBbmNob3J9KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFkanVzdFRleHRhcmVhKHNlbGVjdG9yLCB3aWR0aCwgaGVpZ2h0LCBsaW5lSGVpZ2h0ID0gMS4yLCBwYWRkaW5nWCA9IDAuNSwgcGFkZGluZ1kgPSAwLjUsIG5vd3JhcCA9IGZhbHNlKSB7XG4gICAgY29uc3QgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh0aGlzLnN2ZywgJ3RleHQvaHRtbCcpXG4gICAgY29uc3QgdGV4dEVsZW1lbnQgPSBkb2MucXVlcnlTZWxlY3RvcihzZWxlY3RvcilcbiAgICBpZiAoIXRleHRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGNvbnN0IHRleHRTdmcgPSB0ZXh0RWxlbWVudC5vdXRlckhUTUxcbiAgICAvLyBTVkdFbGVtZW50IGRvZXNuJ3QgaGF2ZSBpbm5lclRleHRcbiAgICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TVkdFbGVtZW50XG4gICAgY29uc3QgdGV4dENvbnRlbnQgPSB0ZXh0RWxlbWVudC5pbm5lckhUTUwucmVwbGFjZShuZXcgUmVnRXhwKCdePHRzcGFuW14+XSo+KFtcXFxcU3xcXFxcc10qKTwvdHNwYW4+JCcpLCAnJDEnKVxuXG4gICAgY29uc3QgYWRqdXN0ZWRUZXh0U3ZnID0gYWRqdXN0VGV4dGFyZWEodGV4dFN2ZywgdGV4dENvbnRlbnQsIHdpZHRoLCBoZWlnaHQsIGxpbmVIZWlnaHQsIHBhZGRpbmdYLCBwYWRkaW5nWSwgbm93cmFwKVxuXG4gICAgdGhpcy5yZXBsYWNlKHRleHRTdmcsIGFkanVzdGVkVGV4dFN2ZylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBhcHBseSgpIHtcbiAgICBpZiAodGhpcy5zdmcgIT09IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MKSB7XG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2VsZWN0b3IpLm91dGVySFRNTCA9IHRoaXMuc3ZnXG4gICAgfVxuXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcy5mb3JFYWNoKHF1ZXJ5ID0+IHtcbiAgICAgIGFkanVzdFRleHQocXVlcnkuc2VsZWN0b3IsIHtcbiAgICAgICAgdGV4dExlbmd0aDogcXVlcnkudGV4dExlbmd0aCxcbiAgICAgICAgJ3RleHQtYW5jaG9yJzogcXVlcnkudGV4dEFuY2hvcixcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIGluaXRpYWxpemVcbiAgICB0aGlzLnN2ZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcyA9IFtdXG4gIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0ICh0ZXh0U3ZnKSA9PiB7XG4gIGxldCBmaXhlZFRleHRTdmcgPSB0ZXh0U3ZnXG5cbiAgLy8gaWYgPHRleHQ+IGRvZXNuJ3QgaGF2ZSB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoeCB5KVwiLCBqdXN0IGFkZCBpdCB3aXRoICgwIDApXG4gIGlmICghZml4ZWRUZXh0U3ZnLm1hdGNoKC88dGV4dCBbXj5dKnRyYW5zZm9ybT1cIlteXCJdKlwiW14+XSo+LykpIHtcbiAgICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dGV4dChbXj5dKik+JyksICc8dGV4dCQxIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDApXCI+JylcbiAgfVxuXG4gIC8vIGlmIDx0c3Bhbj4gZG9lc24ndCBoYXZlIHg9XCJcIiB5PVwiXCIsIGp1c3QgYWRkIGl0IHdpdGggeD1cIjBcIiB5PVwiMFwiXG4gIGlmICghZml4ZWRUZXh0U3ZnLm1hdGNoKC88dHNwYW4gW14+XSp4PVwiW15cIl0qXCJbXj5dKj4vKSkge1xuICAgIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0c3BhbihbXj5dKik+JyksICc8dHNwYW4kMSB4PVwiMFwiPicpXG4gIH1cbiAgaWYgKCFmaXhlZFRleHRTdmcubWF0Y2goLzx0c3BhbiBbXj5dKnk9XCJbXlwiXSpcIltePl0qPi8pKSB7XG4gICAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRzcGFuKFtePl0qKT4nKSwgJzx0c3BhbiQxIHk9XCIwXCI+JylcbiAgfVxuXG4gIC8vIGNvcHkgeCBmcm9tIDx0c3BhbiB4PVwiXCI+IGFuZCBhZGQgaXQgdG8gPHRleHQgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIj5cbiAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW1xcXFxzXFxcXFNdKyl0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKChcXFxcUyspXFxcXHMrKC4rKVxcXFwpXCIoW14+XSopPlxccyo8dHNwYW4oW14+XSspeD1cIihbXlwiXSspXCInKSwgJzx0ZXh0JDF0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoIyMjJDIrJDYjIyMgJDMpXCIkND48dHNwYW4kNXg9XCIwXCInKVxuICBjb25zdCBleHByZXNzaW9uMSA9IGZpeGVkVGV4dFN2Zy5tYXRjaChuZXcgUmVnRXhwKCc8dGV4dFtcXFxcc1xcXFxTXSt0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKCMjIyguKykjIyMuK1xcXFwpXCInKSlbMV1cbiAgY29uc3QgeCA9IGV4cHJlc3Npb24xLm1hdGNoKC9cXGQrXFwrXFxkKy8pID8gZXZhbChleHByZXNzaW9uMSkgOiAwXG4gIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0ZXh0KFtcXFxcc1xcXFxTXSspdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgjIyMuKyMjIyguKylcXFxcKVwiJyksIGA8dGV4dCQxdHJhbnNmb3JtPVwidHJhbnNsYXRlKCR7eH0kMilcImApXG5cbiAgLy8gY29weSB5IGZyb20gPHRzcGFuIHk9XCJcIj4gYW5kIGFkZCBpdCB0byA8dGV4dCB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoeCB5KVwiPlxuICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dGV4dChbXFxcXHNcXFxcU10rKXRyYW5zZm9ybT1cInRyYW5zbGF0ZVxcXFwoKC4rKVxcXFxzKyhcXFxcUyspXFxcXClcIihbXj5dKik+XFxzKjx0c3BhbihbXj5dKyl5PVwiKFteXCJdKylcIicpLCAnPHRleHQkMXRyYW5zZm9ybT1cInRyYW5zbGF0ZSgkMiAjIyMkMyskNiMjIylcIiQ0Pjx0c3BhbiQ1eT1cIjBcIicpXG4gIGNvbnN0IGV4cHJlc3Npb24yID0gZml4ZWRUZXh0U3ZnLm1hdGNoKG5ldyBSZWdFeHAoJzx0ZXh0W1xcXFxzXFxcXFNdK3RyYW5zZm9ybT1cInRyYW5zbGF0ZVxcXFwoLisjIyMoLispIyMjXFxcXClcIicpKVsxXVxuICBjb25zdCB5ID0gZXhwcmVzc2lvbjIubWF0Y2goL1xcZCtcXCtcXGQrLykgPyBldmFsKGV4cHJlc3Npb24yKSA6IDBcbiAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW1xcXFxzXFxcXFNdKyl0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKCguKykjIyMuKyMjI1xcXFwpXCInKSwgYDx0ZXh0JDF0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoJDIke3l9KVwiYClcblxuICByZXR1cm4gZml4ZWRUZXh0U3ZnXG59XG4iLCJpbXBvcnQgc3ViU3RyaW5nQnlXaWR0aCBmcm9tICcuL3N1Yi1zdHJpbmctYnktd2lkdGgnXG5cbmV4cG9ydCBkZWZhdWx0IChzdHJpbmcsIHdpZHRoKSA9PiB7XG4gIGxldCBzcGxpdHMgPSBbXVxuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IHNwbGl0ID0gc3ViU3RyaW5nQnlXaWR0aChzdHJpbmcsIDAsIHdpZHRoKVxuICAgIHNwbGl0cy5wdXNoKHNwbGl0KVxuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKHNwbGl0LCAnJylcbiAgICBpZiAoIXN0cmluZykge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3BsaXRzXG59XG4iLCJpbXBvcnQgc3RyaW5nV2lkdGggZnJvbSAnc3RyaW5nLXdpZHRoJ1xuXG5leHBvcnQgZGVmYXVsdCAoc3RyaW5nLCBzdGFydCwgd2lkdGgpID0+IHtcbiAgbGV0IGN1cnJlbnRXaWR0aCA9IDBcbiAgbGV0IHN1YlN0cmluZyA9ICcnXG5cbiAgZm9yIChsZXQgaSA9IHN0YXJ0OyA7IGkrKykge1xuICAgIGNvbnN0IGNoYXIgPSBzdHJpbmcuc3Vic3RyKGksIDEpXG4gICAgY3VycmVudFdpZHRoICs9IHN0cmluZ1dpZHRoKGNoYXIpXG4gICAgaWYgKGN1cnJlbnRXaWR0aCA8PSB3aWR0aCAmJiBpIDw9IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgIHN1YlN0cmluZyArPSBjaGFyXG4gICAgfVxuICAgIGlmIChjdXJyZW50V2lkdGggPj0gd2lkdGggfHwgaSA+PSBzdHJpbmcubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gc3ViU3RyaW5nXG4gICAgfVxuICB9XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuICByZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/OlxcdURCNDBcXHVEQzY1XFx1REI0MFxcdURDNkVcXHVEQjQwXFx1REM2N3xcXHVEQjQwXFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REI0MFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1xcdURGRkNcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDXFx1REZGQnxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkZcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ10pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNEXFx1REM2OHwoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHUyMDBEKD86XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pKXxcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEZ8XFx1RDgzRFtcXHVEQzY2XFx1REM2N118XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfCg/OlxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdKVxcdUZFMEZ8XFx1RDgzQ1xcdURGRkJcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGQlxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZDXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY5KVxcdUQ4M0NcXHVERkZCfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1xcdURGRkZcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGRVxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkNcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OSkoPzpcXHVEODNDW1xcdURGRkJcXHVERkZDXSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQ1xcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQlxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdTIwMEQoPzpcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSkpfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY5XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzY2XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZFXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY5KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXSl8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjlcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RcXHVEQzQxXFx1RkUwRlxcdTIwMERcXHVEODNEXFx1RERFOHxcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSl8KD86KD86XFx1MjZGOXxcXHVEODNDW1xcdURGQ0JcXHVERkNDXXxcXHVEODNEXFx1REQ3NSlcXHVGRTBGfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ2LVxcdURERERdKSg/Oig/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXxcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXSl8XFx1RDgzQ1xcdURGRjRcXHUyMDBEXFx1MjYyMClcXHVGRTBGfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxcXHVEODNDXFx1REZGM1xcdUZFMEZcXHUyMDBEXFx1RDgzQ1xcdURGMDh8XFx1RDgzRFxcdURDMTVcXHUyMDBEXFx1RDgzRVxcdUREQkF8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjd8XFx1RDgzQ1xcdURERkRcXHVEODNDXFx1RERGMHxcXHVEODNDXFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdUQ4M0NcXHVEREY2XFx1RDgzQ1xcdURERTZ8WyNcXCowLTldXFx1RkUwRlxcdTIwRTN8XFx1RDgzQ1xcdURERTcoPzpcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY5KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVBKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV0pfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNDXFx1RERGNyg/OlxcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdKXxcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzQ1xcdURERjIoPzpcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdKXxcXHVEODNDXFx1RERFNig/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYwKD86XFx1RDgzQ1tcXHVEREVBXFx1RERFQy1cXHVEREVFXFx1RERGMlxcdURERjNcXHVEREY1XFx1RERGN1xcdURERkNcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVEKD86XFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdKXxcXHVEODNDXFx1RERFOSg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl0pfFxcdUQ4M0NcXHVEREZFKD86XFx1RDgzQ1tcXHVEREVBXFx1RERGOV0pfFxcdUQ4M0NcXHVEREVDKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXSl8XFx1RDgzQ1xcdURERjgoPzpcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdKXxcXHVEODNDXFx1RERFQig/OlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XSl8XFx1RDgzQ1xcdURERjUoPzpcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREZCKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXSl8XFx1RDgzQ1xcdURERjMoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl0pfFxcdUQ4M0NcXHVEREU4KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERUVcXHVEREYwLVxcdURERjVcXHVEREY3XFx1RERGQS1cXHVEREZGXSl8XFx1RDgzQ1xcdURERjEoPzpcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV0pfFxcdUQ4M0NcXHVEREZGKD86XFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdKXxcXHVEODNDXFx1RERGQyg/OlxcdUQ4M0NbXFx1RERFQlxcdURERjhdKXxcXHVEODNDXFx1RERGQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVFKD86XFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldKXxcXHVEODNDXFx1RERFRig/OlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV0pfCg/OlxcdUQ4M0NbXFx1REZDM1xcdURGQzRcXHVERkNBXXxcXHVEODNEW1xcdURDNkVcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDYtXFx1RERERF0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86W1xcdTI2MURcXHUyNzBBLVxcdTI3MERdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcwXFx1REM3MlxcdURDNzQtXFx1REM3NlxcdURDNzhcXHVEQzdDXFx1REM4M1xcdURDODVcXHVEQ0FBXFx1REQ3NFxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTRDXFx1REU0RlxcdURFQzBcXHVERUNDXXxcXHVEODNFW1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNlxcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDItXFx1RERENV0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpbXFx1MjMxQVxcdTIzMUJcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNUZFXFx1MjYxNFxcdTI2MTVcXHUyNjQ4LVxcdTI2NTNcXHUyNjdGXFx1MjY5M1xcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkYyXFx1MjZGM1xcdTI2RjVcXHUyNkZBXFx1MjZGRFxcdTI3MDVcXHUyNzBBXFx1MjcwQlxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3NTdcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCMUJcXHUyQjFDXFx1MkI1MFxcdTJCNTVdfFxcdUQ4M0NbXFx1REMwNFxcdURDQ0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1RERFNi1cXHVEREZGXFx1REUwMVxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTM2XFx1REUzOC1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjBcXHVERjJELVxcdURGMzVcXHVERjM3LVxcdURGN0NcXHVERjdFLVxcdURGOTNcXHVERkEwLVxcdURGQ0FcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY0XFx1REZGOC1cXHVERkZGXXxcXHVEODNEW1xcdURDMDAtXFx1REMzRVxcdURDNDBcXHVEQzQyLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVERDdBXFx1REQ5NVxcdUREOTZcXHVEREE0XFx1RERGQi1cXHVERTRGXFx1REU4MC1cXHVERUM1XFx1REVDQ1xcdURFRDAtXFx1REVEMlxcdURFRDVcXHVERUVCXFx1REVFQ1xcdURFRjQtXFx1REVGQVxcdURGRTAtXFx1REZFQl18XFx1RDgzRVtcXHVERDBELVxcdUREM0FcXHVERDNDLVxcdURENDVcXHVERDQ3LVxcdURENzFcXHVERDczLVxcdURENzZcXHVERDdBLVxcdUREQTJcXHVEREE1LVxcdUREQUFcXHVEREFFLVxcdUREQ0FcXHVERENELVxcdURERkZcXHVERTcwLVxcdURFNzNcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODJcXHVERTkwLVxcdURFOTVdKXwoPzpbI1xcKjAtOVxceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFOS1cXHUyM0YzXFx1MjNGOC1cXHUyM0ZBXFx1MjRDMlxcdTI1QUFcXHUyNUFCXFx1MjVCNlxcdTI1QzBcXHUyNUZCLVxcdTI1RkVcXHUyNjAwLVxcdTI2MDRcXHUyNjBFXFx1MjYxMVxcdTI2MTRcXHUyNjE1XFx1MjYxOFxcdTI2MURcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyLVxcdTI2OTdcXHUyNjk5XFx1MjY5QlxcdTI2OUNcXHUyNkEwXFx1MjZBMVxcdTI2QUFcXHUyNkFCXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM1XFx1MjZDOFxcdTI2Q0VcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkQ0XFx1MjZFOVxcdTI2RUFcXHUyNkYwLVxcdTI2RjVcXHUyNkY3LVxcdTI2RkFcXHUyNkZEXFx1MjcwMlxcdTI3MDVcXHUyNzA4LVxcdTI3MERcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzI4XFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc1N1xcdTI3NjNcXHUyNzY0XFx1Mjc5NS1cXHUyNzk3XFx1MjdBMVxcdTI3QjBcXHUyN0JGXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV18XFx1RDgzQ1tcXHVEQzA0XFx1RENDRlxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1RERFNi1cXHVEREZGXFx1REUwMVxcdURFMDJcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIxXFx1REYyNC1cXHVERjkzXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFLVxcdURGRjBcXHVERkYzLVxcdURGRjVcXHVERkY3LVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVEQ0ZEXFx1RENGRi1cXHVERDNEXFx1REQ0OS1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1REQ2RlxcdURENzBcXHVERDczLVxcdUREN0FcXHVERDg3XFx1REQ4QS1cXHVERDhEXFx1REQ5MFxcdUREOTVcXHVERDk2XFx1RERBNFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBLVxcdURFNEZcXHVERTgwLVxcdURFQzVcXHVERUNCLVxcdURFRDJcXHVERUQ1XFx1REVFMC1cXHVERUU1XFx1REVFOVxcdURFRUJcXHVERUVDXFx1REVGMFxcdURFRjMtXFx1REVGQVxcdURGRTAtXFx1REZFQl18XFx1RDgzRVtcXHVERDBELVxcdUREM0FcXHVERDNDLVxcdURENDVcXHVERDQ3LVxcdURENzFcXHVERDczLVxcdURENzZcXHVERDdBLVxcdUREQTJcXHVEREE1LVxcdUREQUFcXHVEREFFLVxcdUREQ0FcXHVERENELVxcdURERkZcXHVERTcwLVxcdURFNzNcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODJcXHVERTkwLVxcdURFOTVdKVxcdUZFMEZ8KD86W1xcdTI2MURcXHUyNkY5XFx1MjcwQS1cXHUyNzBEXXxcXHVEODNDW1xcdURGODVcXHVERkMyLVxcdURGQzRcXHVERkM3XFx1REZDQS1cXHVERkNDXXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2Ni1cXHVEQzc4XFx1REM3Q1xcdURDODEtXFx1REM4M1xcdURDODUtXFx1REM4N1xcdURDOEZcXHVEQzkxXFx1RENBQVxcdURENzRcXHVERDc1XFx1REQ3QVxcdUREOTBcXHVERDk1XFx1REQ5NlxcdURFNDUtXFx1REU0N1xcdURFNEItXFx1REU0RlxcdURFQTNcXHVERUI0LVxcdURFQjZcXHVERUMwXFx1REVDQ118XFx1RDgzRVtcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQyNlxcdUREMzAtXFx1REQzOVxcdUREM0MtXFx1REQzRVxcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZztcbn07XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBzdHJpcEFuc2kgPSByZXF1aXJlKCdzdHJpcC1hbnNpJyk7XG5jb25zdCBpc0Z1bGx3aWR0aENvZGVQb2ludCA9IHJlcXVpcmUoJ2lzLWZ1bGx3aWR0aC1jb2RlLXBvaW50Jyk7XG5jb25zdCBlbW9qaVJlZ2V4ID0gcmVxdWlyZSgnZW1vamktcmVnZXgnKTtcblxuY29uc3Qgc3RyaW5nV2lkdGggPSBzdHJpbmcgPT4ge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycgfHwgc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0c3RyaW5nID0gc3RyaXBBbnNpKHN0cmluZyk7XG5cblx0aWYgKHN0cmluZy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKGVtb2ppUmVnZXgoKSwgJyAgJyk7XG5cblx0bGV0IHdpZHRoID0gMDtcblxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IGNvZGUgPSBzdHJpbmcuY29kZVBvaW50QXQoaSk7XG5cblx0XHQvLyBJZ25vcmUgY29udHJvbCBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGUgPD0gMHgxRiB8fCAoY29kZSA+PSAweDdGICYmIGNvZGUgPD0gMHg5RikpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIElnbm9yZSBjb21iaW5pbmcgY2hhcmFjdGVyc1xuXHRcdGlmIChjb2RlID49IDB4MzAwICYmIGNvZGUgPD0gMHgzNkYpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIFN1cnJvZ2F0ZXNcblx0XHRpZiAoY29kZSA+IDB4RkZGRikge1xuXHRcdFx0aSsrO1xuXHRcdH1cblxuXHRcdHdpZHRoICs9IGlzRnVsbHdpZHRoQ29kZVBvaW50KGNvZGUpID8gMiA6IDE7XG5cdH1cblxuXHRyZXR1cm4gd2lkdGg7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZ1dpZHRoO1xuLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvblxubW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IHN0cmluZ1dpZHRoO1xuIiwiLyogZXNsaW50LWRpc2FibGUgeW9kYSAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBpc0Z1bGx3aWR0aENvZGVQb2ludCA9IGNvZGVQb2ludCA9PiB7XG5cdGlmIChOdW1iZXIuaXNOYU4oY29kZVBvaW50KSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIENvZGUgcG9pbnRzIGFyZSBkZXJpdmVkIGZyb206XG5cdC8vIGh0dHA6Ly93d3cudW5peC5vcmcvUHVibGljL1VOSURBVEEvRWFzdEFzaWFuV2lkdGgudHh0XG5cdGlmIChcblx0XHRjb2RlUG9pbnQgPj0gMHgxMTAwICYmIChcblx0XHRcdGNvZGVQb2ludCA8PSAweDExNUYgfHwgLy8gSGFuZ3VsIEphbW9cblx0XHRcdGNvZGVQb2ludCA9PT0gMHgyMzI5IHx8IC8vIExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVFxuXHRcdFx0Y29kZVBvaW50ID09PSAweDIzMkEgfHwgLy8gUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVFxuXHRcdFx0Ly8gQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQgLi4gRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRoc1xuXHRcdFx0KDB4MkU4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MzI0NyAmJiBjb2RlUG9pbnQgIT09IDB4MzAzRikgfHxcblx0XHRcdC8vIEVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMgLi4gQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQVxuXHRcdFx0KDB4MzI1MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4NERCRikgfHxcblx0XHRcdC8vIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgLi4gWWkgUmFkaWNhbHNcblx0XHRcdCgweDRFMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0QzYpIHx8XG5cdFx0XHQvLyBIYW5ndWwgSmFtbyBFeHRlbmRlZC1BXG5cdFx0XHQoMHhBOTYwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhBOTdDKSB8fFxuXHRcdFx0Ly8gSGFuZ3VsIFN5bGxhYmxlc1xuXHRcdFx0KDB4QUMwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RDdBMykgfHxcblx0XHRcdC8vIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHNcblx0XHRcdCgweEY5MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZBRkYpIHx8XG5cdFx0XHQvLyBWZXJ0aWNhbCBGb3Jtc1xuXHRcdFx0KDB4RkUxMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkUxOSkgfHxcblx0XHRcdC8vIENKSyBDb21wYXRpYmlsaXR5IEZvcm1zIC4uIFNtYWxsIEZvcm0gVmFyaWFudHNcblx0XHRcdCgweEZFMzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNkIpIHx8XG5cdFx0XHQvLyBIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3Jtc1xuXHRcdFx0KDB4RkYwMSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkY2MCkgfHxcblx0XHRcdCgweEZGRTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZGRTYpIHx8XG5cdFx0XHQvLyBLYW5hIFN1cHBsZW1lbnRcblx0XHRcdCgweDFCMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxQjAwMSkgfHxcblx0XHRcdC8vIEVuY2xvc2VkIElkZW9ncmFwaGljIFN1cHBsZW1lbnRcblx0XHRcdCgweDFGMjAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjI1MSkgfHxcblx0XHRcdC8vIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEIgLi4gVGVydGlhcnkgSWRlb2dyYXBoaWMgUGxhbmVcblx0XHRcdCgweDIwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzRkZGRClcblx0XHQpXG5cdCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bGx3aWR0aENvZGVQb2ludDtcbm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSBpc0Z1bGx3aWR0aENvZGVQb2ludDtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGFuc2lSZWdleCA9IHJlcXVpcmUoJ2Fuc2ktcmVnZXgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdHJpbmcgPT4gdHlwZW9mIHN0cmluZyA9PT0gJ3N0cmluZycgPyBzdHJpbmcucmVwbGFjZShhbnNpUmVnZXgoKSwgJycpIDogc3RyaW5nO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICh7b25seUZpcnN0ID0gZmFsc2V9ID0ge30pID0+IHtcblx0Y29uc3QgcGF0dGVybiA9IFtcblx0XHQnW1xcXFx1MDAxQlxcXFx1MDA5Ql1bW1xcXFxdKCkjOz9dKig/Oig/Oig/OlthLXpBLVpcXFxcZF0qKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpJyxcblx0XHQnKD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSknXG5cdF0uam9pbignfCcpO1xuXG5cdHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4sIG9ubHlGaXJzdCA/IHVuZGVmaW5lZCA6ICdnJyk7XG59O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307Il0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TdmdQYXBlci93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9qcy9zcmMvYWRqdXN0LXRleHQuanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9qcy9zcmMvYWRqdXN0LXRleHRhcmVhLmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL3N2Zy1wYXBlci5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L2ZpeC10ZXh0LXRyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L3NwbGl0LXN0cmluZy1ieS13aWR0aC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L3N1Yi1zdHJpbmctYnktd2lkdGguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvZW1vamktcmVnZXgvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaW5nLXdpZHRoL2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vbm9kZV9tb2R1bGVzL3N0cmluZy13aWR0aC9ub2RlX21vZHVsZXMvaXMtZnVsbHdpZHRoLWNvZGUtcG9pbnQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9pbmRleC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL25vZGVfbW9kdWxlcy9zdHJpcC1hbnNpL25vZGVfbW9kdWxlcy9hbnNpLXJlZ2V4L2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vc2Nzcy9zdmctcGFwZXIuc2Nzcz9mOWQyIl0sIm5hbWVzIjpbInBhcGVyUGl4ZWxSYXRpbyIsInNlbGVjdG9yIiwiY29uZmlnIiwiJHRoaXMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJzdHlsZSIsImRpc3BsYXkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsInRleHRMZW5ndGgiLCJzZXRBdHRyaWJ1dGUiLCJ3IiwicGFyc2VGbG9hdCIsIngiLCJ5IiwiZ2V0QXR0cmlidXRlIiwibWF0Y2giLCJ0ZXh0U3ZnIiwidGV4dENvbnRlbnQiLCJoZWlnaHQiLCJsaW5lSGVpZ2h0IiwicGFkZGluZ1giLCJwYWRkaW5nWSIsIm5vd3JhcCIsIlJlZ0V4cCIsImNvbnNvbGUiLCJlcnJvciIsIm9yaWdpbmFsRm9udFNpemUiLCJwYXJzZUludCIsImZvbnRTaXplIiwicGh5c2ljYWxMaW5lcyIsInNwbGl0IiwibG9naWNhbExpbmVzIiwibWF4Um93cyIsIk1hdGgiLCJmbG9vciIsIm1heENvbHVtbnMiLCJmb3JFYWNoIiwibGluZSIsImNvbmNhdCIsInNwbGl0U3RyaW5nQnlXaWR0aCIsImxlbmd0aCIsImFkanVzdFkiLCJhZGp1c3RlZFRleHRTdmciLCJmaXhUZXh0VHJhbnNmb3JtIiwicmVwbGFjZSIsInRzcGFuIiwiaSIsIlN2Z1BhcGVyIiwiRXJyb3IiLCJzdmciLCJvdXRlckhUTUwiLCJhZGp1c3RUZXh0UXVlcmllcyIsInNlYXJjaCIsInJlcGxhY2VtZW50Iiwic291cmNlIiwiZmxhZ3MiLCJ1bmRlZmluZWQiLCJ0ZXh0QW5jaG9yIiwicHVzaCIsImRvYyIsIkRPTVBhcnNlciIsInBhcnNlRnJvbVN0cmluZyIsInRleHRFbGVtZW50IiwiaW5uZXJIVE1MIiwiYWRqdXN0VGV4dGFyZWEiLCJxdWVyeSIsIiRzdmciLCJ2aWV3Qm94V2lkdGgiLCJhZGp1c3RUZXh0IiwiZml4ZWRUZXh0U3ZnIiwiZXhwcmVzc2lvbjEiLCJldmFsIiwiZXhwcmVzc2lvbjIiLCJzdHJpbmciLCJzcGxpdHMiLCJzdWJTdHJpbmdCeVdpZHRoIiwic3RhcnQiLCJjdXJyZW50V2lkdGgiLCJzdWJTdHJpbmciLCJjaGFyIiwic3Vic3RyIiwic3RyaW5nV2lkdGgiLCJtb2R1bGUiLCJleHBvcnRzIiwic3RyaXBBbnNpIiwicmVxdWlyZSIsImlzRnVsbHdpZHRoQ29kZVBvaW50IiwiZW1vamlSZWdleCIsImNvZGUiLCJjb2RlUG9pbnRBdCIsImNvZGVQb2ludCIsIk51bWJlciIsImlzTmFOIiwiYW5zaVJlZ2V4Iiwib25seUZpcnN0IiwicGF0dGVybiIsImpvaW4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxPO1FDVkE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7OztRQUdBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwwQ0FBMEMsZ0NBQWdDO1FBQzFFO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0Esd0RBQXdELGtCQUFrQjtRQUMxRTtRQUNBLGlEQUFpRCxjQUFjO1FBQy9EOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSx5Q0FBeUMsaUNBQWlDO1FBQzFFLGdIQUFnSCxtQkFBbUIsRUFBRTtRQUNySTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDJCQUEyQiwwQkFBMEIsRUFBRTtRQUN2RCxpQ0FBaUMsZUFBZTtRQUNoRDtRQUNBO1FBQ0E7O1FBRUE7UUFDQSxzREFBc0QsK0RBQStEOztRQUVySDtRQUNBOzs7UUFHQTtRQUNBOzs7Ozs7Ozs7Ozs7O0FDbEZBO0FBQUE7O0FBRWUseUVBQUNBLGVBQUQsRUFBa0JDLFFBQWxCLEVBQTRCQyxNQUE1QixFQUF1QztBQUNwRCxNQUFNQyxLQUFLLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QkosUUFBdkIsQ0FBZDs7QUFFQSxNQUFJLENBQUNFLEtBQUwsRUFBWTtBQUNWO0FBQ0QsR0FMbUQsQ0FPcEQ7OztBQUNBLE1B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LE9BQU8sR0FBRyxDQUNmLDZGQURlLEVBRWYsMERBRmUsRUFHZEMsSUFIYyxDQUdULEdBSFMsQ0FBaEI7QUFLQSxTQUFPLElBQUl6RSxNQUFKLENBQVd3RSxPQUFYLEVBQW9CRCxTQUFTLEdBQUd0QyxTQUFILEdBQWUsR0FBNUMsQ0FBUDtBQUNBLENBUEQsQzs7Ozs7Ozs7Ozs7O0FDRkE7QUFBQSIsImZpbGUiOiJzdmctcGFwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJTdmdQYXBlclwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJTdmdQYXBlclwiXSA9IGZhY3RvcnkoKTtcbn0pKHdpbmRvdywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydCBkZWZhdWx0IChwYXBlclBpeGVsUmF0aW8sIHNlbGVjdG9yLCBjb25maWcpID0+IHtcbiAgY29uc3QgJHRoaXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKVxuXG4gIGlmICghJHRoaXMpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIHNocmluayB0ZXh0IGVsZW1lbnQgdG8gc3BlY2lmaWVkIHdpZHRoXG4gIGlmICghIWNvbmZpZ1sndGV4dExlbmd0aCddKSB7XG4gICAgLy8gZm9yIGZpcmVmb3hcbiAgICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2phL2RvY3MvV2ViL0FQSS9FbGVtZW50L2NsaWVudFdpZHRoXG4gICAgJHRoaXMuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcblxuICAgIGlmICgkdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAqIHBhcGVyUGl4ZWxSYXRpbyA+IGNvbmZpZy50ZXh0TGVuZ3RoKSB7XG4gICAgICAkdGhpcy5xdWVyeVNlbGVjdG9yKCd0c3BhbicpLnNldEF0dHJpYnV0ZSgndGV4dExlbmd0aCcsIGNvbmZpZy50ZXh0TGVuZ3RoKVxuICAgICAgJHRoaXMucXVlcnlTZWxlY3RvcigndHNwYW4nKS5zZXRBdHRyaWJ1dGUoJ2xlbmd0aEFkanVzdCcsICdzcGFjaW5nQW5kR2x5cGhzJylcblxuICAgICAgLy8gZm9yIGZpcmVmb3hcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkwNjkyXG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ3RleHRMZW5ndGgnLCBjb25maWcudGV4dExlbmd0aClcbiAgICAgICR0aGlzLnNldEF0dHJpYnV0ZSgnbGVuZ3RoQWRqdXN0JywgJ3NwYWNpbmdBbmRHbHlwaHMnKVxuICAgIH1cbiAgfVxuXG4gIC8vIGFsaWdubWVudFxuICBpZiAoISFjb25maWdbJ3RleHQtYW5jaG9yJ10gJiYgY29uZmlnWyd0ZXh0LWFuY2hvciddICE9PSAnc3RhcnQnKSB7XG4gICAgY29uc3QgdyA9IHBhcnNlRmxvYXQoY29uZmlnWyd0ZXh0TGVuZ3RoJ10pXG4gICAgbGV0IHggPSAwXG4gICAgbGV0IHkgPSAwXG4gICAgaWYgKCR0aGlzLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykpIHtcbiAgICAgIHggPSBwYXJzZUZsb2F0KCR0aGlzLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL3RyYW5zbGF0ZVxcKChcXFMrKSAuK1xcKS8pWzFdKVxuICAgICAgeSA9IHBhcnNlRmxvYXQoJHRoaXMuZ2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nKS5tYXRjaCgvdHJhbnNsYXRlXFwoXFxTKyAoLispXFwpLylbMV0pXG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZ1sndGV4dC1hbmNob3InXSA9PT0gJ21pZGRsZScpIHtcbiAgICAgICR0aGlzLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke3ggKyAodyAvIDIpfSAke3l9KWApXG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZ1sndGV4dC1hbmNob3InXSA9PT0gJ2VuZCcpIHtcbiAgICAgICR0aGlzLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke3ggKyB3fSAke3l9KWApXG4gICAgfVxuXG4gICAgJHRoaXMuc2V0QXR0cmlidXRlKCd0ZXh0LWFuY2hvcicsIGNvbmZpZ1sndGV4dC1hbmNob3InXSlcbiAgfVxufVxuIiwiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBzcGxpdFN0cmluZ0J5V2lkdGggZnJvbSAnLi91dGlsaXR5L3NwbGl0LXN0cmluZy1ieS13aWR0aCdcbmltcG9ydCBmaXhUZXh0VHJhbnNmb3JtIGZyb20gJy4vdXRpbGl0eS9maXgtdGV4dC10cmFuc2Zvcm0nXG5cbmV4cG9ydCBkZWZhdWx0ICh0ZXh0U3ZnLCB0ZXh0Q29udGVudCwgd2lkdGgsIGhlaWdodCwgbGluZUhlaWdodCA9IDEuMiwgcGFkZGluZ1ggPSAwLjUsIHBhZGRpbmdZID0gMC41LCBub3dyYXAgPSBmYWxzZSkgPT4ge1xuICBpZiAoIXRleHRTdmcubWF0Y2gobmV3IFJlZ0V4cCgnPHRleHQgW14+XSpmb250LXNpemU9XCJcXFxcZCtcIltePl0qPjx0c3BhbiggW14+XSo+fD4pW148Pl0qPC90c3Bhbj48L3RleHQ+JykpKSB7XG4gICAgY29uc29sZS5lcnJvcignSW52YWxpZCBzdmcgc3RyaW5nIG9mIHRleHQgZWxlbWVudCcsIHRleHRTdmcpXG4gICAgcmV0dXJuIHRleHRTdmdcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsRm9udFNpemUgPSBwYXJzZUludCh0ZXh0U3ZnLm1hdGNoKC8uK2ZvbnQtc2l6ZT1cIihcXGQrKVwiLisvKVsxXSlcbiAgbGV0IGZvbnRTaXplID0gb3JpZ2luYWxGb250U2l6ZVxuXG4gIC8vIGZpbmQgdGhlIHJpZ2h0LXNpemUgZm9udC1zaXplXG4gIGNvbnN0IHBoeXNpY2FsTGluZXMgPSB0ZXh0Q29udGVudC5zcGxpdChcIlxcblwiKVxuICBsZXQgbG9naWNhbExpbmVzID0gW11cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBsZXQgbWF4Um93cyA9IE1hdGguZmxvb3IoKGhlaWdodCAtICgyICogZm9udFNpemUgKiBwYWRkaW5nWSkpIC8gKGZvbnRTaXplICogbGluZUhlaWdodCkpXG4gICAgbGV0IG1heENvbHVtbnMgPSBNYXRoLmZsb29yKCh3aWR0aCAtICgyICogZm9udFNpemUgKiBwYWRkaW5nWCkpIC8gZm9udFNpemUpIC8vIGRvZXNuJ3QgY2FyZSBhYm91dCBwcm9wb3J0aW9uYWwgZm9udFxuXG4gICAgaWYgKG5vd3JhcCkge1xuICAgICAgbG9naWNhbExpbmVzID0gcGh5c2ljYWxMaW5lc1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dpY2FsTGluZXMgPSBbXVxuICAgICAgcGh5c2ljYWxMaW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xuICAgICAgICBsb2dpY2FsTGluZXMgPSBsb2dpY2FsTGluZXMuY29uY2F0KHNwbGl0U3RyaW5nQnlXaWR0aChsaW5lLCBtYXhDb2x1bW5zICogMikpIC8vIDIgc2luZ2xlLWJ5dGUgY2hhcmFjdGVycyBjYW4gYmUgcGxhY2VkIGluIDEgY29sdW1uXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChsb2dpY2FsTGluZXMubGVuZ3RoID4gbWF4Um93cykge1xuICAgICAgZm9udFNpemUgKj0gMC45NVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8vIHJhaXNlIHktY29vcmRpbmF0ZSB1cCBiZWNhdXNlIHktY29vcmRpbmF0ZSBvZiA8dGV4dCB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoeCB5KVwiPiBvciA8dHNwYW4geT1cIlwiPiBpcyBvbiBsb3dlciBiYXNlIG9mIHRleHQgb2JqZWN0XG4gIGNvbnN0IGFkanVzdFkgPSBmb250U2l6ZSAtIG9yaWdpbmFsRm9udFNpemVcblxuICBsZXQgYWRqdXN0ZWRUZXh0U3ZnID0gZml4VGV4dFRyYW5zZm9ybSh0ZXh0U3ZnKVxuICBhZGp1c3RlZFRleHRTdmcgPSBhZGp1c3RlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dHNwYW4oLnxcXFxccykrPC90ZXh0PicpLCAnJylcbiAgYWRqdXN0ZWRUZXh0U3ZnID0gYWRqdXN0ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnZm9udC1zaXplPVwiXFxcXGQrXCInKSwgYGZvbnQtc2l6ZT1cIiR7Zm9udFNpemV9XCJgKVxuICBhZGp1c3RlZFRleHRTdmcgKz0gJ3t0c3Bhbn08L3RleHQ+J1xuXG4gIGxldCB0c3BhbiA9ICcnXG4gIGNvbnN0IHggPSBmb250U2l6ZSAqIHBhZGRpbmdYXG4gIGxvZ2ljYWxMaW5lcy5mb3JFYWNoKChsaW5lLCBpKSA9PiB7XG4gICAgY29uc3QgeSA9IGFkanVzdFkgKyBmb250U2l6ZSAqIChwYWRkaW5nWSArIChpICogbGluZUhlaWdodCkpXG4gICAgdHNwYW4gKz0gYDx0c3BhbiB4PVwiJHt4fVwiIHk9XCIke3l9XCI+JHtsaW5lfTwvdHNwYW4+YFxuICB9KVxuXG4gIGFkanVzdGVkVGV4dFN2ZyA9IGFkanVzdGVkVGV4dFN2Zy5yZXBsYWNlKCd7dHNwYW59JywgdHNwYW4pXG5cbiAgcmV0dXJuIGFkanVzdGVkVGV4dFN2Z1xufVxuIiwiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBhZGp1c3RUZXh0IGZyb20gJy4vYWRqdXN0LXRleHQnXG5pbXBvcnQgYWRqdXN0VGV4dGFyZWEgZnJvbSAnLi9hZGp1c3QtdGV4dGFyZWEnXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN2Z1BhcGVyIHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IgPSAnLnBhcGVyIHN2ZycpIHtcbiAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2VsZWN0b3InKVxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvclxuICAgIHRoaXMuc3ZnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcikub3V0ZXJIVE1MLnJlcGxhY2UoL1tcXHJ8XFxuXSsvZywgXCJcXG5cIilcbiAgICB0aGlzLmFkanVzdFRleHRRdWVyaWVzID0gW11cbiAgfVxuXG4gIHJlcGxhY2Uoc2VhcmNoLCByZXBsYWNlbWVudCkge1xuICAgIGlmIChzZWFyY2ggaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgIHNlYXJjaCA9IG5ldyBSZWdFeHAoc2VhcmNoLnNvdXJjZSwgc2VhcmNoLmZsYWdzLnJlcGxhY2UoL2cvZywgJycpICsgJ2cnKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWFyY2ggPSBzZWFyY2gucmVwbGFjZSgvW1xccnxcXG5dKy9nLCBcIlxcblwiKVxuXG4gICAgICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2phL2RvY3MvV2ViL0phdmFTY3JpcHQvR3VpZGUvUmVndWxhcl9FeHByZXNzaW9ucyNlc2NhcGluZ1xuICAgICAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoL1suKis/Xj0hOiR7fSgpfFtcXF1cXC9cXFxcXS9nLCAnXFxcXCQmJylcbiAgICAgIHNlYXJjaCA9IG5ldyBSZWdFeHAoc2VhcmNoLCAnZycpXG4gICAgfVxuXG4gICAgLy8gY2FzdCB0byBzdHJpbmdcbiAgICByZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50ICE9PSB1bmRlZmluZWQgJiYgcmVwbGFjZW1lbnQgIT09IG51bGwgPyByZXBsYWNlbWVudCArICcnIDogJydcblxuICAgIHJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQucmVwbGFjZSgvW1xccnxcXG5dKy9nLCBcIlxcblwiKVxuXG4gICAgdGhpcy5zdmcgPSB0aGlzLnN2Zy5yZXBsYWNlKHNlYXJjaCwgcmVwbGFjZW1lbnQpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgYWRqdXN0VGV4dChzZWxlY3RvciwgdGV4dExlbmd0aCA9IG51bGwsIHRleHRBbmNob3IgPSAnc3RhcnQnKSB7XG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcy5wdXNoKHtzZWxlY3RvciwgdGV4dExlbmd0aCwgdGV4dEFuY2hvcn0pXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgYWRqdXN0VGV4dGFyZWEoc2VsZWN0b3IsIHdpZHRoLCBoZWlnaHQsIGxpbmVIZWlnaHQgPSAxLjIsIHBhZGRpbmdYID0gMC41LCBwYWRkaW5nWSA9IDAuNSwgbm93cmFwID0gZmFsc2UpIHtcbiAgICBjb25zdCBkb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHRoaXMuc3ZnLCAndGV4dC9odG1sJylcbiAgICBjb25zdCB0ZXh0RWxlbWVudCA9IGRvYy5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKVxuICAgIGlmICghdGV4dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgY29uc3QgdGV4dFN2ZyA9IHRleHRFbGVtZW50Lm91dGVySFRNTFxuICAgIC8vIFNWR0VsZW1lbnQgZG9lc24ndCBoYXZlIGlubmVyVGV4dFxuICAgIC8vIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1NWR0VsZW1lbnRcbiAgICBjb25zdCB0ZXh0Q29udGVudCA9IHRleHRFbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKG5ldyBSZWdFeHAoJ148dHNwYW5bXj5dKj4oW1xcXFxTfFxcXFxzXSopPC90c3Bhbj4kJyksICckMScpXG5cbiAgICBjb25zdCBhZGp1c3RlZFRleHRTdmcgPSBhZGp1c3RUZXh0YXJlYSh0ZXh0U3ZnLCB0ZXh0Q29udGVudCwgd2lkdGgsIGhlaWdodCwgbGluZUhlaWdodCwgcGFkZGluZ1gsIHBhZGRpbmdZLCBub3dyYXApXG5cbiAgICB0aGlzLnJlcGxhY2UodGV4dFN2ZywgYWRqdXN0ZWRUZXh0U3ZnKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFwcGx5KCkge1xuICAgIGlmICh0aGlzLnN2ZyAhPT0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnNlbGVjdG9yKS5vdXRlckhUTUwpIHtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MID0gdGhpcy5zdmdcbiAgICB9XG5cbiAgICB0aGlzLmFkanVzdFRleHRRdWVyaWVzLmZvckVhY2gocXVlcnkgPT4ge1xuICAgICAgLy8gaWYgdmlld0JveCBpcyBzcGVjaWZpZWQsIEVsZW1lbnQuY2xpZW50V2lkdGggYW5kIEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgcmV0dXJuIGRpZmZlcmVudCB2YWx1ZXNcbiAgICAgIC8vICAgY2xpZW50V2lkdGg6ID8/P1xuICAgICAgLy8gICBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogcHVyZSBwaXhlbCB2YWx1ZVxuICAgICAgLy8gc28gdGhpcyBsaWJyYXJ5IHVzZXMgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgYW5kIHByZS1jYWxjdWxhdGVkIHJhdGlvIHRvIHNwZWNpZnkgdGhlIHdpZHRoIG9mIHNvbWUgZWxlbWVudHNcbiAgICAgIGNvbnN0ICRzdmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2VsZWN0b3IpXG4gICAgICBjb25zdCB2aWV3Qm94V2lkdGggPSAkc3ZnLmdldEF0dHJpYnV0ZSgndmlld0JveCcpPy5zcGxpdCgvICsvKVsyXSA/PyBudWxsXG4gICAgICBjb25zdCBwYXBlclBpeGVsUmF0aW8gPSB2aWV3Qm94V2lkdGggPyBwYXJzZUZsb2F0KHZpZXdCb3hXaWR0aCkgLyAkc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIDogMVxuXG4gICAgICBhZGp1c3RUZXh0KHBhcGVyUGl4ZWxSYXRpbywgcXVlcnkuc2VsZWN0b3IsIHtcbiAgICAgICAgdGV4dExlbmd0aDogcXVlcnkudGV4dExlbmd0aCxcbiAgICAgICAgJ3RleHQtYW5jaG9yJzogcXVlcnkudGV4dEFuY2hvcixcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIGluaXRpYWxpemVcbiAgICB0aGlzLnN2ZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcyA9IFtdXG4gIH1cbn1cbiIsImV4cG9ydCBkZWZhdWx0ICh0ZXh0U3ZnKSA9PiB7XG4gIGxldCBmaXhlZFRleHRTdmcgPSB0ZXh0U3ZnXG5cbiAgLy8gaWYgPHRleHQ+IGRvZXNuJ3QgaGF2ZSB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoeCB5KVwiLCBqdXN0IGFkZCBpdCB3aXRoICgwIDApXG4gIGlmICghZml4ZWRUZXh0U3ZnLm1hdGNoKC88dGV4dCBbXj5dKnRyYW5zZm9ybT1cIlteXCJdKlwiW14+XSo+LykpIHtcbiAgICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dGV4dChbXj5dKik+JyksICc8dGV4dCQxIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDApXCI+JylcbiAgfVxuXG4gIC8vIGlmIDx0c3Bhbj4gZG9lc24ndCBoYXZlIHg9XCJcIiB5PVwiXCIsIGp1c3QgYWRkIGl0IHdpdGggeD1cIjBcIiB5PVwiMFwiXG4gIGlmICghZml4ZWRUZXh0U3ZnLm1hdGNoKC88dHNwYW4gW14+XSp4PVwiW15cIl0qXCJbXj5dKj4vKSkge1xuICAgIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0c3BhbihbXj5dKik+JyksICc8dHNwYW4kMSB4PVwiMFwiPicpXG4gIH1cbiAgaWYgKCFmaXhlZFRleHRTdmcubWF0Y2goLzx0c3BhbiBbXj5dKnk9XCJbXlwiXSpcIltePl0qPi8pKSB7XG4gICAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRzcGFuKFtePl0qKT4nKSwgJzx0c3BhbiQxIHk9XCIwXCI+JylcbiAgfVxuXG4gIC8vIGNvcHkgeCBmcm9tIDx0c3BhbiB4PVwiXCI+IGFuZCBhZGQgaXQgdG8gPHRleHQgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIj5cbiAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW1xcXFxzXFxcXFNdKyl0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKChcXFxcUyspXFxcXHMrKC4rKVxcXFwpXCIoW14+XSopPlxccyo8dHNwYW4oW14+XSspeD1cIihbXlwiXSspXCInKSwgJzx0ZXh0JDF0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoIyMjJDIrJDYjIyMgJDMpXCIkND48dHNwYW4kNXg9XCIwXCInKVxuICBjb25zdCBleHByZXNzaW9uMSA9IGZpeGVkVGV4dFN2Zy5tYXRjaChuZXcgUmVnRXhwKCc8dGV4dFtcXFxcc1xcXFxTXSt0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKCMjIyguKykjIyMuK1xcXFwpXCInKSlbMV1cbiAgY29uc3QgeCA9IGV4cHJlc3Npb24xLm1hdGNoKC9cXGQrXFwrXFxkKy8pID8gZXZhbChleHByZXNzaW9uMSkgOiAwXG4gIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0ZXh0KFtcXFxcc1xcXFxTXSspdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgjIyMuKyMjIyguKylcXFxcKVwiJyksIGA8dGV4dCQxdHJhbnNmb3JtPVwidHJhbnNsYXRlKCR7eH0kMilcImApXG5cbiAgLy8gY29weSB5IGZyb20gPHRzcGFuIHk9XCJcIj4gYW5kIGFkZCBpdCB0byA8dGV4dCB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoeCB5KVwiPlxuICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dGV4dChbXFxcXHNcXFxcU10rKXRyYW5zZm9ybT1cInRyYW5zbGF0ZVxcXFwoKC4rKVxcXFxzKyhcXFxcUyspXFxcXClcIihbXj5dKik+XFxzKjx0c3BhbihbXj5dKyl5PVwiKFteXCJdKylcIicpLCAnPHRleHQkMXRyYW5zZm9ybT1cInRyYW5zbGF0ZSgkMiAjIyMkMyskNiMjIylcIiQ0Pjx0c3BhbiQ1eT1cIjBcIicpXG4gIGNvbnN0IGV4cHJlc3Npb24yID0gZml4ZWRUZXh0U3ZnLm1hdGNoKG5ldyBSZWdFeHAoJzx0ZXh0W1xcXFxzXFxcXFNdK3RyYW5zZm9ybT1cInRyYW5zbGF0ZVxcXFwoLisjIyMoLispIyMjXFxcXClcIicpKVsxXVxuICBjb25zdCB5ID0gZXhwcmVzc2lvbjIubWF0Y2goL1xcZCtcXCtcXGQrLykgPyBldmFsKGV4cHJlc3Npb24yKSA6IDBcbiAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW1xcXFxzXFxcXFNdKyl0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKCguKykjIyMuKyMjI1xcXFwpXCInKSwgYDx0ZXh0JDF0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoJDIke3l9KVwiYClcblxuICByZXR1cm4gZml4ZWRUZXh0U3ZnXG59XG4iLCJpbXBvcnQgc3ViU3RyaW5nQnlXaWR0aCBmcm9tICcuL3N1Yi1zdHJpbmctYnktd2lkdGgnXG5cbmV4cG9ydCBkZWZhdWx0IChzdHJpbmcsIHdpZHRoKSA9PiB7XG4gIGxldCBzcGxpdHMgPSBbXVxuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IHNwbGl0ID0gc3ViU3RyaW5nQnlXaWR0aChzdHJpbmcsIDAsIHdpZHRoKVxuICAgIHNwbGl0cy5wdXNoKHNwbGl0KVxuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKHNwbGl0LCAnJylcbiAgICBpZiAoIXN0cmluZykge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3BsaXRzXG59XG4iLCJpbXBvcnQgc3RyaW5nV2lkdGggZnJvbSAnc3RyaW5nLXdpZHRoJ1xuXG5leHBvcnQgZGVmYXVsdCAoc3RyaW5nLCBzdGFydCwgd2lkdGgpID0+IHtcbiAgbGV0IGN1cnJlbnRXaWR0aCA9IDBcbiAgbGV0IHN1YlN0cmluZyA9ICcnXG5cbiAgZm9yIChsZXQgaSA9IHN0YXJ0OyA7IGkrKykge1xuICAgIGNvbnN0IGNoYXIgPSBzdHJpbmcuc3Vic3RyKGksIDEpXG4gICAgY3VycmVudFdpZHRoICs9IHN0cmluZ1dpZHRoKGNoYXIpXG4gICAgaWYgKGN1cnJlbnRXaWR0aCA8PSB3aWR0aCAmJiBpIDw9IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgIHN1YlN0cmluZyArPSBjaGFyXG4gICAgfVxuICAgIGlmIChjdXJyZW50V2lkdGggPj0gd2lkdGggfHwgaSA+PSBzdHJpbmcubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gc3ViU3RyaW5nXG4gICAgfVxuICB9XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIC8vIGh0dHBzOi8vbXRocy5iZS9lbW9qaVxuICByZXR1cm4gL1xcdUQ4M0NcXHVERkY0XFx1REI0MFxcdURDNjdcXHVEQjQwXFx1REM2Mig/OlxcdURCNDBcXHVEQzY1XFx1REI0MFxcdURDNkVcXHVEQjQwXFx1REM2N3xcXHVEQjQwXFx1REM3M1xcdURCNDBcXHVEQzYzXFx1REI0MFxcdURDNzR8XFx1REI0MFxcdURDNzdcXHVEQjQwXFx1REM2Q1xcdURCNDBcXHVEQzczKVxcdURCNDBcXHVEQzdGfFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1xcdURGRkNcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjhcXHVEODNDXFx1REZGQnxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkZcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ10pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKT9cXHVEODNEXFx1REM2OHwoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSlcXHUyMDBEKD86XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pKXxcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XVxcdUZFMEZ8XFx1RDgzRFtcXHVEQzY2XFx1REM2N118XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfCg/OlxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdKVxcdUZFMEZ8XFx1RDgzQ1xcdURGRkJcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGQlxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZDXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY5KVxcdUQ4M0NcXHVERkZCfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1xcdURGRkZcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGRVxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRV0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkNcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OSkoPzpcXHVEODNDW1xcdURGRkJcXHVERkZDXSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRVxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQ1xcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkQtXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGQlxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQy1cXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZEXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ1xcdURGRkVcXHVERkZGXSl8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdTIwMEQoPzpcXHUyNzY0XFx1RkUwRlxcdTIwMEQoPzpcXHVEODNEXFx1REM4QlxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSl8XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRlxcdTIwMEQoPzpcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSkpfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY5XFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzY2XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKSl8KD86XFx1RDgzRVxcdURERDFcXHVEODNDXFx1REZGRFxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNFXFx1REREMXxcXHVEODNEXFx1REM2OVxcdUQ4M0NcXHVERkZFXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY5KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZEXSl8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjlcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RcXHVEQzQxXFx1RkUwRlxcdTIwMERcXHVEODNEXFx1RERFOHxcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZFXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZDXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZCXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdUQ4M0NcXHVERkZEXFx1MjAwRFtcXHUyNjk1XFx1MjY5NlxcdTI3MDhdfFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSl8KD86KD86XFx1MjZGOXxcXHVEODNDW1xcdURGQ0JcXHVERkNDXXxcXHVEODNEXFx1REQ3NSlcXHVGRTBGfFxcdUQ4M0RcXHVEQzZGfFxcdUQ4M0VbXFx1REQzQ1xcdUREREVcXHVERERGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXwoPzpcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ2LVxcdURERERdKSg/Oig/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSlcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXXxcXHUyMDBEW1xcdTI2NDBcXHUyNjQyXSl8XFx1RDgzQ1xcdURGRjRcXHUyMDBEXFx1MjYyMClcXHVGRTBGfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXxcXHVEODNDXFx1REZGM1xcdUZFMEZcXHUyMDBEXFx1RDgzQ1xcdURGMDh8XFx1RDgzRFxcdURDMTVcXHUyMDBEXFx1RDgzRVxcdUREQkF8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjlcXHUyMDBEXFx1RDgzRFxcdURDNjd8XFx1RDgzQ1xcdURERkRcXHVEODNDXFx1RERGMHxcXHVEODNDXFx1RERGNFxcdUQ4M0NcXHVEREYyfFxcdUQ4M0NcXHVEREY2XFx1RDgzQ1xcdURERTZ8WyNcXCowLTldXFx1RkUwRlxcdTIwRTN8XFx1RDgzQ1xcdURERTcoPzpcXHVEODNDW1xcdURERTZcXHVEREU3XFx1RERFOS1cXHVEREVGXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XFx1RERGQlxcdURERkNcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREY5KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERURcXHVEREVGLVxcdURERjRcXHVEREY3XFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVBKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRFxcdURERjctXFx1RERGQV0pfFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHVEODNDXFx1RERGNyg/OlxcdUQ4M0NbXFx1RERFQVxcdURERjRcXHVEREY4XFx1RERGQVxcdURERkNdKXxcXHVEODNEXFx1REM2OSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzQ1xcdURERjIoPzpcXHVEODNDW1xcdURERTZcXHVEREU4LVxcdURERURcXHVEREYwLVxcdURERkZdKXxcXHVEODNDXFx1RERFNig/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREYyXFx1RERGNFxcdURERjYtXFx1RERGQVxcdURERkNcXHVEREZEXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYwKD86XFx1RDgzQ1tcXHVEREVBXFx1RERFQy1cXHVEREVFXFx1RERGMlxcdURERjNcXHVEREY1XFx1RERGN1xcdURERkNcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVEKD86XFx1RDgzQ1tcXHVEREYwXFx1RERGMlxcdURERjNcXHVEREY3XFx1RERGOVxcdURERkFdKXxcXHVEODNDXFx1RERFOSg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUNcXHVEREVGXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGRl0pfFxcdUQ4M0NcXHVEREZFKD86XFx1RDgzQ1tcXHVEREVBXFx1RERGOV0pfFxcdUQ4M0NcXHVEREVDKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRVxcdURERjEtXFx1RERGM1xcdURERjUtXFx1RERGQVxcdURERkNcXHVEREZFXSl8XFx1RDgzQ1xcdURERjgoPzpcXHVEODNDW1xcdURERTYtXFx1RERFQVxcdURERUMtXFx1RERGNFxcdURERjctXFx1RERGOVxcdURERkJcXHVEREZELVxcdURERkZdKXxcXHVEODNDXFx1RERFQig/OlxcdUQ4M0NbXFx1RERFRS1cXHVEREYwXFx1RERGMlxcdURERjRcXHVEREY3XSl8XFx1RDgzQ1xcdURERjUoPzpcXHVEODNDW1xcdURERTZcXHVEREVBLVxcdURERURcXHVEREYwLVxcdURERjNcXHVEREY3LVxcdURERjlcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREZCKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUFcXHVEREVDXFx1RERFRVxcdURERjNcXHVEREZBXSl8XFx1RDgzQ1xcdURERjMoPzpcXHVEODNDW1xcdURERTZcXHVEREU4XFx1RERFQS1cXHVEREVDXFx1RERFRVxcdURERjFcXHVEREY0XFx1RERGNVxcdURERjdcXHVEREZBXFx1RERGRl0pfFxcdUQ4M0NcXHVEREU4KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERTlcXHVEREVCLVxcdURERUVcXHVEREYwLVxcdURERjVcXHVEREY3XFx1RERGQS1cXHVEREZGXSl8XFx1RDgzQ1xcdURERjEoPzpcXHVEODNDW1xcdURERTYtXFx1RERFOFxcdURERUVcXHVEREYwXFx1RERGNy1cXHVEREZCXFx1RERGRV0pfFxcdUQ4M0NcXHVEREZGKD86XFx1RDgzQ1tcXHVEREU2XFx1RERGMlxcdURERkNdKXxcXHVEODNDXFx1RERGQyg/OlxcdUQ4M0NbXFx1RERFQlxcdURERjhdKXxcXHVEODNDXFx1RERGQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERUNcXHVEREYyXFx1RERGM1xcdURERjhcXHVEREZFXFx1RERGRl0pfFxcdUQ4M0NcXHVEREVFKD86XFx1RDgzQ1tcXHVEREU4LVxcdURERUFcXHVEREYxLVxcdURERjRcXHVEREY2LVxcdURERjldKXxcXHVEODNDXFx1RERFRig/OlxcdUQ4M0NbXFx1RERFQVxcdURERjJcXHVEREY0XFx1RERGNV0pfCg/OlxcdUQ4M0NbXFx1REZDM1xcdURGQzRcXHVERkNBXXxcXHVEODNEW1xcdURDNkVcXHVEQzcxXFx1REM3M1xcdURDNzdcXHVEQzgxXFx1REM4MlxcdURDODZcXHVEQzg3XFx1REU0NS1cXHVERTQ3XFx1REU0QlxcdURFNERcXHVERTRFXFx1REVBM1xcdURFQjQtXFx1REVCNl18XFx1RDgzRVtcXHVERDI2XFx1REQzNy1cXHVERDM5XFx1REQzRFxcdUREM0VcXHVEREI4XFx1RERCOVxcdUREQ0QtXFx1RERDRlxcdURERDYtXFx1RERERF0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpcXHUyNkY5fFxcdUQ4M0NbXFx1REZDQlxcdURGQ0NdfFxcdUQ4M0RcXHVERDc1KSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86W1xcdTI2MURcXHUyNzBBLVxcdTI3MERdfFxcdUQ4M0NbXFx1REY4NVxcdURGQzJcXHVERkM3XXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2NlxcdURDNjdcXHVEQzZCLVxcdURDNkRcXHVEQzcwXFx1REM3MlxcdURDNzQtXFx1REM3NlxcdURDNzhcXHVEQzdDXFx1REM4M1xcdURDODVcXHVEQ0FBXFx1REQ3NFxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTRDXFx1REU0RlxcdURFQzBcXHVERUNDXXxcXHVEODNFW1xcdUREMEZcXHVERDE4LVxcdUREMUNcXHVERDFFXFx1REQxRlxcdUREMzAtXFx1REQzNlxcdUREQjVcXHVEREI2XFx1RERCQlxcdURERDItXFx1RERENV0pKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXwoPzpbXFx1MjMxQVxcdTIzMUJcXHUyM0U5LVxcdTIzRUNcXHUyM0YwXFx1MjNGM1xcdTI1RkRcXHUyNUZFXFx1MjYxNFxcdTI2MTVcXHUyNjQ4LVxcdTI2NTNcXHUyNjdGXFx1MjY5M1xcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QkRcXHUyNkJFXFx1MjZDNFxcdTI2QzVcXHUyNkNFXFx1MjZENFxcdTI2RUFcXHUyNkYyXFx1MjZGM1xcdTI2RjVcXHUyNkZBXFx1MjZGRFxcdTI3MDVcXHUyNzBBXFx1MjcwQlxcdTI3MjhcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3NTdcXHUyNzk1LVxcdTI3OTdcXHUyN0IwXFx1MjdCRlxcdTJCMUJcXHUyQjFDXFx1MkI1MFxcdTJCNTVdfFxcdUQ4M0NbXFx1REMwNFxcdURDQ0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1RERFNi1cXHVEREZGXFx1REUwMVxcdURFMUFcXHVERTJGXFx1REUzMi1cXHVERTM2XFx1REUzOC1cXHVERTNBXFx1REU1MFxcdURFNTFcXHVERjAwLVxcdURGMjBcXHVERjJELVxcdURGMzVcXHVERjM3LVxcdURGN0NcXHVERjdFLVxcdURGOTNcXHVERkEwLVxcdURGQ0FcXHVERkNGLVxcdURGRDNcXHVERkUwLVxcdURGRjBcXHVERkY0XFx1REZGOC1cXHVERkZGXXxcXHVEODNEW1xcdURDMDAtXFx1REMzRVxcdURDNDBcXHVEQzQyLVxcdURDRkNcXHVEQ0ZGLVxcdUREM0RcXHVERDRCLVxcdURENEVcXHVERDUwLVxcdURENjdcXHVERDdBXFx1REQ5NVxcdUREOTZcXHVEREE0XFx1RERGQi1cXHVERTRGXFx1REU4MC1cXHVERUM1XFx1REVDQ1xcdURFRDAtXFx1REVEMlxcdURFRDVcXHVERUVCXFx1REVFQ1xcdURFRjQtXFx1REVGQVxcdURGRTAtXFx1REZFQl18XFx1RDgzRVtcXHVERDBELVxcdUREM0FcXHVERDNDLVxcdURENDVcXHVERDQ3LVxcdURENzFcXHVERDczLVxcdURENzZcXHVERDdBLVxcdUREQTJcXHVEREE1LVxcdUREQUFcXHVEREFFLVxcdUREQ0FcXHVERENELVxcdURERkZcXHVERTcwLVxcdURFNzNcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODJcXHVERTkwLVxcdURFOTVdKXwoPzpbI1xcKjAtOVxceEE5XFx4QUVcXHUyMDNDXFx1MjA0OVxcdTIxMjJcXHUyMTM5XFx1MjE5NC1cXHUyMTk5XFx1MjFBOVxcdTIxQUFcXHUyMzFBXFx1MjMxQlxcdTIzMjhcXHUyM0NGXFx1MjNFOS1cXHUyM0YzXFx1MjNGOC1cXHUyM0ZBXFx1MjRDMlxcdTI1QUFcXHUyNUFCXFx1MjVCNlxcdTI1QzBcXHUyNUZCLVxcdTI1RkVcXHUyNjAwLVxcdTI2MDRcXHUyNjBFXFx1MjYxMVxcdTI2MTRcXHUyNjE1XFx1MjYxOFxcdTI2MURcXHUyNjIwXFx1MjYyMlxcdTI2MjNcXHUyNjI2XFx1MjYyQVxcdTI2MkVcXHUyNjJGXFx1MjYzOC1cXHUyNjNBXFx1MjY0MFxcdTI2NDJcXHUyNjQ4LVxcdTI2NTNcXHUyNjVGXFx1MjY2MFxcdTI2NjNcXHUyNjY1XFx1MjY2NlxcdTI2NjhcXHUyNjdCXFx1MjY3RVxcdTI2N0ZcXHUyNjkyLVxcdTI2OTdcXHUyNjk5XFx1MjY5QlxcdTI2OUNcXHUyNkEwXFx1MjZBMVxcdTI2QUFcXHUyNkFCXFx1MjZCMFxcdTI2QjFcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM1XFx1MjZDOFxcdTI2Q0VcXHUyNkNGXFx1MjZEMVxcdTI2RDNcXHUyNkQ0XFx1MjZFOVxcdTI2RUFcXHUyNkYwLVxcdTI2RjVcXHUyNkY3LVxcdTI2RkFcXHUyNkZEXFx1MjcwMlxcdTI3MDVcXHUyNzA4LVxcdTI3MERcXHUyNzBGXFx1MjcxMlxcdTI3MTRcXHUyNzE2XFx1MjcxRFxcdTI3MjFcXHUyNzI4XFx1MjczM1xcdTI3MzRcXHUyNzQ0XFx1Mjc0N1xcdTI3NENcXHUyNzRFXFx1Mjc1My1cXHUyNzU1XFx1Mjc1N1xcdTI3NjNcXHUyNzY0XFx1Mjc5NS1cXHUyNzk3XFx1MjdBMVxcdTI3QjBcXHUyN0JGXFx1MjkzNFxcdTI5MzVcXHUyQjA1LVxcdTJCMDdcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XFx1MzAzMFxcdTMwM0RcXHUzMjk3XFx1MzI5OV18XFx1RDgzQ1tcXHVEQzA0XFx1RENDRlxcdURENzBcXHVERDcxXFx1REQ3RVxcdUREN0ZcXHVERDhFXFx1REQ5MS1cXHVERDlBXFx1RERFNi1cXHVEREZGXFx1REUwMVxcdURFMDJcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIxXFx1REYyNC1cXHVERjkzXFx1REY5NlxcdURGOTdcXHVERjk5LVxcdURGOUJcXHVERjlFLVxcdURGRjBcXHVERkYzLVxcdURGRjVcXHVERkY3LVxcdURGRkZdfFxcdUQ4M0RbXFx1REMwMC1cXHVEQ0ZEXFx1RENGRi1cXHVERDNEXFx1REQ0OS1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1REQ2RlxcdURENzBcXHVERDczLVxcdUREN0FcXHVERDg3XFx1REQ4QS1cXHVERDhEXFx1REQ5MFxcdUREOTVcXHVERDk2XFx1RERBNFxcdUREQTVcXHVEREE4XFx1RERCMVxcdUREQjJcXHVEREJDXFx1RERDMi1cXHVEREM0XFx1REREMS1cXHVEREQzXFx1REREQy1cXHVERERFXFx1RERFMVxcdURERTNcXHVEREU4XFx1RERFRlxcdURERjNcXHVEREZBLVxcdURFNEZcXHVERTgwLVxcdURFQzVcXHVERUNCLVxcdURFRDJcXHVERUQ1XFx1REVFMC1cXHVERUU1XFx1REVFOVxcdURFRUJcXHVERUVDXFx1REVGMFxcdURFRjMtXFx1REVGQVxcdURGRTAtXFx1REZFQl18XFx1RDgzRVtcXHVERDBELVxcdUREM0FcXHVERDNDLVxcdURENDVcXHVERDQ3LVxcdURENzFcXHVERDczLVxcdURENzZcXHVERDdBLVxcdUREQTJcXHVEREE1LVxcdUREQUFcXHVEREFFLVxcdUREQ0FcXHVERENELVxcdURERkZcXHVERTcwLVxcdURFNzNcXHVERTc4LVxcdURFN0FcXHVERTgwLVxcdURFODJcXHVERTkwLVxcdURFOTVdKVxcdUZFMEZ8KD86W1xcdTI2MURcXHUyNkY5XFx1MjcwQS1cXHUyNzBEXXxcXHVEODNDW1xcdURGODVcXHVERkMyLVxcdURGQzRcXHVERkM3XFx1REZDQS1cXHVERkNDXXxcXHVEODNEW1xcdURDNDJcXHVEQzQzXFx1REM0Ni1cXHVEQzUwXFx1REM2Ni1cXHVEQzc4XFx1REM3Q1xcdURDODEtXFx1REM4M1xcdURDODUtXFx1REM4N1xcdURDOEZcXHVEQzkxXFx1RENBQVxcdURENzRcXHVERDc1XFx1REQ3QVxcdUREOTBcXHVERDk1XFx1REQ5NlxcdURFNDUtXFx1REU0N1xcdURFNEItXFx1REU0RlxcdURFQTNcXHVERUI0LVxcdURFQjZcXHVERUMwXFx1REVDQ118XFx1RDgzRVtcXHVERDBGXFx1REQxOC1cXHVERDFGXFx1REQyNlxcdUREMzAtXFx1REQzOVxcdUREM0MtXFx1REQzRVxcdUREQjVcXHVEREI2XFx1RERCOFxcdUREQjlcXHVEREJCXFx1RERDRC1cXHVERENGXFx1REREMS1cXHVEREREXSkvZztcbn07XG4iLCIndXNlIHN0cmljdCc7XG5jb25zdCBzdHJpcEFuc2kgPSByZXF1aXJlKCdzdHJpcC1hbnNpJyk7XG5jb25zdCBpc0Z1bGx3aWR0aENvZGVQb2ludCA9IHJlcXVpcmUoJ2lzLWZ1bGx3aWR0aC1jb2RlLXBvaW50Jyk7XG5jb25zdCBlbW9qaVJlZ2V4ID0gcmVxdWlyZSgnZW1vamktcmVnZXgnKTtcblxuY29uc3Qgc3RyaW5nV2lkdGggPSBzdHJpbmcgPT4ge1xuXHRpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycgfHwgc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0c3RyaW5nID0gc3RyaXBBbnNpKHN0cmluZyk7XG5cblx0aWYgKHN0cmluZy5sZW5ndGggPT09IDApIHtcblx0XHRyZXR1cm4gMDtcblx0fVxuXG5cdHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKGVtb2ppUmVnZXgoKSwgJyAgJyk7XG5cblx0bGV0IHdpZHRoID0gMDtcblxuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IGNvZGUgPSBzdHJpbmcuY29kZVBvaW50QXQoaSk7XG5cblx0XHQvLyBJZ25vcmUgY29udHJvbCBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGUgPD0gMHgxRiB8fCAoY29kZSA+PSAweDdGICYmIGNvZGUgPD0gMHg5RikpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIElnbm9yZSBjb21iaW5pbmcgY2hhcmFjdGVyc1xuXHRcdGlmIChjb2RlID49IDB4MzAwICYmIGNvZGUgPD0gMHgzNkYpIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdC8vIFN1cnJvZ2F0ZXNcblx0XHRpZiAoY29kZSA+IDB4RkZGRikge1xuXHRcdFx0aSsrO1xuXHRcdH1cblxuXHRcdHdpZHRoICs9IGlzRnVsbHdpZHRoQ29kZVBvaW50KGNvZGUpID8gMiA6IDE7XG5cdH1cblxuXHRyZXR1cm4gd2lkdGg7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZ1dpZHRoO1xuLy8gVE9ETzogcmVtb3ZlIHRoaXMgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvblxubW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IHN0cmluZ1dpZHRoO1xuIiwiLyogZXNsaW50LWRpc2FibGUgeW9kYSAqL1xuJ3VzZSBzdHJpY3QnO1xuXG5jb25zdCBpc0Z1bGx3aWR0aENvZGVQb2ludCA9IGNvZGVQb2ludCA9PiB7XG5cdGlmIChOdW1iZXIuaXNOYU4oY29kZVBvaW50KSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIENvZGUgcG9pbnRzIGFyZSBkZXJpdmVkIGZyb206XG5cdC8vIGh0dHA6Ly93d3cudW5peC5vcmcvUHVibGljL1VOSURBVEEvRWFzdEFzaWFuV2lkdGgudHh0XG5cdGlmIChcblx0XHRjb2RlUG9pbnQgPj0gMHgxMTAwICYmIChcblx0XHRcdGNvZGVQb2ludCA8PSAweDExNUYgfHwgLy8gSGFuZ3VsIEphbW9cblx0XHRcdGNvZGVQb2ludCA9PT0gMHgyMzI5IHx8IC8vIExFRlQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVFxuXHRcdFx0Y29kZVBvaW50ID09PSAweDIzMkEgfHwgLy8gUklHSFQtUE9JTlRJTkcgQU5HTEUgQlJBQ0tFVFxuXHRcdFx0Ly8gQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQgLi4gRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRoc1xuXHRcdFx0KDB4MkU4MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4MzI0NyAmJiBjb2RlUG9pbnQgIT09IDB4MzAzRikgfHxcblx0XHRcdC8vIEVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMgLi4gQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQVxuXHRcdFx0KDB4MzI1MCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4NERCRikgfHxcblx0XHRcdC8vIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgLi4gWWkgUmFkaWNhbHNcblx0XHRcdCgweDRFMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE0QzYpIHx8XG5cdFx0XHQvLyBIYW5ndWwgSmFtbyBFeHRlbmRlZC1BXG5cdFx0XHQoMHhBOTYwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhBOTdDKSB8fFxuXHRcdFx0Ly8gSGFuZ3VsIFN5bGxhYmxlc1xuXHRcdFx0KDB4QUMwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RDdBMykgfHxcblx0XHRcdC8vIENKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHNcblx0XHRcdCgweEY5MDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZBRkYpIHx8XG5cdFx0XHQvLyBWZXJ0aWNhbCBGb3Jtc1xuXHRcdFx0KDB4RkUxMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkUxOSkgfHxcblx0XHRcdC8vIENKSyBDb21wYXRpYmlsaXR5IEZvcm1zIC4uIFNtYWxsIEZvcm0gVmFyaWFudHNcblx0XHRcdCgweEZFMzAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZFNkIpIHx8XG5cdFx0XHQvLyBIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3Jtc1xuXHRcdFx0KDB4RkYwMSA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkY2MCkgfHxcblx0XHRcdCgweEZGRTAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEZGRTYpIHx8XG5cdFx0XHQvLyBLYW5hIFN1cHBsZW1lbnRcblx0XHRcdCgweDFCMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxQjAwMSkgfHxcblx0XHRcdC8vIEVuY2xvc2VkIElkZW9ncmFwaGljIFN1cHBsZW1lbnRcblx0XHRcdCgweDFGMjAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgxRjI1MSkgfHxcblx0XHRcdC8vIENKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEIgLi4gVGVydGlhcnkgSWRlb2dyYXBoaWMgUGxhbmVcblx0XHRcdCgweDIwMDAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzRkZGRClcblx0XHQpXG5cdCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0cmV0dXJuIGZhbHNlO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBpc0Z1bGx3aWR0aENvZGVQb2ludDtcbm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSBpc0Z1bGx3aWR0aENvZGVQb2ludDtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IGFuc2lSZWdleCA9IHJlcXVpcmUoJ2Fuc2ktcmVnZXgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdHJpbmcgPT4gdHlwZW9mIHN0cmluZyA9PT0gJ3N0cmluZycgPyBzdHJpbmcucmVwbGFjZShhbnNpUmVnZXgoKSwgJycpIDogc3RyaW5nO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICh7b25seUZpcnN0ID0gZmFsc2V9ID0ge30pID0+IHtcblx0Y29uc3QgcGF0dGVybiA9IFtcblx0XHQnW1xcXFx1MDAxQlxcXFx1MDA5Ql1bW1xcXFxdKCkjOz9dKig/Oig/Oig/OlthLXpBLVpcXFxcZF0qKD86O1stYS16QS1aXFxcXGRcXFxcLyMmLjo9PyVAfl9dKikqKT9cXFxcdTAwMDcpJyxcblx0XHQnKD86KD86XFxcXGR7MSw0fSg/OjtcXFxcZHswLDR9KSopP1tcXFxcZEEtUFItVFpjZi1udHFyeT0+PH5dKSknXG5cdF0uam9pbignfCcpO1xuXG5cdHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4sIG9ubHlGaXJzdCA/IHVuZGVmaW5lZCA6ICdnJyk7XG59O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307Il0sInNvdXJjZVJvb3QiOiIifQ== \ No newline at end of file diff --git a/dist/svg-paper.min.js b/dist/svg-paper.min.js index 393150c..27a3c05 100644 --- a/dist/svg-paper.min.js +++ b/dist/svg-paper.min.js @@ -1,2 +1,2 @@ -!function(D,u){"object"==typeof exports&&"object"==typeof module?module.exports=u():"function"==typeof define&&define.amd?define([],u):"object"==typeof exports?exports.SvgPaper=u():D.SvgPaper=u()}(window,(function(){return function(D){var u={};function F(t){if(u[t])return u[t].exports;var e=u[t]={i:t,l:!1,exports:{}};return D[t].call(e.exports,e,e.exports,F),e.l=!0,e.exports}return F.m=D,F.c=u,F.d=function(D,u,t){F.o(D,u)||Object.defineProperty(D,u,{enumerable:!0,get:t})},F.r=function(D){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})},F.t=function(D,u){if(1&u&&(D=F(D)),8&u)return D;if(4&u&&"object"==typeof D&&D&&D.__esModule)return D;var t=Object.create(null);if(F.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:D}),2&u&&"string"!=typeof D)for(var e in D)F.d(t,e,function(u){return D[u]}.bind(null,e));return t},F.n=function(D){var u=D&&D.__esModule?function(){return D.default}:function(){return D};return F.d(u,"a",u),u},F.o=function(D,u){return Object.prototype.hasOwnProperty.call(D,u)},F.p="",F(F.s=2)}([function(D,u,F){"use strict";var t=F(4),e=F(6),C=F(7),E=function(D){if("string"!=typeof D||0===D.length)return 0;if(0===(D=t(D)).length)return 0;D=D.replace(C()," ");for(var u=0,F=0;F=127&&E<=159||(E>=768&&E<=879||(E>65535&&F++,u+=e(E)?2:1))}return u};D.exports=E,D.exports.default=E},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_exports__.a=function(textSvg){var fixedTextSvg=textSvg;fixedTextSvg.match(/]*transform="[^"]*"[^>]*>/)||(fixedTextSvg=fixedTextSvg.replace(new RegExp("]*)>"),'')),fixedTextSvg.match(/]*x="[^"]*"[^>]*>/)||(fixedTextSvg=fixedTextSvg.replace(new RegExp("]*)>"),'')),fixedTextSvg.match(/]*y="[^"]*"[^>]*>/)||(fixedTextSvg=fixedTextSvg.replace(new RegExp("]*)>"),'')),fixedTextSvg=fixedTextSvg.replace(new RegExp(']*)>s*]+)x="([^"]+)"'),']*)>s*]+)y="([^"]+)"'),'0&&void 0!==arguments[0]?arguments[0]:{},u=D.onlyFirst,F=void 0!==u&&u,t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,F?void 0:"g")}},function(D,u,F){"use strict";var t=function(D){return!Number.isNaN(D)&&(D>=4352&&(D<=4447||9001===D||9002===D||11904<=D&&D<=12871&&12351!==D||12880<=D&&D<=19903||19968<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65131||65281<=D&&D<=65376||65504<=D&&D<=65510||110592<=D&&D<=110593||127488<=D&&D<=127569||131072<=D&&D<=262141))};D.exports=t,D.exports.default=t},function(D,u,F){"use strict";D.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},function(D,u,F){"use strict";F.r(u),F.d(u,"default",(function(){return s}));var t=F(0),e=F.n(t),C=function(D,u,F){for(var t=0,C="",E=u;;E++){var r=D.substr(E,1);if((t+=e()(r))<=F&&E<=D.length&&(C+=r),t>=F||E>=D.length)return C}},E=function(D,u){for(var F=[];;){var t=C(D,0,u);if(F.push(t),!(D=D.replace(t,"")))break}return F},r=F(1),n=function(D,u,F,t){var e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.2,C=arguments.length>5&&void 0!==arguments[5]?arguments[5]:.5,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:.5,a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(!D.match(new RegExp(']*font-size="\\d+"[^>]*>]*>|>)[^<>]*')))return console.error("Invalid svg string of text element",D),D;for(var o=parseInt(D.match(/.+font-size="(\d+)".+/)[1]),s=o,B=u.split("\n"),i=[],c=function(){var D=Math.floor((t-2*s*n)/(s*e)),u=Math.floor((F-2*s*C)/s);if(a?i=B:(i=[],B.forEach((function(D){i=i.concat(E(D,2*u))}))),!(i.length>D))return"break";s*=.95};;){var A=c();if("break"===A)break}var f=s-o,l=Object(r.a)(D);l=(l=l.replace(new RegExp(""),"")).replace(new RegExp('font-size="\\d+"'),'font-size="'.concat(s,'"')),l+="{tspan}";var x="",p=s*C;return i.forEach((function(D,u){var F=f+s*(n+u*e);x+='').concat(D,"")})),l=l.replace("{tspan}",x)};function a(D,u){if(!(D instanceof u))throw new TypeError("Cannot call a class as a function")}function o(D,u){for(var F=0;F0&&void 0!==arguments[0]?arguments[0]:".paper svg";if(a(this,D),!document.querySelector(u))throw new Error("Invalid selector");this.selector=u,this.svg=document.querySelector(u).outerHTML.replace(/[\r|\n]+/g,"\n"),this.adjustTextQueries=[]}var u,F,t;return u=D,(F=[{key:"replace",value:function(D,u){return D instanceof RegExp?D=new RegExp(D.source,D.flags.replace(/g/g,"")+"g"):(D=(D=D.replace(/[\r|\n]+/g,"\n")).replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&"),D=new RegExp(D,"g")),u=(u=null!=u?u+"":"").replace(/[\r|\n]+/g,"\n"),this.svg=this.svg.replace(D,u),this}},{key:"adjustText",value:function(D){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"start";return this.adjustTextQueries.push({selector:D,textLength:u,textAnchor:F}),this}},{key:"adjustTextarea",value:function(D,u,F){var t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1.2,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,C=arguments.length>5&&void 0!==arguments[5]?arguments[5]:.5,E=arguments.length>6&&void 0!==arguments[6]&&arguments[6],r=(new DOMParser).parseFromString(this.svg,"text/html"),a=r.querySelector(D);if(!a)return this;var o=a.outerHTML,s=a.innerHTML.replace(new RegExp("^]*>([\\S|\\s]*)$"),"$1"),B=n(o,s,u,F,t,e,C,E);return this.replace(o,B),this}},{key:"apply",value:function(){this.svg!==document.querySelector(this.selector).outerHTML&&(document.querySelector(this.selector).outerHTML=this.svg),this.adjustTextQueries.forEach((function(D){!function(D,u){var F=document.querySelector(D);if(F&&(u.textLength&&(F.style.display="block",F.clientWidth>u.textLength&&(F.querySelector("tspan").setAttribute("textLength",u.textLength),F.querySelector("tspan").setAttribute("lengthAdjust","spacingAndGlyphs"),F.setAttribute("textLength",u.textLength),F.setAttribute("lengthAdjust","spacingAndGlyphs"))),u["text-anchor"]&&"start"!==u["text-anchor"])){var t=parseFloat(u.textLength),e=0,C=0;F.getAttribute("transform")&&(e=parseFloat(F.getAttribute("transform").match(/translate\((\S+) .+\)/)[1]),C=parseFloat(F.getAttribute("transform").match(/translate\(\S+ (.+)\)/)[1])),"middle"===u["text-anchor"]&&F.setAttribute("transform","translate(".concat(e+t/2," ").concat(C,")")),"end"===u["text-anchor"]&&F.setAttribute("transform","translate(".concat(e+t," ").concat(C,")")),F.setAttribute("text-anchor",u["text-anchor"])}}(D.selector,{textLength:D.textLength,"text-anchor":D.textAnchor})})),this.svg=document.querySelector(this.selector).outerHTML,this.adjustTextQueries=[]}}])&&o(u.prototype,F),t&&o(u,t),D}()}]).default})); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TdmdQYXBlci93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaW5nLXdpZHRoL2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL3V0aWxpdHkvZml4LXRleHQtdHJhbnNmb3JtLmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vc2Nzcy9zdmctcGFwZXIuc2Nzcz9mOWQyIiwid2VicGFjazovL1N2Z1BhcGVyLy4vbm9kZV9tb2R1bGVzL3N0cmlwLWFuc2kvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9ub2RlX21vZHVsZXMvYW5zaS1yZWdleC9pbmRleC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL25vZGVfbW9kdWxlcy9zdHJpbmctd2lkdGgvbm9kZV9tb2R1bGVzL2lzLWZ1bGx3aWR0aC1jb2RlLXBvaW50L2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vbm9kZV9tb2R1bGVzL2Vtb2ppLXJlZ2V4L2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL2FkanVzdC10ZXh0LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL3V0aWxpdHkvc3ViLXN0cmluZy1ieS13aWR0aC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L3NwbGl0LXN0cmluZy1ieS13aWR0aC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy9hZGp1c3QtdGV4dGFyZWEuanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9qcy9zcmMvc3ZnLXBhcGVyLmpzIl0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsIndpbmRvdyIsImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJzdHJpcEFuc2kiLCJyZXF1aXJlIiwiaXNGdWxsd2lkdGhDb2RlUG9pbnQiLCJlbW9qaVJlZ2V4Iiwic3RyaW5nV2lkdGgiLCJzdHJpbmciLCJsZW5ndGgiLCJyZXBsYWNlIiwid2lkdGgiLCJjb2RlIiwiY29kZVBvaW50QXQiLCJ0ZXh0U3ZnIiwiZml4ZWRUZXh0U3ZnIiwibWF0Y2giLCJSZWdFeHAiLCJleHByZXNzaW9uMSIsIngiLCJldmFsIiwiZXhwcmVzc2lvbjIiLCJ5IiwiYW5zaVJlZ2V4Iiwib25seUZpcnN0IiwicGF0dGVybiIsImpvaW4iLCJ1bmRlZmluZWQiLCJjb2RlUG9pbnQiLCJOdW1iZXIiLCJpc05hTiIsInN0YXJ0IiwiY3VycmVudFdpZHRoIiwic3ViU3RyaW5nIiwiY2hhciIsInN1YnN0ciIsInNwbGl0cyIsInNwbGl0Iiwic3ViU3RyaW5nQnlXaWR0aCIsInB1c2giLCJ0ZXh0Q29udGVudCIsImhlaWdodCIsImxpbmVIZWlnaHQiLCJwYWRkaW5nWCIsInBhZGRpbmdZIiwibm93cmFwIiwiY29uc29sZSIsImVycm9yIiwib3JpZ2luYWxGb250U2l6ZSIsInBhcnNlSW50IiwiZm9udFNpemUiLCJwaHlzaWNhbExpbmVzIiwibG9naWNhbExpbmVzIiwibWF4Um93cyIsIk1hdGgiLCJmbG9vciIsIm1heENvbHVtbnMiLCJmb3JFYWNoIiwibGluZSIsImNvbmNhdCIsInNwbGl0U3RyaW5nQnlXaWR0aCIsImFkanVzdFkiLCJhZGp1c3RlZFRleHRTdmciLCJmaXhUZXh0VHJhbnNmb3JtIiwidHNwYW4iLCJTdmdQYXBlciIsInNlbGVjdG9yIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiRXJyb3IiLCJ0aGlzIiwic3ZnIiwib3V0ZXJIVE1MIiwiYWRqdXN0VGV4dFF1ZXJpZXMiLCJzZWFyY2giLCJyZXBsYWNlbWVudCIsInNvdXJjZSIsImZsYWdzIiwidGV4dExlbmd0aCIsInRleHRBbmNob3IiLCJkb2MiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJ0ZXh0RWxlbWVudCIsImlubmVySFRNTCIsImFkanVzdFRleHRhcmVhIiwicXVlcnkiLCJjb25maWciLCIkdGhpcyIsInN0eWxlIiwiZGlzcGxheSIsImNsaWVudFdpZHRoIiwic2V0QXR0cmlidXRlIiwidyIsInBhcnNlRmxvYXQiLCJnZXRBdHRyaWJ1dGUiLCJhZGp1c3RUZXh0Il0sIm1hcHBpbmdzIjoiQ0FBQSxTQUEyQ0EsRUFBTUMsR0FDMUIsaUJBQVpDLFNBQTBDLGlCQUFYQyxPQUN4Q0EsT0FBT0QsUUFBVUQsSUFDUSxtQkFBWEcsUUFBeUJBLE9BQU9DLElBQzlDRCxPQUFPLEdBQUlILEdBQ2UsaUJBQVpDLFFBQ2RBLFFBQWtCLFNBQUlELElBRXRCRCxFQUFlLFNBQUlDLElBUnJCLENBU0dLLFFBQVEsV0FDWCxPLFlDVEUsSUFBSUMsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVVAsUUFHbkMsSUFBSUMsRUFBU0ksRUFBaUJFLEdBQVksQ0FDekNDLEVBQUdELEVBQ0hFLEdBQUcsRUFDSFQsUUFBUyxJQVVWLE9BTkFVLEVBQVFILEdBQVVJLEtBQUtWLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNNLEdBRy9ETCxFQUFPUSxHQUFJLEVBR0pSLEVBQU9ELFFBMERmLE9BckRBTSxFQUFvQk0s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QixvQkFJMURKLEVBQU1JLGFBQWEsYUFBY0wsRUFBT1QsWUFDeENVLEVBQU1JLGFBQWEsZUFBZ0Isc0JBS2pDTCxFQUFPLGdCQUE0QyxVQUExQkEsRUFBTyxnQkFBNEIsQ0FDaEUsSUFBTU0sRUFBSUMsV0FBV1AsRUFBTSxZQUN2QnBFLEVBQUksRUFDSkcsRUFBSSxFQUNKa0UsRUFBTU8sYUFBYSxlQUNyQjVFLEVBQUkyRSxXQUFXTixFQUFNTyxhQUFhLGFBQWEvRSxNQUFNLHlCQUF5QixJQUM5RU0sRUFBSXdFLFdBQVdOLEVBQU1PLGFBQWEsYUFBYS9FLE1BQU0seUJBQXlCLEtBR2xELFdBQTFCdUUsRUFBTyxnQkFDVEMsRUFBTUksYUFBYSxZQUFuQixvQkFBNkN6RSxFQUFLMEUsRUFBSSxFQUF0RCxZQUE0RHZFLEVBQTVELE1BRzRCLFFBQTFCaUUsRUFBTyxnQkFDVEMsRUFBTUksYUFBYSxZQUFuQixvQkFBNkN6RSxFQUFJMEUsRUFBakQsWUFBc0R2RSxFQUF0RCxNQUdGa0UsRUFBTUksYUFBYSxjQUFlTCxFQUFPLGlCSXdCdkNTLENBQVdWLEVBQU1wQixTQUFVLENBQ3pCWSxXQUFZUSxFQUFNUixXQUNsQixjQUFlUSxFQUFNUCxnQkFLekJULEtBQUtDLElBQU1KLFNBQVNDLGNBQWNFLEtBQUtKLFVBQVVNLFVBQ2pERixLQUFLRyxrQkFBb0IsUSIsImZpbGUiOiJzdmctcGFwZXIubWluLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiU3ZnUGFwZXJcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiU3ZnUGFwZXJcIl0gPSBmYWN0b3J5KCk7XG59KSh3aW5kb3csIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAyKTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IHN0cmlwQW5zaSA9IHJlcXVpcmUoJ3N0cmlwLWFuc2knKTtcbmNvbnN0IGlzRnVsbHdpZHRoQ29kZVBvaW50ID0gcmVxdWlyZSgnaXMtZnVsbHdpZHRoLWNvZGUtcG9pbnQnKTtcbmNvbnN0IGVtb2ppUmVnZXggPSByZXF1aXJlKCdlbW9qaS1yZWdleCcpO1xuXG5jb25zdCBzdHJpbmdXaWR0aCA9IHN0cmluZyA9PiB7XG5cdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJyB8fCBzdHJpbmcubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRzdHJpbmcgPSBzdHJpcEFuc2koc3RyaW5nKTtcblxuXHRpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0c3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoZW1vamlSZWdleCgpLCAnICAnKTtcblxuXHRsZXQgd2lkdGggPSAwO1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3QgY29kZSA9IHN0cmluZy5jb2RlUG9pbnRBdChpKTtcblxuXHRcdC8vIElnbm9yZSBjb250cm9sIGNoYXJhY3RlcnNcblx0XHRpZiAoY29kZSA8PSAweDFGIHx8IChjb2RlID49IDB4N0YgJiYgY29kZSA8PSAweDlGKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIGNvbWJpbmluZyBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGUgPj0gMHgzMDAgJiYgY29kZSA8PSAweDM2Rikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gU3Vycm9nYXRlc1xuXHRcdGlmIChjb2RlID4gMHhGRkZGKSB7XG5cdFx0XHRpKys7XG5cdFx0fVxuXG5cdFx0d2lkdGggKz0gaXNGdWxsd2lkdGhDb2RlUG9pbnQoY29kZSkgPyAyIDogMTtcblx0fVxuXG5cdHJldHVybiB3aWR0aDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gc3RyaW5nV2lkdGg7XG4vLyBUT0RPOiByZW1vdmUgdGhpcyBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uXG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gc3RyaW5nV2lkdGg7XG4iLCJleHBvcnQgZGVmYXVsdCAodGV4dFN2ZykgPT4ge1xuICBsZXQgZml4ZWRUZXh0U3ZnID0gdGV4dFN2Z1xuXG4gIC8vIGlmIDx0ZXh0PiBkb2Vzbid0IGhhdmUgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIiwganVzdCBhZGQgaXQgd2l0aCAoMCAwKVxuICBpZiAoIWZpeGVkVGV4dFN2Zy5tYXRjaCgvPHRleHQgW14+XSp0cmFuc2Zvcm09XCJbXlwiXSpcIltePl0qPi8pKSB7XG4gICAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW14+XSopPicpLCAnPHRleHQkMSB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwKVwiPicpXG4gIH1cblxuICAvLyBpZiA8dHNwYW4+IGRvZXNuJ3QgaGF2ZSB4PVwiXCIgeT1cIlwiLCBqdXN0IGFkZCBpdCB3aXRoIHg9XCIwXCIgeT1cIjBcIlxuICBpZiAoIWZpeGVkVGV4dFN2Zy5tYXRjaCgvPHRzcGFuIFtePl0qeD1cIlteXCJdKlwiW14+XSo+LykpIHtcbiAgICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dHNwYW4oW14+XSopPicpLCAnPHRzcGFuJDEgeD1cIjBcIj4nKVxuICB9XG4gIGlmICghZml4ZWRUZXh0U3ZnLm1hdGNoKC88dHNwYW4gW14+XSp5PVwiW15cIl0qXCJbXj5dKj4vKSkge1xuICAgIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0c3BhbihbXj5dKik+JyksICc8dHNwYW4kMSB5PVwiMFwiPicpXG4gIH1cblxuICAvLyBjb3B5IHggZnJvbSA8dHNwYW4geD1cIlwiPiBhbmQgYWRkIGl0IHRvIDx0ZXh0IHRyYW5zZm9ybT1cInRyYW5zbGF0ZSh4IHkpXCI+XG4gIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0ZXh0KFtcXFxcc1xcXFxTXSspdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgoXFxcXFMrKVxcXFxzKyguKylcXFxcKVwiKFtePl0qKT5cXHMqPHRzcGFuKFtePl0rKXg9XCIoW15cIl0rKVwiJyksICc8dGV4dCQxdHJhbnNmb3JtPVwidHJhbnNsYXRlKCMjIyQyKyQ2IyMjICQzKVwiJDQ+PHRzcGFuJDV4PVwiMFwiJylcbiAgY29uc3QgZXhwcmVzc2lvbjEgPSBmaXhlZFRleHRTdmcubWF0Y2gobmV3IFJlZ0V4cCgnPHRleHRbXFxcXHNcXFxcU10rdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgjIyMoLispIyMjLitcXFxcKVwiJykpWzFdXG4gIGNvbnN0IHggPSBleHByZXNzaW9uMS5tYXRjaCgvXFxkK1xcK1xcZCsvKSA/IGV2YWwoZXhwcmVzc2lvbjEpIDogMFxuICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dGV4dChbXFxcXHNcXFxcU10rKXRyYW5zZm9ybT1cInRyYW5zbGF0ZVxcXFwoIyMjLisjIyMoLispXFxcXClcIicpLCBgPHRleHQkMXRyYW5zZm9ybT1cInRyYW5zbGF0ZSgke3h9JDIpXCJgKVxuXG4gIC8vIGNvcHkgeSBmcm9tIDx0c3BhbiB5PVwiXCI+IGFuZCBhZGQgaXQgdG8gPHRleHQgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIj5cbiAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW1xcXFxzXFxcXFNdKyl0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKCguKylcXFxccysoXFxcXFMrKVxcXFwpXCIoW14+XSopPlxccyo8dHNwYW4oW14+XSspeT1cIihbXlwiXSspXCInKSwgJzx0ZXh0JDF0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoJDIgIyMjJDMrJDYjIyMpXCIkND48dHNwYW4kNXk9XCIwXCInKVxuICBjb25zdCBleHByZXNzaW9uMiA9IGZpeGVkVGV4dFN2Zy5tYXRjaChuZXcgUmVnRXhwKCc8dGV4dFtcXFxcc1xcXFxTXSt0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKC4rIyMjKC4rKSMjI1xcXFwpXCInKSlbMV1cbiAgY29uc3QgeSA9IGV4cHJlc3Npb24yLm1hdGNoKC9cXGQrXFwrXFxkKy8pID8gZXZhbChleHByZXNzaW9uMikgOiAwXG4gIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0ZXh0KFtcXFxcc1xcXFxTXSspdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgoLispIyMjLisjIyNcXFxcKVwiJyksIGA8dGV4dCQxdHJhbnNmb3JtPVwidHJhbnNsYXRlKCQyJHt5fSlcImApXG5cbiAgcmV0dXJuIGZpeGVkVGV4dFN2Z1xufVxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYW5zaVJlZ2V4ID0gcmVxdWlyZSgnYW5zaS1yZWdleCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZyA9PiB0eXBlb2Ygc3RyaW5nID09PSAnc3RyaW5nJyA/IHN0cmluZy5yZXBsYWNlKGFuc2lSZWdleCgpLCAnJykgOiBzdHJpbmc7XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gKHtvbmx5Rmlyc3QgPSBmYWxzZX0gPSB7fSkgPT4ge1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHRcdCdbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86W2EtekEtWlxcXFxkXSooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn07XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSB5b2RhICovXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGlzRnVsbHdpZHRoQ29kZVBvaW50ID0gY29kZVBvaW50ID0+IHtcblx0aWYgKE51bWJlci5pc05hTihjb2RlUG9pbnQpKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Ly8gQ29kZSBwb2ludHMgYXJlIGRlcml2ZWQgZnJvbTpcblx0Ly8gaHR0cDovL3d3dy51bml4Lm9yZy9QdWJsaWMvVU5JREFUQS9FYXN0QXNpYW5XaWR0aC50eHRcblx0aWYgKFxuXHRcdGNvZGVQb2ludCA+PSAweDExMDAgJiYgKFxuXHRcdFx0Y29kZVBvaW50IDw9IDB4MTE1RiB8fCAvLyBIYW5ndWwgSmFtb1xuXHRcdFx0Y29kZVBvaW50ID09PSAweDIzMjkgfHwgLy8gTEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUXG5cdFx0XHRjb2RlUG9pbnQgPT09IDB4MjMyQSB8fCAvLyBSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUXG5cdFx0XHQvLyBDSksgUmFkaWNhbHMgU3VwcGxlbWVudCAuLiBFbmNsb3NlZCBDSksgTGV0dGVycyBhbmQgTW9udGhzXG5cdFx0XHQoMHgyRTgwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzMjQ3ICYmIGNvZGVQb2ludCAhPT0gMHgzMDNGKSB8fFxuXHRcdFx0Ly8gRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRocyAuLiBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBBXG5cdFx0XHQoMHgzMjUwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHg0REJGKSB8fFxuXHRcdFx0Ly8gQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyAuLiBZaSBSYWRpY2Fsc1xuXHRcdFx0KDB4NEUwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4QTRDNikgfHxcblx0XHRcdC8vIEhhbmd1bCBKYW1vIEV4dGVuZGVkLUFcblx0XHRcdCgweEE5NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE5N0MpIHx8XG5cdFx0XHQvLyBIYW5ndWwgU3lsbGFibGVzXG5cdFx0XHQoMHhBQzAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhEN0EzKSB8fFxuXHRcdFx0Ly8gQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBoc1xuXHRcdFx0KDB4RjkwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkFGRikgfHxcblx0XHRcdC8vIFZlcnRpY2FsIEZvcm1zXG5cdFx0XHQoMHhGRTEwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRTE5KSB8fFxuXHRcdFx0Ly8gQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMgLi4gU21hbGwgRm9ybSBWYXJpYW50c1xuXHRcdFx0KDB4RkUzMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkU2QikgfHxcblx0XHRcdC8vIEhhbGZ3aWR0aCBhbmQgRnVsbHdpZHRoIEZvcm1zXG5cdFx0XHQoMHhGRjAxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRjYwKSB8fFxuXHRcdFx0KDB4RkZFMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkZFNikgfHxcblx0XHRcdC8vIEthbmEgU3VwcGxlbWVudFxuXHRcdFx0KDB4MUIwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFCMDAxKSB8fFxuXHRcdFx0Ly8gRW5jbG9zZWQgSWRlb2dyYXBoaWMgU3VwcGxlbWVudFxuXHRcdFx0KDB4MUYyMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjUxKSB8fFxuXHRcdFx0Ly8gQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQiAuLiBUZXJ0aWFyeSBJZGVvZ3JhcGhpYyBQbGFuZVxuXHRcdFx0KDB4MjAwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDNGRkZEKVxuXHRcdClcblx0KSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRyZXR1cm4gZmFsc2U7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVsbHdpZHRoQ29kZVBvaW50O1xubW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IGlzRnVsbHdpZHRoQ29kZVBvaW50O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICAvLyBodHRwczovL210aHMuYmUvZW1vamlcbiAgcmV0dXJuIC9cXHVEODNDXFx1REZGNFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjIoPzpcXHVEQjQwXFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REI0MFxcdURDNzNcXHVEQjQwXFx1REM2M1xcdURCNDBcXHVEQzc0fFxcdURCNDBcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3MylcXHVEQjQwXFx1REM3RnxcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1xcdURGRkJ8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZGXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkVcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRF0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRFxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkNdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1MjAwRCg/OlxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRFxcdURDNjh8KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzY2XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKSl8XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGfFxcdUQ4M0RbXFx1REM2NlxcdURDNjddfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXwoPzpcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSlcXHVGRTBGfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkJcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGQ1xcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OSlcXHVEODNDXFx1REZGQnxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEpfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkVcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRlxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSkpKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKXwoPzpcXHVEODNFXFx1REREMVxcdUQ4M0NcXHVERkZDXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdUQ4M0RcXHVEQzY5XFx1RDgzQ1xcdURGRkRcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjkpKD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ10pfFxcdUQ4M0RcXHVEQzY5KD86XFx1RDgzQ1xcdURGRkVcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkNcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkJcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRFxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pfFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkZcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSkpfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkRcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRVxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRF0pfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY5XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXwoPzpcXHVEODNEXFx1REM0MVxcdUZFMEZcXHUyMDBEXFx1RDgzRFxcdURERTh8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pfCg/Oig/OlxcdTI2Rjl8XFx1RDgzQ1tcXHVERkNCXFx1REZDQ118XFx1RDgzRFxcdURENzUpXFx1RkUwRnxcXHVEODNEXFx1REM2RnxcXHVEODNFW1xcdUREM0NcXHVERERFXFx1RERERl0pXFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml18KD86XFx1MjZGOXxcXHVEODNDW1xcdURGQ0JcXHVERkNDXXxcXHVEODNEXFx1REQ3NSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pXFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml18KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNC1cXHVERUI2XXxcXHVEODNFW1xcdUREMjZcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRC1cXHVERENGXFx1RERENi1cXHVEREREXSkoPzooPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pXFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml18XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml0pfFxcdUQ4M0NcXHVERkY0XFx1MjAwRFxcdTI2MjApXFx1RkUwRnxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1xcdURGRjNcXHVGRTBGXFx1MjAwRFxcdUQ4M0NcXHVERjA4fFxcdUQ4M0RcXHVEQzE1XFx1MjAwRFxcdUQ4M0VcXHVEREJBfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3fFxcdUQ4M0NcXHVEREZEXFx1RDgzQ1xcdURERjB8XFx1RDgzQ1xcdURERjRcXHVEODNDXFx1RERGMnxcXHVEODNDXFx1RERGNlxcdUQ4M0NcXHVEREU2fFsjXFwqMC05XVxcdUZFMEZcXHUyMEUzfFxcdUQ4M0NcXHVEREU3KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERGOSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVEXFx1RERFRi1cXHVEREY0XFx1RERGN1xcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkZdKXxcXHVEODNDXFx1RERFQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdKXxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzQ1xcdURERjcoPzpcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0NcXHVEREYyKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOC1cXHVEREVEXFx1RERGMC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERTYoPzpcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdKXxcXHVEODNDXFx1RERGMCg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRCg/OlxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXSl8XFx1RDgzQ1xcdURERTkoPzpcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdKXxcXHVEODNDXFx1RERGRSg/OlxcdUQ4M0NbXFx1RERFQVxcdURERjldKXxcXHVEODNDXFx1RERFQyg/OlxcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREY4KD86XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERUIoPzpcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN10pfFxcdUQ4M0NcXHVEREY1KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFQS1cXHVEREVEXFx1RERGMC1cXHVEREYzXFx1RERGNy1cXHVEREY5XFx1RERGQ1xcdURERkVdKXxcXHVEODNDXFx1RERGQig/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV0pfFxcdUQ4M0NcXHVEREYzKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdKXxcXHVEODNDXFx1RERFOCg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYxKD86XFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdKXxcXHVEODNDXFx1RERGRig/OlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXSl8XFx1RDgzQ1xcdURERkMoPzpcXHVEODNDW1xcdURERUJcXHVEREY4XSl8XFx1RDgzQ1xcdURERkEoPzpcXHVEODNDW1xcdURERTZcXHVEREVDXFx1RERGMlxcdURERjNcXHVEREY4XFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRSg/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVBXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XSl8XFx1RDgzQ1xcdURERUYoPzpcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdKXwoPzpcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ2LVxcdURERERdKSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86XFx1MjZGOXxcXHVEODNDW1xcdURGQ0JcXHVERkNDXXxcXHVEODNEXFx1REQ3NSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OltcXHUyNjFEXFx1MjcwQS1cXHUyNzBEXXxcXHVEODNDW1xcdURGODVcXHVERkMyXFx1REZDN118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjZcXHVEQzY3XFx1REM2Qi1cXHVEQzZEXFx1REM3MFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1RENBQVxcdURENzRcXHVERDdBXFx1REQ5MFxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ118XFx1RDgzRVtcXHVERDBGXFx1REQxOC1cXHVERDFDXFx1REQxRVxcdUREMUZcXHVERDMwLVxcdUREMzZcXHVEREI1XFx1RERCNlxcdUREQkJcXHVEREQyLVxcdURERDVdKSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86W1xcdTIzMUFcXHUyMzFCXFx1MjNFOS1cXHUyM0VDXFx1MjNGMFxcdTIzRjNcXHUyNUZEXFx1MjVGRVxcdTI2MTRcXHUyNjE1XFx1MjY0OC1cXHUyNjUzXFx1MjY3RlxcdTI2OTNcXHUyNkExXFx1MjZBQVxcdTI2QUJcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM1XFx1MjZDRVxcdTI2RDRcXHUyNkVBXFx1MjZGMlxcdTI2RjNcXHUyNkY1XFx1MjZGQVxcdTI2RkRcXHUyNzA1XFx1MjcwQVxcdTI3MEJcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURERTYtXFx1RERGRlxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjdDXFx1REY3RS1cXHVERjkzXFx1REZBMC1cXHVERkNBXFx1REZDRi1cXHVERkQzXFx1REZFMC1cXHVERkYwXFx1REZGNFxcdURGRjgtXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDM0VcXHVEQzQwXFx1REM0Mi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1REQ3QVxcdUREOTVcXHVERDk2XFx1RERBNFxcdURERkItXFx1REU0RlxcdURFODAtXFx1REVDNVxcdURFQ0NcXHVERUQwLVxcdURFRDJcXHVERUQ1XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkFcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRC1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDcxXFx1REQ3My1cXHVERDc2XFx1REQ3QS1cXHVEREEyXFx1RERBNS1cXHVEREFBXFx1RERBRS1cXHVERENBXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTczXFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTgyXFx1REU5MC1cXHVERTk1XSl8KD86WyNcXCowLTlcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRTktXFx1MjNGM1xcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQi1cXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjFEXFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5Mi1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDNVxcdTI2QzhcXHUyNkNFXFx1MjZDRlxcdTI2RDFcXHUyNkQzXFx1MjZENFxcdTI2RTlcXHUyNkVBXFx1MjZGMC1cXHUyNkY1XFx1MjZGNy1cXHUyNkZBXFx1MjZGRFxcdTI3MDJcXHUyNzA1XFx1MjcwOC1cXHUyNzBEXFx1MjcwRlxcdTI3MTJcXHUyNzE0XFx1MjcxNlxcdTI3MURcXHUyNzIxXFx1MjcyOFxcdTI3MzNcXHUyNzM0XFx1Mjc0NFxcdTI3NDdcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3NTdcXHUyNzYzXFx1Mjc2NFxcdTI3OTUtXFx1Mjc5N1xcdTI3QTFcXHUyN0IwXFx1MjdCRlxcdTI5MzRcXHUyOTM1XFx1MkIwNS1cXHUyQjA3XFx1MkIxQlxcdTJCMUNcXHUyQjUwXFx1MkI1NVxcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldfFxcdUQ4M0NbXFx1REMwNFxcdURDQ0ZcXHVERDcwXFx1REQ3MVxcdUREN0VcXHVERDdGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURERTYtXFx1RERGRlxcdURFMDFcXHVERTAyXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMVxcdURGMjQtXFx1REY5M1xcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RS1cXHVERkYwXFx1REZGMy1cXHVERkY1XFx1REZGNy1cXHVERkZGXXxcXHVEODNEW1xcdURDMDAtXFx1RENGRFxcdURDRkYtXFx1REQzRFxcdURENDktXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdURENkZcXHVERDcwXFx1REQ3My1cXHVERDdBXFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREOTBcXHVERDk1XFx1REQ5NlxcdUREQTRcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQS1cXHVERTRGXFx1REU4MC1cXHVERUM1XFx1REVDQi1cXHVERUQyXFx1REVENVxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUVCXFx1REVFQ1xcdURFRjBcXHVERUYzLVxcdURFRkFcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRC1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDcxXFx1REQ3My1cXHVERDc2XFx1REQ3QS1cXHVEREEyXFx1RERBNS1cXHVEREFBXFx1RERBRS1cXHVERENBXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTczXFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTgyXFx1REU5MC1cXHVERTk1XSlcXHVGRTBGfCg/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwRlxcdUREMTgtXFx1REQxRlxcdUREMjZcXHVERDMwLVxcdUREMzlcXHVERDNDLVxcdUREM0VcXHVEREI1XFx1RERCNlxcdUREQjhcXHVEREI5XFx1RERCQlxcdUREQ0QtXFx1RERDRlxcdURERDEtXFx1RERERF0pL2c7XG59O1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydCBkZWZhdWx0IChzZWxlY3RvciwgY29uZmlnKSA9PiB7XG4gIGNvbnN0ICR0aGlzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvcilcblxuICBpZiAoISR0aGlzKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBzaHJpbmsgdGV4dCBlbGVtZW50IHRvIHNwZWNpZmllZCB3aWR0aFxuICBpZiAoISFjb25maWdbJ3RleHRMZW5ndGgnXSkge1xuICAgIC8vIGZvciBmaXJlZm94XG4gICAgLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9qYS9kb2NzL1dlYi9BUEkvRWxlbWVudC9jbGllbnRXaWR0aFxuICAgICR0aGlzLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXG5cbiAgICBpZiAoJHRoaXMuY2xpZW50V2lkdGggPiBjb25maWcudGV4dExlbmd0aCkge1xuICAgICAgJHRoaXMucXVlcnlTZWxlY3RvcigndHNwYW4nKS5zZXRBdHRyaWJ1dGUoJ3RleHRMZW5ndGgnLCBjb25maWcudGV4dExlbmd0aClcbiAgICAgICR0aGlzLnF1ZXJ5U2VsZWN0b3IoJ3RzcGFuJykuc2V0QXR0cmlidXRlKCdsZW5ndGhBZGp1c3QnLCAnc3BhY2luZ0FuZEdseXBocycpXG5cbiAgICAgIC8vIGZvciBmaXJlZm94XG4gICAgICAvLyBAc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg5MDY5MlxuICAgICAgJHRoaXMuc2V0QXR0cmlidXRlKCd0ZXh0TGVuZ3RoJywgY29uZmlnLnRleHRMZW5ndGgpXG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ2xlbmd0aEFkanVzdCcsICdzcGFjaW5nQW5kR2x5cGhzJylcbiAgICB9XG4gIH1cblxuICAvLyBhbGlnbm1lbnRcbiAgaWYgKCEhY29uZmlnWyd0ZXh0LWFuY2hvciddICYmIGNvbmZpZ1sndGV4dC1hbmNob3InXSAhPT0gJ3N0YXJ0Jykge1xuICAgIGNvbnN0IHcgPSBwYXJzZUZsb2F0KGNvbmZpZ1sndGV4dExlbmd0aCddKVxuICAgIGxldCB4ID0gMFxuICAgIGxldCB5ID0gMFxuICAgIGlmICgkdGhpcy5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpKSB7XG4gICAgICB4ID0gcGFyc2VGbG9hdCgkdGhpcy5nZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScpLm1hdGNoKC90cmFuc2xhdGVcXCgoXFxTKykgLitcXCkvKVsxXSlcbiAgICAgIHkgPSBwYXJzZUZsb2F0KCR0aGlzLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL3RyYW5zbGF0ZVxcKFxcUysgKC4rKVxcKS8pWzFdKVxuICAgIH1cblxuICAgIGlmIChjb25maWdbJ3RleHQtYW5jaG9yJ10gPT09ICdtaWRkbGUnKSB7XG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHt4ICsgKHcgLyAyKX0gJHt5fSlgKVxuICAgIH1cblxuICAgIGlmIChjb25maWdbJ3RleHQtYW5jaG9yJ10gPT09ICdlbmQnKSB7XG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHt4ICsgd30gJHt5fSlgKVxuICAgIH1cblxuICAgICR0aGlzLnNldEF0dHJpYnV0ZSgndGV4dC1hbmNob3InLCBjb25maWdbJ3RleHQtYW5jaG9yJ10pXG4gIH1cbn1cbiIsImltcG9ydCBzdHJpbmdXaWR0aCBmcm9tICdzdHJpbmctd2lkdGgnXG5cbmV4cG9ydCBkZWZhdWx0IChzdHJpbmcsIHN0YXJ0LCB3aWR0aCkgPT4ge1xuICBsZXQgY3VycmVudFdpZHRoID0gMFxuICBsZXQgc3ViU3RyaW5nID0gJydcblxuICBmb3IgKGxldCBpID0gc3RhcnQ7IDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0cmluZy5zdWJzdHIoaSwgMSlcbiAgICBjdXJyZW50V2lkdGggKz0gc3RyaW5nV2lkdGgoY2hhcilcbiAgICBpZiAoY3VycmVudFdpZHRoIDw9IHdpZHRoICYmIGkgPD0gc3RyaW5nLmxlbmd0aCkge1xuICAgICAgc3ViU3RyaW5nICs9IGNoYXJcbiAgICB9XG4gICAgaWYgKGN1cnJlbnRXaWR0aCA+PSB3aWR0aCB8fCBpID49IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBzdWJTdHJpbmdcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCBzdWJTdHJpbmdCeVdpZHRoIGZyb20gJy4vc3ViLXN0cmluZy1ieS13aWR0aCdcblxuZXhwb3J0IGRlZmF1bHQgKHN0cmluZywgd2lkdGgpID0+IHtcbiAgbGV0IHNwbGl0cyA9IFtdXG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBsZXQgc3BsaXQgPSBzdWJTdHJpbmdCeVdpZHRoKHN0cmluZywgMCwgd2lkdGgpXG4gICAgc3BsaXRzLnB1c2goc3BsaXQpXG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2Uoc3BsaXQsICcnKVxuICAgIGlmICghc3RyaW5nKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzcGxpdHNcbn1cbiIsIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgc3BsaXRTdHJpbmdCeVdpZHRoIGZyb20gJy4vdXRpbGl0eS9zcGxpdC1zdHJpbmctYnktd2lkdGgnXG5pbXBvcnQgZml4VGV4dFRyYW5zZm9ybSBmcm9tICcuL3V0aWxpdHkvZml4LXRleHQtdHJhbnNmb3JtJ1xuXG5leHBvcnQgZGVmYXVsdCAodGV4dFN2ZywgdGV4dENvbnRlbnQsIHdpZHRoLCBoZWlnaHQsIGxpbmVIZWlnaHQgPSAxLjIsIHBhZGRpbmdYID0gMC41LCBwYWRkaW5nWSA9IDAuNSwgbm93cmFwID0gZmFsc2UpID0+IHtcbiAgaWYgKCF0ZXh0U3ZnLm1hdGNoKG5ldyBSZWdFeHAoJzx0ZXh0IFtePl0qZm9udC1zaXplPVwiXFxcXGQrXCJbXj5dKj48dHNwYW4oIFtePl0qPnw+KVtePD5dKjwvdHNwYW4+PC90ZXh0PicpKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgc3ZnIHN0cmluZyBvZiB0ZXh0IGVsZW1lbnQnLCB0ZXh0U3ZnKVxuICAgIHJldHVybiB0ZXh0U3ZnXG4gIH1cblxuICBjb25zdCBvcmlnaW5hbEZvbnRTaXplID0gcGFyc2VJbnQodGV4dFN2Zy5tYXRjaCgvLitmb250LXNpemU9XCIoXFxkKylcIi4rLylbMV0pXG4gIGxldCBmb250U2l6ZSA9IG9yaWdpbmFsRm9udFNpemVcblxuICAvLyBmaW5kIHRoZSByaWdodC1zaXplIGZvbnQtc2l6ZVxuICBjb25zdCBwaHlzaWNhbExpbmVzID0gdGV4dENvbnRlbnQuc3BsaXQoXCJcXG5cIilcbiAgbGV0IGxvZ2ljYWxMaW5lcyA9IFtdXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IG1heFJvd3MgPSBNYXRoLmZsb29yKChoZWlnaHQgLSAoMiAqIGZvbnRTaXplICogcGFkZGluZ1kpKSAvIChmb250U2l6ZSAqIGxpbmVIZWlnaHQpKVxuICAgIGxldCBtYXhDb2x1bW5zID0gTWF0aC5mbG9vcigod2lkdGggLSAoMiAqIGZvbnRTaXplICogcGFkZGluZ1gpKSAvIGZvbnRTaXplKSAvLyBkb2Vzbid0IGNhcmUgYWJvdXQgcHJvcG9ydGlvbmFsIGZvbnRcblxuICAgIGlmIChub3dyYXApIHtcbiAgICAgIGxvZ2ljYWxMaW5lcyA9IHBoeXNpY2FsTGluZXNcbiAgICB9IGVsc2Uge1xuICAgICAgbG9naWNhbExpbmVzID0gW11cbiAgICAgIHBoeXNpY2FsTGluZXMuZm9yRWFjaChsaW5lID0+IHtcbiAgICAgICAgbG9naWNhbExpbmVzID0gbG9naWNhbExpbmVzLmNvbmNhdChzcGxpdFN0cmluZ0J5V2lkdGgobGluZSwgbWF4Q29sdW1ucyAqIDIpKSAvLyAyIHNpbmdsZS1ieXRlIGNoYXJhY3RlcnMgY2FuIGJlIHBsYWNlZCBpbiAxIGNvbHVtblxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAobG9naWNhbExpbmVzLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIGZvbnRTaXplICo9IDAuOTVcbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvLyByYWlzZSB5LWNvb3JkaW5hdGUgdXAgYmVjYXVzZSB5LWNvb3JkaW5hdGUgb2YgPHRleHQgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIj4gb3IgPHRzcGFuIHk9XCJcIj4gaXMgb24gbG93ZXIgYmFzZSBvZiB0ZXh0IG9iamVjdFxuICBjb25zdCBhZGp1c3RZID0gZm9udFNpemUgLSBvcmlnaW5hbEZvbnRTaXplXG5cbiAgbGV0IGFkanVzdGVkVGV4dFN2ZyA9IGZpeFRleHRUcmFuc2Zvcm0odGV4dFN2ZylcbiAgYWRqdXN0ZWRUZXh0U3ZnID0gYWRqdXN0ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRzcGFuKC58XFxcXHMpKzwvdGV4dD4nKSwgJycpXG4gIGFkanVzdGVkVGV4dFN2ZyA9IGFkanVzdGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJ2ZvbnQtc2l6ZT1cIlxcXFxkK1wiJyksIGBmb250LXNpemU9XCIke2ZvbnRTaXplfVwiYClcbiAgYWRqdXN0ZWRUZXh0U3ZnICs9ICd7dHNwYW59PC90ZXh0PidcblxuICBsZXQgdHNwYW4gPSAnJ1xuICBjb25zdCB4ID0gZm9udFNpemUgKiBwYWRkaW5nWFxuICBsb2dpY2FsTGluZXMuZm9yRWFjaCgobGluZSwgaSkgPT4ge1xuICAgIGNvbnN0IHkgPSBhZGp1c3RZICsgZm9udFNpemUgKiAocGFkZGluZ1kgKyAoaSAqIGxpbmVIZWlnaHQpKVxuICAgIHRzcGFuICs9IGA8dHNwYW4geD1cIiR7eH1cIiB5PVwiJHt5fVwiPiR7bGluZX08L3RzcGFuPmBcbiAgfSlcblxuICBhZGp1c3RlZFRleHRTdmcgPSBhZGp1c3RlZFRleHRTdmcucmVwbGFjZSgne3RzcGFufScsIHRzcGFuKVxuXG4gIHJldHVybiBhZGp1c3RlZFRleHRTdmdcbn1cbiIsIid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgYWRqdXN0VGV4dCBmcm9tICcuL2FkanVzdC10ZXh0J1xuaW1wb3J0IGFkanVzdFRleHRhcmVhIGZyb20gJy4vYWRqdXN0LXRleHRhcmVhJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdmdQYXBlciB7XG4gIGNvbnN0cnVjdG9yKHNlbGVjdG9yID0gJy5wYXBlciBzdmcnKSB7XG4gICAgaWYgKCFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlbGVjdG9yJylcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3JcbiAgICB0aGlzLnN2ZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLm91dGVySFRNTC5yZXBsYWNlKC9bXFxyfFxcbl0rL2csIFwiXFxuXCIpXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcyA9IFtdXG4gIH1cblxuICByZXBsYWNlKHNlYXJjaCwgcmVwbGFjZW1lbnQpIHtcbiAgICBpZiAoc2VhcmNoIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICBzZWFyY2ggPSBuZXcgUmVnRXhwKHNlYXJjaC5zb3VyY2UsIHNlYXJjaC5mbGFncy5yZXBsYWNlKC9nL2csICcnKSArICdnJylcbiAgICB9IGVsc2Uge1xuICAgICAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoL1tcXHJ8XFxuXSsvZywgXCJcXG5cIilcblxuICAgICAgLy8gQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9qYS9kb2NzL1dlYi9KYXZhU2NyaXB0L0d1aWRlL1JlZ3VsYXJfRXhwcmVzc2lvbnMjZXNjYXBpbmdcbiAgICAgIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKC9bLiorP149IToke30oKXxbXFxdXFwvXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgICBzZWFyY2ggPSBuZXcgUmVnRXhwKHNlYXJjaCwgJ2cnKVxuICAgIH1cblxuICAgIC8vIGNhc3QgdG8gc3RyaW5nXG4gICAgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudCAhPT0gdW5kZWZpbmVkICYmIHJlcGxhY2VtZW50ICE9PSBudWxsID8gcmVwbGFjZW1lbnQgKyAnJyA6ICcnXG5cbiAgICByZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50LnJlcGxhY2UoL1tcXHJ8XFxuXSsvZywgXCJcXG5cIilcblxuICAgIHRoaXMuc3ZnID0gdGhpcy5zdmcucmVwbGFjZShzZWFyY2gsIHJlcGxhY2VtZW50KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFkanVzdFRleHQoc2VsZWN0b3IsIHRleHRMZW5ndGggPSBudWxsLCB0ZXh0QW5jaG9yID0gJ3N0YXJ0Jykge1xuICAgIHRoaXMuYWRqdXN0VGV4dFF1ZXJpZXMucHVzaCh7c2VsZWN0b3IsIHRleHRMZW5ndGgsIHRleHRBbmNob3J9KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFkanVzdFRleHRhcmVhKHNlbGVjdG9yLCB3aWR0aCwgaGVpZ2h0LCBsaW5lSGVpZ2h0ID0gMS4yLCBwYWRkaW5nWCA9IDAuNSwgcGFkZGluZ1kgPSAwLjUsIG5vd3JhcCA9IGZhbHNlKSB7XG4gICAgY29uc3QgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh0aGlzLnN2ZywgJ3RleHQvaHRtbCcpXG4gICAgY29uc3QgdGV4dEVsZW1lbnQgPSBkb2MucXVlcnlTZWxlY3RvcihzZWxlY3RvcilcbiAgICBpZiAoIXRleHRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIGNvbnN0IHRleHRTdmcgPSB0ZXh0RWxlbWVudC5vdXRlckhUTUxcbiAgICAvLyBTVkdFbGVtZW50IGRvZXNuJ3QgaGF2ZSBpbm5lclRleHRcbiAgICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TVkdFbGVtZW50XG4gICAgY29uc3QgdGV4dENvbnRlbnQgPSB0ZXh0RWxlbWVudC5pbm5lckhUTUwucmVwbGFjZShuZXcgUmVnRXhwKCdePHRzcGFuW14+XSo+KFtcXFxcU3xcXFxcc10qKTwvdHNwYW4+JCcpLCAnJDEnKVxuXG4gICAgY29uc3QgYWRqdXN0ZWRUZXh0U3ZnID0gYWRqdXN0VGV4dGFyZWEodGV4dFN2ZywgdGV4dENvbnRlbnQsIHdpZHRoLCBoZWlnaHQsIGxpbmVIZWlnaHQsIHBhZGRpbmdYLCBwYWRkaW5nWSwgbm93cmFwKVxuXG4gICAgdGhpcy5yZXBsYWNlKHRleHRTdmcsIGFkanVzdGVkVGV4dFN2ZylcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBhcHBseSgpIHtcbiAgICBpZiAodGhpcy5zdmcgIT09IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MKSB7XG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2VsZWN0b3IpLm91dGVySFRNTCA9IHRoaXMuc3ZnXG4gICAgfVxuXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcy5mb3JFYWNoKHF1ZXJ5ID0+IHtcbiAgICAgIGFkanVzdFRleHQocXVlcnkuc2VsZWN0b3IsIHtcbiAgICAgICAgdGV4dExlbmd0aDogcXVlcnkudGV4dExlbmd0aCxcbiAgICAgICAgJ3RleHQtYW5jaG9yJzogcXVlcnkudGV4dEFuY2hvcixcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIGluaXRpYWxpemVcbiAgICB0aGlzLnN2ZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcyA9IFtdXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file +!function(D,u){"object"==typeof exports&&"object"==typeof module?module.exports=u():"function"==typeof define&&define.amd?define([],u):"object"==typeof exports?exports.SvgPaper=u():D.SvgPaper=u()}(window,(function(){return function(D){var u={};function F(t){if(u[t])return u[t].exports;var e=u[t]={i:t,l:!1,exports:{}};return D[t].call(e.exports,e,e.exports,F),e.l=!0,e.exports}return F.m=D,F.c=u,F.d=function(D,u,t){F.o(D,u)||Object.defineProperty(D,u,{enumerable:!0,get:t})},F.r=function(D){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})},F.t=function(D,u){if(1&u&&(D=F(D)),8&u)return D;if(4&u&&"object"==typeof D&&D&&D.__esModule)return D;var t=Object.create(null);if(F.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:D}),2&u&&"string"!=typeof D)for(var e in D)F.d(t,e,function(u){return D[u]}.bind(null,e));return t},F.n=function(D){var u=D&&D.__esModule?function(){return D.default}:function(){return D};return F.d(u,"a",u),u},F.o=function(D,u){return Object.prototype.hasOwnProperty.call(D,u)},F.p="",F(F.s=2)}([function(D,u,F){"use strict";var t=F(4),e=F(6),C=F(7),E=function(D){if("string"!=typeof D||0===D.length)return 0;if(0===(D=t(D)).length)return 0;D=D.replace(C()," ");for(var u=0,F=0;F=127&&E<=159||(E>=768&&E<=879||(E>65535&&F++,u+=e(E)?2:1))}return u};D.exports=E,D.exports.default=E},function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_exports__.a=function(textSvg){var fixedTextSvg=textSvg;fixedTextSvg.match(/]*transform="[^"]*"[^>]*>/)||(fixedTextSvg=fixedTextSvg.replace(new RegExp("]*)>"),'')),fixedTextSvg.match(/]*x="[^"]*"[^>]*>/)||(fixedTextSvg=fixedTextSvg.replace(new RegExp("]*)>"),'')),fixedTextSvg.match(/]*y="[^"]*"[^>]*>/)||(fixedTextSvg=fixedTextSvg.replace(new RegExp("]*)>"),'')),fixedTextSvg=fixedTextSvg.replace(new RegExp(']*)>s*]+)x="([^"]+)"'),']*)>s*]+)y="([^"]+)"'),'0&&void 0!==arguments[0]?arguments[0]:{},u=D.onlyFirst,F=void 0!==u&&u,t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,F?void 0:"g")}},function(D,u,F){"use strict";var t=function(D){return!Number.isNaN(D)&&(D>=4352&&(D<=4447||9001===D||9002===D||11904<=D&&D<=12871&&12351!==D||12880<=D&&D<=19903||19968<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65131||65281<=D&&D<=65376||65504<=D&&D<=65510||110592<=D&&D<=110593||127488<=D&&D<=127569||131072<=D&&D<=262141))};D.exports=t,D.exports.default=t},function(D,u,F){"use strict";D.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}},function(D,u,F){"use strict";F.r(u),F.d(u,"default",(function(){return s}));var t=F(0),e=F.n(t),C=function(D,u,F){for(var t=0,C="",E=u;;E++){var r=D.substr(E,1);if((t+=e()(r))<=F&&E<=D.length&&(C+=r),t>=F||E>=D.length)return C}},E=function(D,u){for(var F=[];;){var t=C(D,0,u);if(F.push(t),!(D=D.replace(t,"")))break}return F},r=F(1),n=function(D,u,F,t){var e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1.2,C=arguments.length>5&&void 0!==arguments[5]?arguments[5]:.5,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:.5,a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(!D.match(new RegExp(']*font-size="\\d+"[^>]*>]*>|>)[^<>]*')))return console.error("Invalid svg string of text element",D),D;for(var o=parseInt(D.match(/.+font-size="(\d+)".+/)[1]),s=o,B=u.split("\n"),i=[],c=function(){var D=Math.floor((t-2*s*n)/(s*e)),u=Math.floor((F-2*s*C)/s);if(a?i=B:(i=[],B.forEach((function(D){i=i.concat(E(D,2*u))}))),!(i.length>D))return"break";s*=.95};;){var A=c();if("break"===A)break}var l=s-o,f=Object(r.a)(D);f=(f=f.replace(new RegExp(""),"")).replace(new RegExp('font-size="\\d+"'),'font-size="'.concat(s,'"')),f+="{tspan}";var x="",p=s*C;return i.forEach((function(D,u){var F=l+s*(n+u*e);x+='').concat(D,"")})),f=f.replace("{tspan}",x)};function a(D,u){if(!(D instanceof u))throw new TypeError("Cannot call a class as a function")}function o(D,u){for(var F=0;F0&&void 0!==arguments[0]?arguments[0]:".paper svg";if(a(this,D),!document.querySelector(u))throw new Error("Invalid selector");this.selector=u,this.svg=document.querySelector(u).outerHTML.replace(/[\r|\n]+/g,"\n"),this.adjustTextQueries=[]}var u,F,t;return u=D,(F=[{key:"replace",value:function(D,u){return D instanceof RegExp?D=new RegExp(D.source,D.flags.replace(/g/g,"")+"g"):(D=(D=D.replace(/[\r|\n]+/g,"\n")).replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&"),D=new RegExp(D,"g")),u=(u=null!=u?u+"":"").replace(/[\r|\n]+/g,"\n"),this.svg=this.svg.replace(D,u),this}},{key:"adjustText",value:function(D){var u=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,F=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"start";return this.adjustTextQueries.push({selector:D,textLength:u,textAnchor:F}),this}},{key:"adjustTextarea",value:function(D,u,F){var t=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1.2,e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.5,C=arguments.length>5&&void 0!==arguments[5]?arguments[5]:.5,E=arguments.length>6&&void 0!==arguments[6]&&arguments[6],r=(new DOMParser).parseFromString(this.svg,"text/html"),a=r.querySelector(D);if(!a)return this;var o=a.outerHTML,s=a.innerHTML.replace(new RegExp("^]*>([\\S|\\s]*)$"),"$1"),B=n(o,s,u,F,t,e,C,E);return this.replace(o,B),this}},{key:"apply",value:function(){var D=this;this.svg!==document.querySelector(this.selector).outerHTML&&(document.querySelector(this.selector).outerHTML=this.svg),this.adjustTextQueries.forEach((function(u){var F,t,e=document.querySelector(D.selector),C=null!==(F=null===(t=e.getAttribute("viewBox"))||void 0===t?void 0:t.split(/ +/)[2])&&void 0!==F?F:null;!function(D,u,F){var t=document.querySelector(u);if(t&&(F.textLength&&(t.style.display="block",t.getBoundingClientRect().width*D>F.textLength&&(t.querySelector("tspan").setAttribute("textLength",F.textLength),t.querySelector("tspan").setAttribute("lengthAdjust","spacingAndGlyphs"),t.setAttribute("textLength",F.textLength),t.setAttribute("lengthAdjust","spacingAndGlyphs"))),F["text-anchor"]&&"start"!==F["text-anchor"])){var e=parseFloat(F.textLength),C=0,E=0;t.getAttribute("transform")&&(C=parseFloat(t.getAttribute("transform").match(/translate\((\S+) .+\)/)[1]),E=parseFloat(t.getAttribute("transform").match(/translate\(\S+ (.+)\)/)[1])),"middle"===F["text-anchor"]&&t.setAttribute("transform","translate(".concat(C+e/2," ").concat(E,")")),"end"===F["text-anchor"]&&t.setAttribute("transform","translate(".concat(C+e," ").concat(E,")")),t.setAttribute("text-anchor",F["text-anchor"])}}(C?parseFloat(C)/e.getBoundingClientRect().width:1,u.selector,{textLength:u.textLength,"text-anchor":u.textAnchor})})),this.svg=document.querySelector(this.selector).outerHTML,this.adjustTextQueries=[]}}])&&o(u.prototype,F),t&&o(u,t),D}()}]).default})); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TdmdQYXBlci93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaW5nLXdpZHRoL2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL3V0aWxpdHkvZml4LXRleHQtdHJhbnNmb3JtLmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vc2Nzcy9zdmctcGFwZXIuc2Nzcz9mOWQyIiwid2VicGFjazovL1N2Z1BhcGVyLy4vbm9kZV9tb2R1bGVzL3N0cmlwLWFuc2kvaW5kZXguanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9ub2RlX21vZHVsZXMvc3RyaXAtYW5zaS9ub2RlX21vZHVsZXMvYW5zaS1yZWdleC9pbmRleC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL25vZGVfbW9kdWxlcy9zdHJpbmctd2lkdGgvbm9kZV9tb2R1bGVzL2lzLWZ1bGx3aWR0aC1jb2RlLXBvaW50L2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vbm9kZV9tb2R1bGVzL2Vtb2ppLXJlZ2V4L2luZGV4LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL2FkanVzdC10ZXh0LmpzIiwid2VicGFjazovL1N2Z1BhcGVyLy4vanMvc3JjL3V0aWxpdHkvc3ViLXN0cmluZy1ieS13aWR0aC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy91dGlsaXR5L3NwbGl0LXN0cmluZy1ieS13aWR0aC5qcyIsIndlYnBhY2s6Ly9TdmdQYXBlci8uL2pzL3NyYy9hZGp1c3QtdGV4dGFyZWEuanMiLCJ3ZWJwYWNrOi8vU3ZnUGFwZXIvLi9qcy9zcmMvc3ZnLXBhcGVyLmpzIl0sIm5hbWVzIjpbInJvb3QiLCJmYWN0b3J5IiwiZXhwb3J0cyIsIm1vZHVsZSIsImRlZmluZSIsImFtZCIsIndpbmRvdyIsImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJzdHJpcEFuc2kiLCJyZXF1aXJlIiwiaXNGdWxsd2lkdGhDb2RlUG9pbnQiLCJlbW9qaVJlZ2V4Iiwic3RyaW5nV2lkdGgiLCJzdHJpbmciLCJsZW5ndGgiLCJyZXBsYWNlIiwid2lkdGgiLCJjb2RlIiwiY29kZVBvaW50QXQiLCJ0ZXh0U3ZnIiwiZml4ZWRUZXh0U3ZnIiwibWF0Y2giLCJSZWdFeHAiLCJleHByZXNzaW9uMSIsIngiLCJldmFsIiwiZXhwcmVzc2lvbjIiLCJ5IiwiYW5zaVJlZ2V4Iiwib25seUZpcnN0IiwicGF0dGVybiIsImpvaW4iLCJ1bmRlZmluZWQiLCJjb2RlUG9pbnQiLCJOdW1iZXIiLCJpc05hTiIsInN0YXJ0IiwiY3VycmVudFdpZHRoIiwic3ViU3RyaW5nIiwiY2hhciIsInN1YnN0ciIsInNwbGl0cyIsInNwbGl0Iiwic3ViU3RyaW5nQnlXaWR0aCIsInB1c2giLCJ0ZXh0Q29udGVudCIsImhlaWdodCIsImxpbmVIZWlnaHQiLCJwYWRkaW5nWCIsInBhZGRpbmdZIiwibm93cmFwIiwiY29uc29sZSIsImVycm9yIiwib3JpZ2luYWxGb250U2l6ZSIsInBhcnNlSW50IiwiZm9udFNpemUiLCJwaHlzaWNhbExpbmVzIiwibG9naWNhbExpbmVzIiwibWF4Um93cyIsIk1hdGgiLCJmbG9vciIsIm1heENvbHVtbnMiLCJmb3JFYWNoIiwibGluZSIsImNvbmNhdCIsInNwbGl0U3RyaW5nQnlXaWR0aCIsImFkanVzdFkiLCJhZGp1c3RlZFRleHRTdmciLCJmaXhUZXh0VHJhbnNmb3JtIiwidHNwYW4iLCJTdmdQYXBlciIsInNlbGVjdG9yIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiRXJyb3IiLCJ0aGlzIiwic3ZnIiwib3V0ZXJIVE1MIiwiYWRqdXN0VGV4dFF1ZXJpZXMiLCJzZWFyY2giLCJyZXBsYWNlbWVudCIsInNvdXJjZSIsImZsYWdzIiwidGV4dExlbmd0aCIsInRleHRBbmNob3IiLCJkb2MiLCJET01QYXJzZXIiLCJwYXJzZUZyb21TdHJpbmciLCJ0ZXh0RWxlbWVudCIsImlubmVySFRNTCIsImFkanVzdFRleHRhcmVhIiwicXVlcnkiLCIkc3ZnIiwidmlld0JveFdpZHRoIiwiZ2V0QXR0cmlidXRlIiwicGFwZXJQaXhlbFJhdGlvIiwiY29uZmlnIiwiJHRoaXMiLCJzdHlsZSIsImRpc3BsYXkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzZXRBdHRyaWJ1dGUiLCJ3IiwicGFyc2VGbG9hdCIsImFkanVzdFRleHQiXSwibWFwcGluZ3MiOiJDQUFBLFNBQTJDQSxFQUFNQyxHQUMxQixpQkFBWkMsU0FBMEMsaUJBQVhDLE9BQ3hDQSxPQUFPRCxRQUFVRCxJQUNRLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDOUNELE9BQU8sR0FBSUgsR0FDZSxpQkFBWkMsUUFDZEEsUUFBa0IsU0FBSUQsSUFFdEJELEVBQWUsU0FBSUMsSUFSckIsQ0FTR0ssUUFBUSxXQUNYLE8sWUNURSxJQUFJQyxFQUFtQixHQUd2QixTQUFTQyxFQUFvQkMsR0FHNUIsR0FBR0YsRUFBaUJFLEdBQ25CLE9BQU9GLEVBQWlCRSxHQUFVUCxRQUduQyxJQUFJQyxFQUFTSSxFQUFpQkUsR0FBWSxDQUN6Q0MsRUFBR0QsRUFDSEUsR0FBRyxFQUNIVCxRQUFTLElBVVYsT0FOQVUsRUFBUUgsR0FBVUksS0FBS1YsRUFBT0QsUUFBU0MsRUFBUUEsRUFBT0QsUUFBU00s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b2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiU3ZnUGFwZXJcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiU3ZnUGFwZXJcIl0gPSBmYWN0b3J5KCk7XG59KSh3aW5kb3csIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAyKTtcbiIsIid1c2Ugc3RyaWN0JztcbmNvbnN0IHN0cmlwQW5zaSA9IHJlcXVpcmUoJ3N0cmlwLWFuc2knKTtcbmNvbnN0IGlzRnVsbHdpZHRoQ29kZVBvaW50ID0gcmVxdWlyZSgnaXMtZnVsbHdpZHRoLWNvZGUtcG9pbnQnKTtcbmNvbnN0IGVtb2ppUmVnZXggPSByZXF1aXJlKCdlbW9qaS1yZWdleCcpO1xuXG5jb25zdCBzdHJpbmdXaWR0aCA9IHN0cmluZyA9PiB7XG5cdGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJyB8fCBzdHJpbmcubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRzdHJpbmcgPSBzdHJpcEFuc2koc3RyaW5nKTtcblxuXHRpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0c3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoZW1vamlSZWdleCgpLCAnICAnKTtcblxuXHRsZXQgd2lkdGggPSAwO1xuXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3QgY29kZSA9IHN0cmluZy5jb2RlUG9pbnRBdChpKTtcblxuXHRcdC8vIElnbm9yZSBjb250cm9sIGNoYXJhY3RlcnNcblx0XHRpZiAoY29kZSA8PSAweDFGIHx8IChjb2RlID49IDB4N0YgJiYgY29kZSA8PSAweDlGKSkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gSWdub3JlIGNvbWJpbmluZyBjaGFyYWN0ZXJzXG5cdFx0aWYgKGNvZGUgPj0gMHgzMDAgJiYgY29kZSA8PSAweDM2Rikge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0Ly8gU3Vycm9nYXRlc1xuXHRcdGlmIChjb2RlID4gMHhGRkZGKSB7XG5cdFx0XHRpKys7XG5cdFx0fVxuXG5cdFx0d2lkdGggKz0gaXNGdWxsd2lkdGhDb2RlUG9pbnQoY29kZSkgPyAyIDogMTtcblx0fVxuXG5cdHJldHVybiB3aWR0aDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gc3RyaW5nV2lkdGg7XG4vLyBUT0RPOiByZW1vdmUgdGhpcyBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uXG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gc3RyaW5nV2lkdGg7XG4iLCJleHBvcnQgZGVmYXVsdCAodGV4dFN2ZykgPT4ge1xuICBsZXQgZml4ZWRUZXh0U3ZnID0gdGV4dFN2Z1xuXG4gIC8vIGlmIDx0ZXh0PiBkb2Vzbid0IGhhdmUgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIiwganVzdCBhZGQgaXQgd2l0aCAoMCAwKVxuICBpZiAoIWZpeGVkVGV4dFN2Zy5tYXRjaCgvPHRleHQgW14+XSp0cmFuc2Zvcm09XCJbXlwiXSpcIltePl0qPi8pKSB7XG4gICAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW14+XSopPicpLCAnPHRleHQkMSB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwKVwiPicpXG4gIH1cblxuICAvLyBpZiA8dHNwYW4+IGRvZXNuJ3QgaGF2ZSB4PVwiXCIgeT1cIlwiLCBqdXN0IGFkZCBpdCB3aXRoIHg9XCIwXCIgeT1cIjBcIlxuICBpZiAoIWZpeGVkVGV4dFN2Zy5tYXRjaCgvPHRzcGFuIFtePl0qeD1cIlteXCJdKlwiW14+XSo+LykpIHtcbiAgICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dHNwYW4oW14+XSopPicpLCAnPHRzcGFuJDEgeD1cIjBcIj4nKVxuICB9XG4gIGlmICghZml4ZWRUZXh0U3ZnLm1hdGNoKC88dHNwYW4gW14+XSp5PVwiW15cIl0qXCJbXj5dKj4vKSkge1xuICAgIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0c3BhbihbXj5dKik+JyksICc8dHNwYW4kMSB5PVwiMFwiPicpXG4gIH1cblxuICAvLyBjb3B5IHggZnJvbSA8dHNwYW4geD1cIlwiPiBhbmQgYWRkIGl0IHRvIDx0ZXh0IHRyYW5zZm9ybT1cInRyYW5zbGF0ZSh4IHkpXCI+XG4gIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0ZXh0KFtcXFxcc1xcXFxTXSspdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgoXFxcXFMrKVxcXFxzKyguKylcXFxcKVwiKFtePl0qKT5cXHMqPHRzcGFuKFtePl0rKXg9XCIoW15cIl0rKVwiJyksICc8dGV4dCQxdHJhbnNmb3JtPVwidHJhbnNsYXRlKCMjIyQyKyQ2IyMjICQzKVwiJDQ+PHRzcGFuJDV4PVwiMFwiJylcbiAgY29uc3QgZXhwcmVzc2lvbjEgPSBmaXhlZFRleHRTdmcubWF0Y2gobmV3IFJlZ0V4cCgnPHRleHRbXFxcXHNcXFxcU10rdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgjIyMoLispIyMjLitcXFxcKVwiJykpWzFdXG4gIGNvbnN0IHggPSBleHByZXNzaW9uMS5tYXRjaCgvXFxkK1xcK1xcZCsvKSA/IGV2YWwoZXhwcmVzc2lvbjEpIDogMFxuICBmaXhlZFRleHRTdmcgPSBmaXhlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dGV4dChbXFxcXHNcXFxcU10rKXRyYW5zZm9ybT1cInRyYW5zbGF0ZVxcXFwoIyMjLisjIyMoLispXFxcXClcIicpLCBgPHRleHQkMXRyYW5zZm9ybT1cInRyYW5zbGF0ZSgke3h9JDIpXCJgKVxuXG4gIC8vIGNvcHkgeSBmcm9tIDx0c3BhbiB5PVwiXCI+IGFuZCBhZGQgaXQgdG8gPHRleHQgdHJhbnNmb3JtPVwidHJhbnNsYXRlKHggeSlcIj5cbiAgZml4ZWRUZXh0U3ZnID0gZml4ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnPHRleHQoW1xcXFxzXFxcXFNdKyl0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKCguKylcXFxccysoXFxcXFMrKVxcXFwpXCIoW14+XSopPlxccyo8dHNwYW4oW14+XSspeT1cIihbXlwiXSspXCInKSwgJzx0ZXh0JDF0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoJDIgIyMjJDMrJDYjIyMpXCIkND48dHNwYW4kNXk9XCIwXCInKVxuICBjb25zdCBleHByZXNzaW9uMiA9IGZpeGVkVGV4dFN2Zy5tYXRjaChuZXcgUmVnRXhwKCc8dGV4dFtcXFxcc1xcXFxTXSt0cmFuc2Zvcm09XCJ0cmFuc2xhdGVcXFxcKC4rIyMjKC4rKSMjI1xcXFwpXCInKSlbMV1cbiAgY29uc3QgeSA9IGV4cHJlc3Npb24yLm1hdGNoKC9cXGQrXFwrXFxkKy8pID8gZXZhbChleHByZXNzaW9uMikgOiAwXG4gIGZpeGVkVGV4dFN2ZyA9IGZpeGVkVGV4dFN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAoJzx0ZXh0KFtcXFxcc1xcXFxTXSspdHJhbnNmb3JtPVwidHJhbnNsYXRlXFxcXCgoLispIyMjLisjIyNcXFxcKVwiJyksIGA8dGV4dCQxdHJhbnNmb3JtPVwidHJhbnNsYXRlKCQyJHt5fSlcImApXG5cbiAgcmV0dXJuIGZpeGVkVGV4dFN2Z1xufVxuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307IiwiJ3VzZSBzdHJpY3QnO1xuY29uc3QgYW5zaVJlZ2V4ID0gcmVxdWlyZSgnYW5zaS1yZWdleCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHN0cmluZyA9PiB0eXBlb2Ygc3RyaW5nID09PSAnc3RyaW5nJyA/IHN0cmluZy5yZXBsYWNlKGFuc2lSZWdleCgpLCAnJykgOiBzdHJpbmc7XG4iLCIndXNlIHN0cmljdCc7XG5cbm1vZHVsZS5leHBvcnRzID0gKHtvbmx5Rmlyc3QgPSBmYWxzZX0gPSB7fSkgPT4ge1xuXHRjb25zdCBwYXR0ZXJuID0gW1xuXHRcdCdbXFxcXHUwMDFCXFxcXHUwMDlCXVtbXFxcXF0oKSM7P10qKD86KD86KD86W2EtekEtWlxcXFxkXSooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNyknLFxuXHRcdCcoPzooPzpcXFxcZHsxLDR9KD86O1xcXFxkezAsNH0pKik/W1xcXFxkQS1QUi1UWmNmLW50cXJ5PT48fl0pKSdcblx0XS5qb2luKCd8Jyk7XG5cblx0cmV0dXJuIG5ldyBSZWdFeHAocGF0dGVybiwgb25seUZpcnN0ID8gdW5kZWZpbmVkIDogJ2cnKTtcbn07XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSB5b2RhICovXG4ndXNlIHN0cmljdCc7XG5cbmNvbnN0IGlzRnVsbHdpZHRoQ29kZVBvaW50ID0gY29kZVBvaW50ID0+IHtcblx0aWYgKE51bWJlci5pc05hTihjb2RlUG9pbnQpKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Ly8gQ29kZSBwb2ludHMgYXJlIGRlcml2ZWQgZnJvbTpcblx0Ly8gaHR0cDovL3d3dy51bml4Lm9yZy9QdWJsaWMvVU5JREFUQS9FYXN0QXNpYW5XaWR0aC50eHRcblx0aWYgKFxuXHRcdGNvZGVQb2ludCA+PSAweDExMDAgJiYgKFxuXHRcdFx0Y29kZVBvaW50IDw9IDB4MTE1RiB8fCAvLyBIYW5ndWwgSmFtb1xuXHRcdFx0Y29kZVBvaW50ID09PSAweDIzMjkgfHwgLy8gTEVGVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUXG5cdFx0XHRjb2RlUG9pbnQgPT09IDB4MjMyQSB8fCAvLyBSSUdIVC1QT0lOVElORyBBTkdMRSBCUkFDS0VUXG5cdFx0XHQvLyBDSksgUmFkaWNhbHMgU3VwcGxlbWVudCAuLiBFbmNsb3NlZCBDSksgTGV0dGVycyBhbmQgTW9udGhzXG5cdFx0XHQoMHgyRTgwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHgzMjQ3ICYmIGNvZGVQb2ludCAhPT0gMHgzMDNGKSB8fFxuXHRcdFx0Ly8gRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRocyAuLiBDSksgVW5pZmllZCBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBBXG5cdFx0XHQoMHgzMjUwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHg0REJGKSB8fFxuXHRcdFx0Ly8gQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyAuLiBZaSBSYWRpY2Fsc1xuXHRcdFx0KDB4NEUwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4QTRDNikgfHxcblx0XHRcdC8vIEhhbmd1bCBKYW1vIEV4dGVuZGVkLUFcblx0XHRcdCgweEE5NjAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweEE5N0MpIHx8XG5cdFx0XHQvLyBIYW5ndWwgU3lsbGFibGVzXG5cdFx0XHQoMHhBQzAwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhEN0EzKSB8fFxuXHRcdFx0Ly8gQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBoc1xuXHRcdFx0KDB4RjkwMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkFGRikgfHxcblx0XHRcdC8vIFZlcnRpY2FsIEZvcm1zXG5cdFx0XHQoMHhGRTEwIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRTE5KSB8fFxuXHRcdFx0Ly8gQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMgLi4gU21hbGwgRm9ybSBWYXJpYW50c1xuXHRcdFx0KDB4RkUzMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkU2QikgfHxcblx0XHRcdC8vIEhhbGZ3aWR0aCBhbmQgRnVsbHdpZHRoIEZvcm1zXG5cdFx0XHQoMHhGRjAxIDw9IGNvZGVQb2ludCAmJiBjb2RlUG9pbnQgPD0gMHhGRjYwKSB8fFxuXHRcdFx0KDB4RkZFMCA8PSBjb2RlUG9pbnQgJiYgY29kZVBvaW50IDw9IDB4RkZFNikgfHxcblx0XHRcdC8vIEthbmEgU3VwcGxlbWVudFxuXHRcdFx0KDB4MUIwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFCMDAxKSB8fFxuXHRcdFx0Ly8gRW5jbG9zZWQgSWRlb2dyYXBoaWMgU3VwcGxlbWVudFxuXHRcdFx0KDB4MUYyMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDFGMjUxKSB8fFxuXHRcdFx0Ly8gQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQiAuLiBUZXJ0aWFyeSBJZGVvZ3JhcGhpYyBQbGFuZVxuXHRcdFx0KDB4MjAwMDAgPD0gY29kZVBvaW50ICYmIGNvZGVQb2ludCA8PSAweDNGRkZEKVxuXHRcdClcblx0KSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRyZXR1cm4gZmFsc2U7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVsbHdpZHRoQ29kZVBvaW50O1xubW9kdWxlLmV4cG9ydHMuZGVmYXVsdCA9IGlzRnVsbHdpZHRoQ29kZVBvaW50O1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge1xuICAvLyBodHRwczovL210aHMuYmUvZW1vamlcbiAgcmV0dXJuIC9cXHVEODNDXFx1REZGNFxcdURCNDBcXHVEQzY3XFx1REI0MFxcdURDNjIoPzpcXHVEQjQwXFx1REM2NVxcdURCNDBcXHVEQzZFXFx1REI0MFxcdURDNjd8XFx1REI0MFxcdURDNzNcXHVEQjQwXFx1REM2M1xcdURCNDBcXHVEQzc0fFxcdURCNDBcXHVEQzc3XFx1REI0MFxcdURDNkNcXHVEQjQwXFx1REM3MylcXHVEQjQwXFx1REM3RnxcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NcXHVERkZDXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4XFx1RDgzQ1xcdURGRkJ8XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pfFxcdUQ4M0NcXHVERkZGXFx1MjAwRCg/OlxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0RcXHVEQzY4KD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkVcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRF0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRFxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkNdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1MjAwRCg/OlxcdTI3NjRcXHVGRTBGXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzhCXFx1MjAwRCk/XFx1RDgzRFxcdURDNjh8KD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pXFx1MjAwRCg/OlxcdUQ4M0RcXHVEQzY2XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY3XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKSl8XFx1RDgzRFxcdURDNjZcXHUyMDBEXFx1RDgzRFxcdURDNjZ8XFx1RDgzRFxcdURDNjdcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY2XFx1REM2N10pfCg/OlxcdUQ4M0RbXFx1REM2OFxcdURDNjldKVxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8W1xcdTI2OTVcXHUyNjk2XFx1MjcwOF1cXHVGRTBGfFxcdUQ4M0RbXFx1REM2NlxcdURDNjddfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXwoPzpcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XSlcXHVGRTBGfFxcdUQ4M0NcXHVERkZCXFx1MjAwRCg/OlxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkJcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGQ1xcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OSlcXHVEODNDXFx1REZGQnxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NcXHVERkZGXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkZdKXxcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDEpfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkVcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRlxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMEQoPzpcXHVEODNEW1xcdURDNjhcXHVEQzY5XSkpKD86XFx1RDgzQ1tcXHVERkZCLVxcdURGRkVdKXwoPzpcXHVEODNFXFx1REREMVxcdUQ4M0NcXHVERkZDXFx1MjAwRFxcdUQ4M0VcXHVERDFEXFx1MjAwRFxcdUQ4M0VcXHVEREQxfFxcdUQ4M0RcXHVEQzY5XFx1RDgzQ1xcdURGRkRcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjkpKD86XFx1RDgzQ1tcXHVERkZCXFx1REZGQ10pfFxcdUQ4M0RcXHVEQzY5KD86XFx1RDgzQ1xcdURGRkVcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRFxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkNcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkJcXHVERkZELVxcdURGRkZdKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkJcXHUyMDBEKD86XFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRFxcdURDNjgoPzpcXHVEODNDW1xcdURGRkMtXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHVEODNDXFx1REZGRFxcdTIwMEQoPzpcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OCg/OlxcdUQ4M0NbXFx1REZGQlxcdURGRkNcXHVERkZFXFx1REZGRl0pfFxcdUQ4M0NbXFx1REYzRVxcdURGNzNcXHVERjkzXFx1REZBNFxcdURGQThcXHVERkVCXFx1REZFRF18XFx1RDgzRFtcXHVEQ0JCXFx1RENCQ1xcdUREMjdcXHVERDJDXFx1REU4MFxcdURFOTJdfFxcdUQ4M0VbXFx1RERBRi1cXHVEREIzXFx1RERCQ1xcdUREQkRdKXxcXHUyMDBEKD86XFx1Mjc2NFxcdUZFMEZcXHUyMDBEKD86XFx1RDgzRFxcdURDOEJcXHUyMDBEKD86XFx1RDgzRFtcXHVEQzY4XFx1REM2OV0pfFxcdUQ4M0RbXFx1REM2OFxcdURDNjldKXxcXHVEODNDW1xcdURGM0VcXHVERjczXFx1REY5M1xcdURGQTRcXHVERkE4XFx1REZFQlxcdURGRURdfFxcdUQ4M0RbXFx1RENCQlxcdURDQkNcXHVERDI3XFx1REQyQ1xcdURFODBcXHVERTkyXXxcXHVEODNFW1xcdUREQUYtXFx1RERCM1xcdUREQkNcXHVEREJEXSl8XFx1RDgzQ1xcdURGRkZcXHUyMDBEKD86XFx1RDgzQ1tcXHVERjNFXFx1REY3M1xcdURGOTNcXHVERkE0XFx1REZBOFxcdURGRUJcXHVERkVEXXxcXHVEODNEW1xcdURDQkJcXHVEQ0JDXFx1REQyN1xcdUREMkNcXHVERTgwXFx1REU5Ml18XFx1RDgzRVtcXHVEREFGLVxcdUREQjNcXHVEREJDXFx1RERCRF0pKXxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2OVxcdTIwMEQoPzpcXHVEODNEXFx1REM2NlxcdTIwMERcXHVEODNEXFx1REM2NnxcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSkpfCg/OlxcdUQ4M0VcXHVEREQxXFx1RDgzQ1xcdURGRkRcXHUyMDBEXFx1RDgzRVxcdUREMURcXHUyMDBEXFx1RDgzRVxcdURERDF8XFx1RDgzRFxcdURDNjlcXHVEODNDXFx1REZGRVxcdTIwMERcXHVEODNFXFx1REQxRFxcdTIwMERcXHVEODNEXFx1REM2OSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRF0pfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY5XFx1MjAwRCg/OlxcdUQ4M0RbXFx1REM2NlxcdURDNjddKXwoPzpcXHVEODNEXFx1REM0MVxcdUZFMEZcXHUyMDBEXFx1RDgzRFxcdURERTh8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDXFx1REZGRlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRVxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQ1xcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGQlxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHVEODNDXFx1REZGRFxcdTIwMERbXFx1MjY5NVxcdTI2OTZcXHUyNzA4XXxcXHUyMDBEW1xcdTI2OTVcXHUyNjk2XFx1MjcwOF0pfCg/Oig/OlxcdTI2Rjl8XFx1RDgzQ1tcXHVERkNCXFx1REZDQ118XFx1RDgzRFxcdURENzUpXFx1RkUwRnxcXHVEODNEXFx1REM2RnxcXHVEODNFW1xcdUREM0NcXHVERERFXFx1RERERl0pXFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml18KD86XFx1MjZGOXxcXHVEODNDW1xcdURGQ0JcXHVERkNDXXxcXHVEODNEXFx1REQ3NSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pXFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml18KD86XFx1RDgzQ1tcXHVERkMzXFx1REZDNFxcdURGQ0FdfFxcdUQ4M0RbXFx1REM2RVxcdURDNzFcXHVEQzczXFx1REM3N1xcdURDODFcXHVEQzgyXFx1REM4NlxcdURDODdcXHVERTQ1LVxcdURFNDdcXHVERTRCXFx1REU0RFxcdURFNEVcXHVERUEzXFx1REVCNC1cXHVERUI2XXxcXHVEODNFW1xcdUREMjZcXHVERDM3LVxcdUREMzlcXHVERDNEXFx1REQzRVxcdUREQjhcXHVEREI5XFx1RERDRC1cXHVERENGXFx1RERENi1cXHVEREREXSkoPzooPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pXFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml18XFx1MjAwRFtcXHUyNjQwXFx1MjY0Ml0pfFxcdUQ4M0NcXHVERkY0XFx1MjAwRFxcdTI2MjApXFx1RkUwRnxcXHVEODNEXFx1REM2OVxcdTIwMERcXHVEODNEXFx1REM2N1xcdTIwMEQoPzpcXHVEODNEW1xcdURDNjZcXHVEQzY3XSl8XFx1RDgzQ1xcdURGRjNcXHVGRTBGXFx1MjAwRFxcdUQ4M0NcXHVERjA4fFxcdUQ4M0RcXHVEQzE1XFx1MjAwRFxcdUQ4M0VcXHVEREJBfFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY2fFxcdUQ4M0RcXHVEQzY5XFx1MjAwRFxcdUQ4M0RcXHVEQzY3fFxcdUQ4M0NcXHVEREZEXFx1RDgzQ1xcdURERjB8XFx1RDgzQ1xcdURERjRcXHVEODNDXFx1RERGMnxcXHVEODNDXFx1RERGNlxcdUQ4M0NcXHVEREU2fFsjXFwqMC05XVxcdUZFMEZcXHUyMEUzfFxcdUQ4M0NcXHVEREU3KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFN1xcdURERTktXFx1RERFRlxcdURERjEtXFx1RERGNFxcdURERjYtXFx1RERGOVxcdURERkJcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERGOSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVEXFx1RERFRi1cXHVEREY0XFx1RERGN1xcdURERjlcXHVEREZCXFx1RERGQ1xcdURERkZdKXxcXHVEODNDXFx1RERFQSg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERURcXHVEREY3LVxcdURERkFdKXxcXHVEODNFXFx1REREMSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8XFx1RDgzQ1xcdURERjcoPzpcXHVEODNDW1xcdURERUFcXHVEREY0XFx1RERGOFxcdURERkFcXHVEREZDXSl8XFx1RDgzRFxcdURDNjkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfFxcdUQ4M0NcXHVEREYyKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOC1cXHVEREVEXFx1RERGMC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERTYoPzpcXHVEODNDW1xcdURERTgtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGMlxcdURERjRcXHVEREY2LVxcdURERkFcXHVEREZDXFx1RERGRFxcdURERkZdKXxcXHVEODNDXFx1RERGMCg/OlxcdUQ4M0NbXFx1RERFQVxcdURERUMtXFx1RERFRVxcdURERjJcXHVEREYzXFx1RERGNVxcdURERjdcXHVEREZDXFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRCg/OlxcdUQ4M0NbXFx1RERGMFxcdURERjJcXHVEREYzXFx1RERGN1xcdURERjlcXHVEREZBXSl8XFx1RDgzQ1xcdURERTkoPzpcXHVEODNDW1xcdURERUFcXHVEREVDXFx1RERFRlxcdURERjBcXHVEREYyXFx1RERGNFxcdURERkZdKXxcXHVEODNDXFx1RERGRSg/OlxcdUQ4M0NbXFx1RERFQVxcdURERjldKXxcXHVEODNDXFx1RERFQyg/OlxcdUQ4M0NbXFx1RERFNlxcdURERTdcXHVEREU5LVxcdURERUVcXHVEREYxLVxcdURERjNcXHVEREY1LVxcdURERkFcXHVEREZDXFx1RERGRV0pfFxcdUQ4M0NcXHVEREY4KD86XFx1RDgzQ1tcXHVEREU2LVxcdURERUFcXHVEREVDLVxcdURERjRcXHVEREY3LVxcdURERjlcXHVEREZCXFx1RERGRC1cXHVEREZGXSl8XFx1RDgzQ1xcdURERUIoPzpcXHVEODNDW1xcdURERUUtXFx1RERGMFxcdURERjJcXHVEREY0XFx1RERGN10pfFxcdUQ4M0NcXHVEREY1KD86XFx1RDgzQ1tcXHVEREU2XFx1RERFQS1cXHVEREVEXFx1RERGMC1cXHVEREYzXFx1RERGNy1cXHVEREY5XFx1RERGQ1xcdURERkVdKXxcXHVEODNDXFx1RERGQig/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREVBXFx1RERFQ1xcdURERUVcXHVEREYzXFx1RERGQV0pfFxcdUQ4M0NcXHVEREYzKD86XFx1RDgzQ1tcXHVEREU2XFx1RERFOFxcdURERUEtXFx1RERFQ1xcdURERUVcXHVEREYxXFx1RERGNFxcdURERjVcXHVEREY3XFx1RERGQVxcdURERkZdKXxcXHVEODNDXFx1RERFOCg/OlxcdUQ4M0NbXFx1RERFNlxcdURERThcXHVEREU5XFx1RERFQi1cXHVEREVFXFx1RERGMC1cXHVEREY1XFx1RERGN1xcdURERkEtXFx1RERGRl0pfFxcdUQ4M0NcXHVEREYxKD86XFx1RDgzQ1tcXHVEREU2LVxcdURERThcXHVEREVFXFx1RERGMFxcdURERjctXFx1RERGQlxcdURERkVdKXxcXHVEODNDXFx1RERGRig/OlxcdUQ4M0NbXFx1RERFNlxcdURERjJcXHVEREZDXSl8XFx1RDgzQ1xcdURERkMoPzpcXHVEODNDW1xcdURERUJcXHVEREY4XSl8XFx1RDgzQ1xcdURERkEoPzpcXHVEODNDW1xcdURERTZcXHVEREVDXFx1RERGMlxcdURERjNcXHVEREY4XFx1RERGRVxcdURERkZdKXxcXHVEODNDXFx1RERFRSg/OlxcdUQ4M0NbXFx1RERFOC1cXHVEREVBXFx1RERGMS1cXHVEREY0XFx1RERGNi1cXHVEREY5XSl8XFx1RDgzQ1xcdURERUYoPzpcXHVEODNDW1xcdURERUFcXHVEREYyXFx1RERGNFxcdURERjVdKXwoPzpcXHVEODNDW1xcdURGQzNcXHVERkM0XFx1REZDQV18XFx1RDgzRFtcXHVEQzZFXFx1REM3MVxcdURDNzNcXHVEQzc3XFx1REM4MVxcdURDODJcXHVEQzg2XFx1REM4N1xcdURFNDUtXFx1REU0N1xcdURFNEJcXHVERTREXFx1REU0RVxcdURFQTNcXHVERUI0LVxcdURFQjZdfFxcdUQ4M0VbXFx1REQyNlxcdUREMzctXFx1REQzOVxcdUREM0RcXHVERDNFXFx1RERCOFxcdUREQjlcXHVERENELVxcdUREQ0ZcXHVEREQ2LVxcdURERERdKSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86XFx1MjZGOXxcXHVEODNDW1xcdURGQ0JcXHVERkNDXXxcXHVEODNEXFx1REQ3NSkoPzpcXHVEODNDW1xcdURGRkItXFx1REZGRl0pfCg/OltcXHUyNjFEXFx1MjcwQS1cXHUyNzBEXXxcXHVEODNDW1xcdURGODVcXHVERkMyXFx1REZDN118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjZcXHVEQzY3XFx1REM2Qi1cXHVEQzZEXFx1REM3MFxcdURDNzJcXHVEQzc0LVxcdURDNzZcXHVEQzc4XFx1REM3Q1xcdURDODNcXHVEQzg1XFx1RENBQVxcdURENzRcXHVERDdBXFx1REQ5MFxcdUREOTVcXHVERDk2XFx1REU0Q1xcdURFNEZcXHVERUMwXFx1REVDQ118XFx1RDgzRVtcXHVERDBGXFx1REQxOC1cXHVERDFDXFx1REQxRVxcdUREMUZcXHVERDMwLVxcdUREMzZcXHVEREI1XFx1RERCNlxcdUREQkJcXHVEREQyLVxcdURERDVdKSg/OlxcdUQ4M0NbXFx1REZGQi1cXHVERkZGXSl8KD86W1xcdTIzMUFcXHUyMzFCXFx1MjNFOS1cXHUyM0VDXFx1MjNGMFxcdTIzRjNcXHUyNUZEXFx1MjVGRVxcdTI2MTRcXHUyNjE1XFx1MjY0OC1cXHUyNjUzXFx1MjY3RlxcdTI2OTNcXHUyNkExXFx1MjZBQVxcdTI2QUJcXHUyNkJEXFx1MjZCRVxcdTI2QzRcXHUyNkM1XFx1MjZDRVxcdTI2RDRcXHUyNkVBXFx1MjZGMlxcdTI2RjNcXHUyNkY1XFx1MjZGQVxcdTI2RkRcXHUyNzA1XFx1MjcwQVxcdTI3MEJcXHUyNzI4XFx1Mjc0Q1xcdTI3NEVcXHUyNzUzLVxcdTI3NTVcXHUyNzU3XFx1Mjc5NS1cXHUyNzk3XFx1MjdCMFxcdTI3QkZcXHUyQjFCXFx1MkIxQ1xcdTJCNTBcXHUyQjU1XXxcXHVEODNDW1xcdURDMDRcXHVEQ0NGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURERTYtXFx1RERGRlxcdURFMDFcXHVERTFBXFx1REUyRlxcdURFMzItXFx1REUzNlxcdURFMzgtXFx1REUzQVxcdURFNTBcXHVERTUxXFx1REYwMC1cXHVERjIwXFx1REYyRC1cXHVERjM1XFx1REYzNy1cXHVERjdDXFx1REY3RS1cXHVERjkzXFx1REZBMC1cXHVERkNBXFx1REZDRi1cXHVERkQzXFx1REZFMC1cXHVERkYwXFx1REZGNFxcdURGRjgtXFx1REZGRl18XFx1RDgzRFtcXHVEQzAwLVxcdURDM0VcXHVEQzQwXFx1REM0Mi1cXHVEQ0ZDXFx1RENGRi1cXHVERDNEXFx1REQ0Qi1cXHVERDRFXFx1REQ1MC1cXHVERDY3XFx1REQ3QVxcdUREOTVcXHVERDk2XFx1RERBNFxcdURERkItXFx1REU0RlxcdURFODAtXFx1REVDNVxcdURFQ0NcXHVERUQwLVxcdURFRDJcXHVERUQ1XFx1REVFQlxcdURFRUNcXHVERUY0LVxcdURFRkFcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRC1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDcxXFx1REQ3My1cXHVERDc2XFx1REQ3QS1cXHVEREEyXFx1RERBNS1cXHVEREFBXFx1RERBRS1cXHVERENBXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTczXFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTgyXFx1REU5MC1cXHVERTk1XSl8KD86WyNcXCowLTlcXHhBOVxceEFFXFx1MjAzQ1xcdTIwNDlcXHUyMTIyXFx1MjEzOVxcdTIxOTQtXFx1MjE5OVxcdTIxQTlcXHUyMUFBXFx1MjMxQVxcdTIzMUJcXHUyMzI4XFx1MjNDRlxcdTIzRTktXFx1MjNGM1xcdTIzRjgtXFx1MjNGQVxcdTI0QzJcXHUyNUFBXFx1MjVBQlxcdTI1QjZcXHUyNUMwXFx1MjVGQi1cXHUyNUZFXFx1MjYwMC1cXHUyNjA0XFx1MjYwRVxcdTI2MTFcXHUyNjE0XFx1MjYxNVxcdTI2MThcXHUyNjFEXFx1MjYyMFxcdTI2MjJcXHUyNjIzXFx1MjYyNlxcdTI2MkFcXHUyNjJFXFx1MjYyRlxcdTI2MzgtXFx1MjYzQVxcdTI2NDBcXHUyNjQyXFx1MjY0OC1cXHUyNjUzXFx1MjY1RlxcdTI2NjBcXHUyNjYzXFx1MjY2NVxcdTI2NjZcXHUyNjY4XFx1MjY3QlxcdTI2N0VcXHUyNjdGXFx1MjY5Mi1cXHUyNjk3XFx1MjY5OVxcdTI2OUJcXHUyNjlDXFx1MjZBMFxcdTI2QTFcXHUyNkFBXFx1MjZBQlxcdTI2QjBcXHUyNkIxXFx1MjZCRFxcdTI2QkVcXHUyNkM0XFx1MjZDNVxcdTI2QzhcXHUyNkNFXFx1MjZDRlxcdTI2RDFcXHUyNkQzXFx1MjZENFxcdTI2RTlcXHUyNkVBXFx1MjZGMC1cXHUyNkY1XFx1MjZGNy1cXHUyNkZBXFx1MjZGRFxcdTI3MDJcXHUyNzA1XFx1MjcwOC1cXHUyNzBEXFx1MjcwRlxcdTI3MTJcXHUyNzE0XFx1MjcxNlxcdTI3MURcXHUyNzIxXFx1MjcyOFxcdTI3MzNcXHUyNzM0XFx1Mjc0NFxcdTI3NDdcXHUyNzRDXFx1Mjc0RVxcdTI3NTMtXFx1Mjc1NVxcdTI3NTdcXHUyNzYzXFx1Mjc2NFxcdTI3OTUtXFx1Mjc5N1xcdTI3QTFcXHUyN0IwXFx1MjdCRlxcdTI5MzRcXHUyOTM1XFx1MkIwNS1cXHUyQjA3XFx1MkIxQlxcdTJCMUNcXHUyQjUwXFx1MkI1NVxcdTMwMzBcXHUzMDNEXFx1MzI5N1xcdTMyOTldfFxcdUQ4M0NbXFx1REMwNFxcdURDQ0ZcXHVERDcwXFx1REQ3MVxcdUREN0VcXHVERDdGXFx1REQ4RVxcdUREOTEtXFx1REQ5QVxcdURERTYtXFx1RERGRlxcdURFMDFcXHVERTAyXFx1REUxQVxcdURFMkZcXHVERTMyLVxcdURFM0FcXHVERTUwXFx1REU1MVxcdURGMDAtXFx1REYyMVxcdURGMjQtXFx1REY5M1xcdURGOTZcXHVERjk3XFx1REY5OS1cXHVERjlCXFx1REY5RS1cXHVERkYwXFx1REZGMy1cXHVERkY1XFx1REZGNy1cXHVERkZGXXxcXHVEODNEW1xcdURDMDAtXFx1RENGRFxcdURDRkYtXFx1REQzRFxcdURENDktXFx1REQ0RVxcdURENTAtXFx1REQ2N1xcdURENkZcXHVERDcwXFx1REQ3My1cXHVERDdBXFx1REQ4N1xcdUREOEEtXFx1REQ4RFxcdUREOTBcXHVERDk1XFx1REQ5NlxcdUREQTRcXHVEREE1XFx1RERBOFxcdUREQjFcXHVEREIyXFx1RERCQ1xcdUREQzItXFx1RERDNFxcdURERDEtXFx1REREM1xcdUREREMtXFx1RERERVxcdURERTFcXHVEREUzXFx1RERFOFxcdURERUZcXHVEREYzXFx1RERGQS1cXHVERTRGXFx1REU4MC1cXHVERUM1XFx1REVDQi1cXHVERUQyXFx1REVENVxcdURFRTAtXFx1REVFNVxcdURFRTlcXHVERUVCXFx1REVFQ1xcdURFRjBcXHVERUYzLVxcdURFRkFcXHVERkUwLVxcdURGRUJdfFxcdUQ4M0VbXFx1REQwRC1cXHVERDNBXFx1REQzQy1cXHVERDQ1XFx1REQ0Ny1cXHVERDcxXFx1REQ3My1cXHVERDc2XFx1REQ3QS1cXHVEREEyXFx1RERBNS1cXHVEREFBXFx1RERBRS1cXHVERENBXFx1RERDRC1cXHVEREZGXFx1REU3MC1cXHVERTczXFx1REU3OC1cXHVERTdBXFx1REU4MC1cXHVERTgyXFx1REU5MC1cXHVERTk1XSlcXHVGRTBGfCg/OltcXHUyNjFEXFx1MjZGOVxcdTI3MEEtXFx1MjcwRF18XFx1RDgzQ1tcXHVERjg1XFx1REZDMi1cXHVERkM0XFx1REZDN1xcdURGQ0EtXFx1REZDQ118XFx1RDgzRFtcXHVEQzQyXFx1REM0M1xcdURDNDYtXFx1REM1MFxcdURDNjYtXFx1REM3OFxcdURDN0NcXHVEQzgxLVxcdURDODNcXHVEQzg1LVxcdURDODdcXHVEQzhGXFx1REM5MVxcdURDQUFcXHVERDc0XFx1REQ3NVxcdUREN0FcXHVERDkwXFx1REQ5NVxcdUREOTZcXHVERTQ1LVxcdURFNDdcXHVERTRCLVxcdURFNEZcXHVERUEzXFx1REVCNC1cXHVERUI2XFx1REVDMFxcdURFQ0NdfFxcdUQ4M0VbXFx1REQwRlxcdUREMTgtXFx1REQxRlxcdUREMjZcXHVERDMwLVxcdUREMzlcXHVERDNDLVxcdUREM0VcXHVEREI1XFx1RERCNlxcdUREQjhcXHVEREI5XFx1RERCQlxcdUREQ0QtXFx1RERDRlxcdURERDEtXFx1RERERF0pL2c7XG59O1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydCBkZWZhdWx0IChwYXBlclBpeGVsUmF0aW8sIHNlbGVjdG9yLCBjb25maWcpID0+IHtcbiAgY29uc3QgJHRoaXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKVxuXG4gIGlmICghJHRoaXMpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIHNocmluayB0ZXh0IGVsZW1lbnQgdG8gc3BlY2lmaWVkIHdpZHRoXG4gIGlmICghIWNvbmZpZ1sndGV4dExlbmd0aCddKSB7XG4gICAgLy8gZm9yIGZpcmVmb3hcbiAgICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2phL2RvY3MvV2ViL0FQSS9FbGVtZW50L2NsaWVudFdpZHRoXG4gICAgJHRoaXMuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcblxuICAgIGlmICgkdGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAqIHBhcGVyUGl4ZWxSYXRpbyA+IGNvbmZpZy50ZXh0TGVuZ3RoKSB7XG4gICAgICAkdGhpcy5xdWVyeVNlbGVjdG9yKCd0c3BhbicpLnNldEF0dHJpYnV0ZSgndGV4dExlbmd0aCcsIGNvbmZpZy50ZXh0TGVuZ3RoKVxuICAgICAgJHRoaXMucXVlcnlTZWxlY3RvcigndHNwYW4nKS5zZXRBdHRyaWJ1dGUoJ2xlbmd0aEFkanVzdCcsICdzcGFjaW5nQW5kR2x5cGhzJylcblxuICAgICAgLy8gZm9yIGZpcmVmb3hcbiAgICAgIC8vIEBzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkwNjkyXG4gICAgICAkdGhpcy5zZXRBdHRyaWJ1dGUoJ3RleHRMZW5ndGgnLCBjb25maWcudGV4dExlbmd0aClcbiAgICAgICR0aGlzLnNldEF0dHJpYnV0ZSgnbGVuZ3RoQWRqdXN0JywgJ3NwYWNpbmdBbmRHbHlwaHMnKVxuICAgIH1cbiAgfVxuXG4gIC8vIGFsaWdubWVudFxuICBpZiAoISFjb25maWdbJ3RleHQtYW5jaG9yJ10gJiYgY29uZmlnWyd0ZXh0LWFuY2hvciddICE9PSAnc3RhcnQnKSB7XG4gICAgY29uc3QgdyA9IHBhcnNlRmxvYXQoY29uZmlnWyd0ZXh0TGVuZ3RoJ10pXG4gICAgbGV0IHggPSAwXG4gICAgbGV0IHkgPSAwXG4gICAgaWYgKCR0aGlzLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykpIHtcbiAgICAgIHggPSBwYXJzZUZsb2F0KCR0aGlzLmdldEF0dHJpYnV0ZSgndHJhbnNmb3JtJykubWF0Y2goL3RyYW5zbGF0ZVxcKChcXFMrKSAuK1xcKS8pWzFdKVxuICAgICAgeSA9IHBhcnNlRmxvYXQoJHRoaXMuZ2V0QXR0cmlidXRlKCd0cmFuc2Zvcm0nKS5tYXRjaCgvdHJhbnNsYXRlXFwoXFxTKyAoLispXFwpLylbMV0pXG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZ1sndGV4dC1hbmNob3InXSA9PT0gJ21pZGRsZScpIHtcbiAgICAgICR0aGlzLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke3ggKyAodyAvIDIpfSAke3l9KWApXG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZ1sndGV4dC1hbmNob3InXSA9PT0gJ2VuZCcpIHtcbiAgICAgICR0aGlzLnNldEF0dHJpYnV0ZSgndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke3ggKyB3fSAke3l9KWApXG4gICAgfVxuXG4gICAgJHRoaXMuc2V0QXR0cmlidXRlKCd0ZXh0LWFuY2hvcicsIGNvbmZpZ1sndGV4dC1hbmNob3InXSlcbiAgfVxufVxuIiwiaW1wb3J0IHN0cmluZ1dpZHRoIGZyb20gJ3N0cmluZy13aWR0aCdcblxuZXhwb3J0IGRlZmF1bHQgKHN0cmluZywgc3RhcnQsIHdpZHRoKSA9PiB7XG4gIGxldCBjdXJyZW50V2lkdGggPSAwXG4gIGxldCBzdWJTdHJpbmcgPSAnJ1xuXG4gIGZvciAobGV0IGkgPSBzdGFydDsgOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gc3RyaW5nLnN1YnN0cihpLCAxKVxuICAgIGN1cnJlbnRXaWR0aCArPSBzdHJpbmdXaWR0aChjaGFyKVxuICAgIGlmIChjdXJyZW50V2lkdGggPD0gd2lkdGggJiYgaSA8PSBzdHJpbmcubGVuZ3RoKSB7XG4gICAgICBzdWJTdHJpbmcgKz0gY2hhclxuICAgIH1cbiAgICBpZiAoY3VycmVudFdpZHRoID49IHdpZHRoIHx8IGkgPj0gc3RyaW5nLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHN1YlN0cmluZ1xuICAgIH1cbiAgfVxufVxuIiwiaW1wb3J0IHN1YlN0cmluZ0J5V2lkdGggZnJvbSAnLi9zdWItc3RyaW5nLWJ5LXdpZHRoJ1xuXG5leHBvcnQgZGVmYXVsdCAoc3RyaW5nLCB3aWR0aCkgPT4ge1xuICBsZXQgc3BsaXRzID0gW11cblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGxldCBzcGxpdCA9IHN1YlN0cmluZ0J5V2lkdGgoc3RyaW5nLCAwLCB3aWR0aClcbiAgICBzcGxpdHMucHVzaChzcGxpdClcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZShzcGxpdCwgJycpXG4gICAgaWYgKCFzdHJpbmcpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHNwbGl0c1xufVxuIiwiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBzcGxpdFN0cmluZ0J5V2lkdGggZnJvbSAnLi91dGlsaXR5L3NwbGl0LXN0cmluZy1ieS13aWR0aCdcbmltcG9ydCBmaXhUZXh0VHJhbnNmb3JtIGZyb20gJy4vdXRpbGl0eS9maXgtdGV4dC10cmFuc2Zvcm0nXG5cbmV4cG9ydCBkZWZhdWx0ICh0ZXh0U3ZnLCB0ZXh0Q29udGVudCwgd2lkdGgsIGhlaWdodCwgbGluZUhlaWdodCA9IDEuMiwgcGFkZGluZ1ggPSAwLjUsIHBhZGRpbmdZID0gMC41LCBub3dyYXAgPSBmYWxzZSkgPT4ge1xuICBpZiAoIXRleHRTdmcubWF0Y2gobmV3IFJlZ0V4cCgnPHRleHQgW14+XSpmb250LXNpemU9XCJcXFxcZCtcIltePl0qPjx0c3BhbiggW14+XSo+fD4pW148Pl0qPC90c3Bhbj48L3RleHQ+JykpKSB7XG4gICAgY29uc29sZS5lcnJvcignSW52YWxpZCBzdmcgc3RyaW5nIG9mIHRleHQgZWxlbWVudCcsIHRleHRTdmcpXG4gICAgcmV0dXJuIHRleHRTdmdcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsRm9udFNpemUgPSBwYXJzZUludCh0ZXh0U3ZnLm1hdGNoKC8uK2ZvbnQtc2l6ZT1cIihcXGQrKVwiLisvKVsxXSlcbiAgbGV0IGZvbnRTaXplID0gb3JpZ2luYWxGb250U2l6ZVxuXG4gIC8vIGZpbmQgdGhlIHJpZ2h0LXNpemUgZm9udC1zaXplXG4gIGNvbnN0IHBoeXNpY2FsTGluZXMgPSB0ZXh0Q29udGVudC5zcGxpdChcIlxcblwiKVxuICBsZXQgbG9naWNhbExpbmVzID0gW11cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBsZXQgbWF4Um93cyA9IE1hdGguZmxvb3IoKGhlaWdodCAtICgyICogZm9udFNpemUgKiBwYWRkaW5nWSkpIC8gKGZvbnRTaXplICogbGluZUhlaWdodCkpXG4gICAgbGV0IG1heENvbHVtbnMgPSBNYXRoLmZsb29yKCh3aWR0aCAtICgyICogZm9udFNpemUgKiBwYWRkaW5nWCkpIC8gZm9udFNpemUpIC8vIGRvZXNuJ3QgY2FyZSBhYm91dCBwcm9wb3J0aW9uYWwgZm9udFxuXG4gICAgaWYgKG5vd3JhcCkge1xuICAgICAgbG9naWNhbExpbmVzID0gcGh5c2ljYWxMaW5lc1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dpY2FsTGluZXMgPSBbXVxuICAgICAgcGh5c2ljYWxMaW5lcy5mb3JFYWNoKGxpbmUgPT4ge1xuICAgICAgICBsb2dpY2FsTGluZXMgPSBsb2dpY2FsTGluZXMuY29uY2F0KHNwbGl0U3RyaW5nQnlXaWR0aChsaW5lLCBtYXhDb2x1bW5zICogMikpIC8vIDIgc2luZ2xlLWJ5dGUgY2hhcmFjdGVycyBjYW4gYmUgcGxhY2VkIGluIDEgY29sdW1uXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChsb2dpY2FsTGluZXMubGVuZ3RoID4gbWF4Um93cykge1xuICAgICAgZm9udFNpemUgKj0gMC45NVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8vIHJhaXNlIHktY29vcmRpbmF0ZSB1cCBiZWNhdXNlIHktY29vcmRpbmF0ZSBvZiA8dGV4dCB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoeCB5KVwiPiBvciA8dHNwYW4geT1cIlwiPiBpcyBvbiBsb3dlciBiYXNlIG9mIHRleHQgb2JqZWN0XG4gIGNvbnN0IGFkanVzdFkgPSBmb250U2l6ZSAtIG9yaWdpbmFsRm9udFNpemVcblxuICBsZXQgYWRqdXN0ZWRUZXh0U3ZnID0gZml4VGV4dFRyYW5zZm9ybSh0ZXh0U3ZnKVxuICBhZGp1c3RlZFRleHRTdmcgPSBhZGp1c3RlZFRleHRTdmcucmVwbGFjZShuZXcgUmVnRXhwKCc8dHNwYW4oLnxcXFxccykrPC90ZXh0PicpLCAnJylcbiAgYWRqdXN0ZWRUZXh0U3ZnID0gYWRqdXN0ZWRUZXh0U3ZnLnJlcGxhY2UobmV3IFJlZ0V4cCgnZm9udC1zaXplPVwiXFxcXGQrXCInKSwgYGZvbnQtc2l6ZT1cIiR7Zm9udFNpemV9XCJgKVxuICBhZGp1c3RlZFRleHRTdmcgKz0gJ3t0c3Bhbn08L3RleHQ+J1xuXG4gIGxldCB0c3BhbiA9ICcnXG4gIGNvbnN0IHggPSBmb250U2l6ZSAqIHBhZGRpbmdYXG4gIGxvZ2ljYWxMaW5lcy5mb3JFYWNoKChsaW5lLCBpKSA9PiB7XG4gICAgY29uc3QgeSA9IGFkanVzdFkgKyBmb250U2l6ZSAqIChwYWRkaW5nWSArIChpICogbGluZUhlaWdodCkpXG4gICAgdHNwYW4gKz0gYDx0c3BhbiB4PVwiJHt4fVwiIHk9XCIke3l9XCI+JHtsaW5lfTwvdHNwYW4+YFxuICB9KVxuXG4gIGFkanVzdGVkVGV4dFN2ZyA9IGFkanVzdGVkVGV4dFN2Zy5yZXBsYWNlKCd7dHNwYW59JywgdHNwYW4pXG5cbiAgcmV0dXJuIGFkanVzdGVkVGV4dFN2Z1xufVxuIiwiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBhZGp1c3RUZXh0IGZyb20gJy4vYWRqdXN0LXRleHQnXG5pbXBvcnQgYWRqdXN0VGV4dGFyZWEgZnJvbSAnLi9hZGp1c3QtdGV4dGFyZWEnXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN2Z1BhcGVyIHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IgPSAnLnBhcGVyIHN2ZycpIHtcbiAgICBpZiAoIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2VsZWN0b3InKVxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvclxuICAgIHRoaXMuc3ZnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcikub3V0ZXJIVE1MLnJlcGxhY2UoL1tcXHJ8XFxuXSsvZywgXCJcXG5cIilcbiAgICB0aGlzLmFkanVzdFRleHRRdWVyaWVzID0gW11cbiAgfVxuXG4gIHJlcGxhY2Uoc2VhcmNoLCByZXBsYWNlbWVudCkge1xuICAgIGlmIChzZWFyY2ggaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgIHNlYXJjaCA9IG5ldyBSZWdFeHAoc2VhcmNoLnNvdXJjZSwgc2VhcmNoLmZsYWdzLnJlcGxhY2UoL2cvZywgJycpICsgJ2cnKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZWFyY2ggPSBzZWFyY2gucmVwbGFjZSgvW1xccnxcXG5dKy9nLCBcIlxcblwiKVxuXG4gICAgICAvLyBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2phL2RvY3MvV2ViL0phdmFTY3JpcHQvR3VpZGUvUmVndWxhcl9FeHByZXNzaW9ucyNlc2NhcGluZ1xuICAgICAgc2VhcmNoID0gc2VhcmNoLnJlcGxhY2UoL1suKis/Xj0hOiR7fSgpfFtcXF1cXC9cXFxcXS9nLCAnXFxcXCQmJylcbiAgICAgIHNlYXJjaCA9IG5ldyBSZWdFeHAoc2VhcmNoLCAnZycpXG4gICAgfVxuXG4gICAgLy8gY2FzdCB0byBzdHJpbmdcbiAgICByZXBsYWNlbWVudCA9IHJlcGxhY2VtZW50ICE9PSB1bmRlZmluZWQgJiYgcmVwbGFjZW1lbnQgIT09IG51bGwgPyByZXBsYWNlbWVudCArICcnIDogJydcblxuICAgIHJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQucmVwbGFjZSgvW1xccnxcXG5dKy9nLCBcIlxcblwiKVxuXG4gICAgdGhpcy5zdmcgPSB0aGlzLnN2Zy5yZXBsYWNlKHNlYXJjaCwgcmVwbGFjZW1lbnQpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgYWRqdXN0VGV4dChzZWxlY3RvciwgdGV4dExlbmd0aCA9IG51bGwsIHRleHRBbmNob3IgPSAnc3RhcnQnKSB7XG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcy5wdXNoKHtzZWxlY3RvciwgdGV4dExlbmd0aCwgdGV4dEFuY2hvcn0pXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgYWRqdXN0VGV4dGFyZWEoc2VsZWN0b3IsIHdpZHRoLCBoZWlnaHQsIGxpbmVIZWlnaHQgPSAxLjIsIHBhZGRpbmdYID0gMC41LCBwYWRkaW5nWSA9IDAuNSwgbm93cmFwID0gZmFsc2UpIHtcbiAgICBjb25zdCBkb2MgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHRoaXMuc3ZnLCAndGV4dC9odG1sJylcbiAgICBjb25zdCB0ZXh0RWxlbWVudCA9IGRvYy5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKVxuICAgIGlmICghdGV4dEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG4gICAgY29uc3QgdGV4dFN2ZyA9IHRleHRFbGVtZW50Lm91dGVySFRNTFxuICAgIC8vIFNWR0VsZW1lbnQgZG9lc24ndCBoYXZlIGlubmVyVGV4dFxuICAgIC8vIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1NWR0VsZW1lbnRcbiAgICBjb25zdCB0ZXh0Q29udGVudCA9IHRleHRFbGVtZW50LmlubmVySFRNTC5yZXBsYWNlKG5ldyBSZWdFeHAoJ148dHNwYW5bXj5dKj4oW1xcXFxTfFxcXFxzXSopPC90c3Bhbj4kJyksICckMScpXG5cbiAgICBjb25zdCBhZGp1c3RlZFRleHRTdmcgPSBhZGp1c3RUZXh0YXJlYSh0ZXh0U3ZnLCB0ZXh0Q29udGVudCwgd2lkdGgsIGhlaWdodCwgbGluZUhlaWdodCwgcGFkZGluZ1gsIHBhZGRpbmdZLCBub3dyYXApXG5cbiAgICB0aGlzLnJlcGxhY2UodGV4dFN2ZywgYWRqdXN0ZWRUZXh0U3ZnKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFwcGx5KCkge1xuICAgIGlmICh0aGlzLnN2ZyAhPT0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLnNlbGVjdG9yKS5vdXRlckhUTUwpIHtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MID0gdGhpcy5zdmdcbiAgICB9XG5cbiAgICB0aGlzLmFkanVzdFRleHRRdWVyaWVzLmZvckVhY2gocXVlcnkgPT4ge1xuICAgICAgLy8gaWYgdmlld0JveCBpcyBzcGVjaWZpZWQsIEVsZW1lbnQuY2xpZW50V2lkdGggYW5kIEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgcmV0dXJuIGRpZmZlcmVudCB2YWx1ZXNcbiAgICAgIC8vICAgY2xpZW50V2lkdGg6ID8/P1xuICAgICAgLy8gICBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTogcHVyZSBwaXhlbCB2YWx1ZVxuICAgICAgLy8gc28gdGhpcyBsaWJyYXJ5IHVzZXMgZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgYW5kIHByZS1jYWxjdWxhdGVkIHJhdGlvIHRvIHNwZWNpZnkgdGhlIHdpZHRoIG9mIHNvbWUgZWxlbWVudHNcbiAgICAgIGNvbnN0ICRzdmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2VsZWN0b3IpXG4gICAgICBjb25zdCB2aWV3Qm94V2lkdGggPSAkc3ZnLmdldEF0dHJpYnV0ZSgndmlld0JveCcpPy5zcGxpdCgvICsvKVsyXSA/PyBudWxsXG4gICAgICBjb25zdCBwYXBlclBpeGVsUmF0aW8gPSB2aWV3Qm94V2lkdGggPyBwYXJzZUZsb2F0KHZpZXdCb3hXaWR0aCkgLyAkc3ZnLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIDogMVxuXG4gICAgICBhZGp1c3RUZXh0KHBhcGVyUGl4ZWxSYXRpbywgcXVlcnkuc2VsZWN0b3IsIHtcbiAgICAgICAgdGV4dExlbmd0aDogcXVlcnkudGV4dExlbmd0aCxcbiAgICAgICAgJ3RleHQtYW5jaG9yJzogcXVlcnkudGV4dEFuY2hvcixcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIC8vIGluaXRpYWxpemVcbiAgICB0aGlzLnN2ZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5zZWxlY3Rvcikub3V0ZXJIVE1MXG4gICAgdGhpcy5hZGp1c3RUZXh0UXVlcmllcyA9IFtdXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/js/src/adjust-text.js b/js/src/adjust-text.js index 0bbdd3e..c98cfc6 100644 --- a/js/src/adjust-text.js +++ b/js/src/adjust-text.js @@ -1,6 +1,6 @@ 'use strict' -export default (selector, config) => { +export default (selector, config, paperPixelRatio = 1) => { const $this = document.querySelector(selector) if (!$this) { @@ -13,7 +13,7 @@ export default (selector, config) => { // @see https://developer.mozilla.org/ja/docs/Web/API/Element/clientWidth $this.style.display = 'block' - if ($this.clientWidth > config.textLength) { + if ($this.getBoundingClientRect().width * paperPixelRatio > config.textLength) { $this.querySelector('tspan').setAttribute('textLength', config.textLength) $this.querySelector('tspan').setAttribute('lengthAdjust', 'spacingAndGlyphs') diff --git a/js/src/svg-paper.js b/js/src/svg-paper.js index d50ddf5..7812ff6 100644 --- a/js/src/svg-paper.js +++ b/js/src/svg-paper.js @@ -66,10 +66,19 @@ export default class SvgPaper { } this.adjustTextQueries.forEach(query => { + // if viewBox is specified, Element.clientWidth and Element.getBoundingClientRect() return different values + // clientWidth: ??? + // getBoundingClientRect(): pure pixel value + // so this library uses getBoundingClientRect() and pre-calculated ratio to specify the width of some elements + // @see https://stackoverflow.com/questions/15335926/how-to-use-the-svg-viewbox-attribute + const $svg = document.querySelector(this.selector) + const viewBoxWidth = $svg.getAttribute('viewBox')?.split(/ +/)[2] ?? null + const paperPixelRatio = viewBoxWidth ? parseFloat(viewBoxWidth) / $svg.getBoundingClientRect().width : 1 + adjustText(query.selector, { textLength: query.textLength, 'text-anchor': query.textAnchor, - }) + }, paperPixelRatio) }) // initialize diff --git a/js/tests/adjust-text.test.js b/js/tests/adjust-text.test.js index ef9b624..2459c7d 100644 --- a/js/tests/adjust-text.test.js +++ b/js/tests/adjust-text.test.js @@ -5,7 +5,7 @@ import adjustText from '../src/adjust-text' test('only textLength will be set', () => { document.body.innerHTML = 'test' - jest.spyOn(document.querySelector('text'), 'clientWidth', 'get').mockImplementation(() => 10) + jest.spyOn(document.querySelector('text'), 'getBoundingClientRect').mockImplementation(() => ({width: 10})) adjustText('text', {textLength: 9}) expect(document.body.innerHTML).toEqual('test') @@ -15,7 +15,7 @@ test('only text-anchor will be set', () => { // transform exists document.body.innerHTML = 'test' - jest.spyOn(document.querySelector('text'), 'clientWidth', 'get').mockImplementation(() => 10) + jest.spyOn(document.querySelector('text'), 'getBoundingClientRect').mockImplementation(() => ({width: 10})) adjustText('text', {textLength: 10, 'text-anchor': 'middle'}) expect(document.body.innerHTML).toEqual('test') @@ -23,7 +23,7 @@ test('only text-anchor will be set', () => { // transform doesn't exist document.body.innerHTML = 'test' - jest.spyOn(document.querySelector('text'), 'clientWidth', 'get').mockImplementation(() => 10) + jest.spyOn(document.querySelector('text'), 'getBoundingClientRect').mockImplementation(() => ({width: 10})) adjustText('text', {textLength: 10, 'text-anchor': 'middle'}) expect(document.body.innerHTML).toEqual('test') @@ -32,7 +32,7 @@ test('only text-anchor will be set', () => { test('both textLength and text-anchor will be set', () => { document.body.innerHTML = 'test' - jest.spyOn(document.querySelector('text'), 'clientWidth', 'get').mockImplementation(() => 10) + jest.spyOn(document.querySelector('text'), 'getBoundingClientRect').mockImplementation(() => ({width: 10})) adjustText('text', {textLength: 9, 'text-anchor': 'middle'}) expect(document.body.innerHTML).toEqual('test') diff --git a/js/tests/real-world.test.js b/js/tests/real-world.test.js index 3b37726..c87b5c1 100644 --- a/js/tests/real-world.test.js +++ b/js/tests/real-world.test.js @@ -84,7 +84,7 @@ function doTest(pathToOriginalSvg, pathToOutputSvg, pathToOutputHtml, pathToExpe // actually, Element.clientWidth returns always 0 in test. // so mock Element.clientWidth only for vendorName elements, which have overflowing contents, and re-apply adjustText() to document for (const i of [...Array(26)].keys()) { - jest.spyOn(document.querySelector(`#_vendorName_${i}_`), 'clientWidth', 'get').mockImplementation(() => 424) + jest.spyOn(document.querySelector(`#_vendorName_${i}_`), 'getBoundingClientRect').mockImplementation(() => ({width: 424})) paper.adjustText(`#_vendorName_${i}_`, 200) } paper.apply()