Rapport-Laravel/public/assets/js/pages/chartist.init.js

32 lines
81 KiB
JavaScript
Executable File

/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./resources/js/pages/chartist.init.js":
/*!*********************************************!*\
!*** ./resources/js/pages/chartist.init.js ***!
\*********************************************/
/***/ (() => {
eval("/*\nTemplate Name: Ubold - Responsive Bootstrap 4 Admin Dashboard\nAuthor: CoderThemes\nWebsite: https://coderthemes.com/\nContact: support@coderthemes.com\nFile: Chartist charts\n*/\n//smil-animations Chart\nvar chart = new Chartist.Line('#smil-animations', {\n labels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n series: [[12, 9, 7, 8, 5, 4, 6, 2, 3, 3, 4, 6], [4, 5, 3, 7, 3, 5, 5, 3, 4, 4, 5, 5], [5, 3, 4, 5, 6, 3, 3, 4, 5, 6, 3, 4], [3, 4, 5, 6, 7, 6, 4, 5, 6, 7, 6, 3]]\n}, {\n low: 0,\n plugins: [Chartist.plugins.tooltip()]\n}); // Let's put a sequence number aside so we can use it in the event callbacks\n\nvar seq = 0,\n delays = 80,\n durations = 500; // Once the chart is fully created we reset the sequence\n\nchart.on('created', function () {\n seq = 0;\n}); // On each drawn element by Chartist we use the Chartist.Svg API to trigger SMIL animations\n\nchart.on('draw', function (data) {\n seq++;\n\n if (data.type === 'line') {\n // If the drawn element is a line we do a simple opacity fade in. This could also be achieved using CSS3 animations.\n data.element.animate({\n opacity: {\n // The delay when we like to start the animation\n begin: seq * delays + 1000,\n // Duration of the animation\n dur: durations,\n // The value where the animation should start\n from: 0,\n // The value where it should end\n to: 1\n }\n });\n } else if (data.type === 'label' && data.axis === 'x') {\n data.element.animate({\n y: {\n begin: seq * delays,\n dur: durations,\n from: data.y + 100,\n to: data.y,\n // We can specify an easing function from Chartist.Svg.Easing\n easing: 'easeOutQuart'\n }\n });\n } else if (data.type === 'label' && data.axis === 'y') {\n data.element.animate({\n x: {\n begin: seq * delays,\n dur: durations,\n from: data.x - 100,\n to: data.x,\n easing: 'easeOutQuart'\n }\n });\n } else if (data.type === 'point') {\n data.element.animate({\n x1: {\n begin: seq * delays,\n dur: durations,\n from: data.x - 10,\n to: data.x,\n easing: 'easeOutQuart'\n },\n x2: {\n begin: seq * delays,\n dur: durations,\n from: data.x - 10,\n to: data.x,\n easing: 'easeOutQuart'\n },\n opacity: {\n begin: seq * delays,\n dur: durations,\n from: 0,\n to: 1,\n easing: 'easeOutQuart'\n }\n });\n } else if (data.type === 'grid') {\n // Using data.axis we get x or y which we can use to construct our animation definition objects\n var pos1Animation = {\n begin: seq * delays,\n dur: durations,\n from: data[data.axis.units.pos + '1'] - 30,\n to: data[data.axis.units.pos + '1'],\n easing: 'easeOutQuart'\n };\n var pos2Animation = {\n begin: seq * delays,\n dur: durations,\n from: data[data.axis.units.pos + '2'] - 100,\n to: data[data.axis.units.pos + '2'],\n easing: 'easeOutQuart'\n };\n var animations = {};\n animations[data.axis.units.pos + '1'] = pos1Animation;\n animations[data.axis.units.pos + '2'] = pos2Animation;\n animations['opacity'] = {\n begin: seq * delays,\n dur: durations,\n from: 0,\n to: 1,\n easing: 'easeOutQuart'\n };\n data.element.animate(animations);\n }\n}); // For the sake of the example we update the chart every time it's created with a delay of 10 seconds\n\nchart.on('created', function () {\n if (window.__exampleAnimateTimeout) {\n clearTimeout(window.__exampleAnimateTimeout);\n window.__exampleAnimateTimeout = null;\n }\n\n window.__exampleAnimateTimeout = setTimeout(chart.update.bind(chart), 12000);\n}); //Simple line chart\n\nnew Chartist.Line('#simple-line-chart', {\n labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],\n series: [[12, 9, 7, 8, 5], [2, 1, 3.5, 7, 3], [1, 3, 4, 5, 6]]\n}, {\n fullWidth: true,\n chartPadding: {\n right: 40\n },\n plugins: [Chartist.plugins.tooltip()]\n}); //Line Scatter Diagram\n\nvar times = function times(n) {\n return Array.apply(null, new Array(n));\n};\n\nvar data = times(52).map(Math.random).reduce(function (data, rnd, index) {\n data.labels.push(index + 1);\n data.series.forEach(function (series) {\n series.push(Math.random() * 100);\n });\n return data;\n}, {\n labels: [],\n series: times(4).map(function () {\n return new Array();\n })\n});\nvar options = {\n showLine: false,\n axisX: {\n labelInterpolationFnc: function labelInterpolationFnc(value, index) {\n return index % 13 === 0 ? 'W' + value : null;\n }\n }\n};\nvar responsiveOptions = [['screen and (min-width: 640px)', {\n axisX: {\n labelInterpolationFnc: function labelInterpolationFnc(value, index) {\n return index % 4 === 0 ? 'W' + value : null;\n }\n }\n}]];\nnew Chartist.Line('#scatter-diagram', data, options, responsiveOptions); //Line chart with tooltips\n//Line chart with tooltips\n\nnew Chartist.Line('#line-chart-tooltips', {\n labels: ['1', '2', '3', '4', '5', '6'],\n series: [{\n name: 'Fibonacci sequence',\n data: [1, 2, 3, 5, 8, 13]\n }, {\n name: 'Golden section',\n data: [1, 1.618, 2.618, 4.236, 6.854, 11.09]\n }]\n}, {\n plugins: [Chartist.plugins.tooltip()]\n});\nvar $chart = $('#line-chart-tooltips');\nvar $toolTip = $chart.append('<div class=\"tooltip\"></div>').find('.tooltip').hide();\n$chart.on('mouseenter', '.ct-point', function () {\n var $point = $(this),\n value = $point.attr('ct:value'),\n seriesName = $point.parent().attr('ct:series-name');\n $toolTip.html(seriesName + '<br>' + value).show();\n});\n$chart.on('mouseleave', '.ct-point', function () {\n $toolTip.hide();\n});\n$chart.on('mousemove', function (event) {\n $toolTip.css({\n left: (event.offsetX || event.originalEvent.layerX) - $toolTip.width() / 2 - 10,\n top: (event.offsetY || event.originalEvent.layerY) - $toolTip.height() - 40\n });\n}); //Line chart with area\n\nnew Chartist.Line('#chart-with-area', {\n labels: [1, 2, 3, 4, 5, 6, 7, 8],\n series: [[5, 9, 7, 8, 5, 3, 5, 4]]\n}, {\n low: 0,\n showArea: true,\n plugins: [Chartist.plugins.tooltip()]\n}); //Bi-polar Line chart with area only\n\nnew Chartist.Line('#bi-polar-line', {\n labels: [1, 2, 3, 4, 5, 6, 7, 8],\n series: [[1, 2, 3, 1, -2, 0, 1, 0], [-2, -1, -2, -1, -2.5, -1, -2, -1], [0, 0, 0, 1, 2, 2.5, 2, 1], [2.5, 2, 1, 0.5, 1, 0.5, -1, -2.5]]\n}, {\n high: 3,\n low: -3,\n showArea: true,\n showLine: false,\n showPoint: false,\n fullWidth: true,\n axisX: {\n showLabel: false,\n showGrid: false\n },\n plugins: [Chartist.plugins.tooltip()]\n}); //SVG Path animation\n\nvar chart = new Chartist.Line('#svg-animation', {\n labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n series: [[1, 5, 2, 5, 4, 3], [2, 3, 4, 8, 1, 2], [5, 4, 3, 2, 1, 0.5]]\n}, {\n low: 0,\n showArea: true,\n showPoint: false,\n fullWidth: true\n});\nchart.on('draw', function (data) {\n if (data.type === 'line' || data.type === 'area') {\n data.element.animate({\n d: {\n begin: 2000 * data.index,\n dur: 2000,\n from: data.path.clone().scale(1, 0).translate(0, data.chartRect.height()).stringify(),\n to: data.path.clone().stringify(),\n easing: Chartist.Svg.Easing.easeOutQuint\n }\n });\n }\n}); //Line Interpolation / Smoothing\n\nvar chart = new Chartist.Line('#line-smoothing', {\n labels: [1, 2, 3, 4, 5],\n series: [[1, 5, 10, 0, 1], [10, 15, 0, 1, 2]]\n}, {\n // Remove this configuration to see that chart rendered with cardinal spline interpolation\n // Sometimes, on large jumps in data values, it's better to use simple smoothing.\n lineSmooth: Chartist.Interpolation.simple({\n divisor: 2\n }),\n fullWidth: true,\n chartPadding: {\n right: 20\n },\n low: 0,\n plugins: [Chartist.plugins.tooltip()]\n}); //Bi-polar bar chart\n\nvar data = {\n labels: ['W1', 'W2', 'W3', 'W4', 'W5', 'W6', 'W7', 'W8', 'W9', 'W10'],\n series: [[1, 2, 4, 8, 6, -2, -1, -4, -6, -2]]\n};\nvar options = {\n high: 10,\n low: -10,\n axisX: {\n labelInterpolationFnc: function labelInterpolationFnc(value, index) {\n return index % 2 === 0 ? value : null;\n }\n },\n plugins: [Chartist.plugins.tooltip()]\n};\nnew Chartist.Bar('#bi-polar-bar', data, options); //Overlapping bars on mobile\n\nvar data = {\n labels: ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n series: [[5, 4, 3, 7, 5, 10, 3, 4, 8, 10, 6, 8], [3, 2, 9, 5, 4, 6, 4, 6, 7, 8, 7, 4]]\n};\nvar options = {\n seriesBarDistance: 10\n};\nvar responsiveOptions = [['screen and (max-width: 640px)', {\n seriesBarDistance: 5,\n axisX: {\n labelInterpolationFnc: function labelInterpolationFnc(value) {\n return value[0];\n }\n }\n}]];\nnew Chartist.Bar('#overlapping-bars', data, options, responsiveOptions); //Multi-line labels\n\nnew Chartist.Bar('#multi-line-chart', {\n labels: ['First quarter of the year', 'Second quarter of the year', 'Third quarter of the year', 'Fourth quarter of the year'],\n series: [[60000, 40000, 80000, 70000], [40000, 30000, 70000, 65000], [8000, 3000, 10000, 6000]]\n}, {\n seriesBarDistance: 10,\n axisX: {\n offset: 60\n },\n axisY: {\n offset: 80,\n labelInterpolationFnc: function labelInterpolationFnc(value) {\n return value + ' CHF';\n },\n scaleMinSpace: 15\n },\n plugins: [Chartist.plugins.tooltip()]\n}); //Stacked bar chart\n\nnew Chartist.Bar('#stacked-bar-chart', {\n labels: ['Q1', 'Q2', 'Q3', 'Q4'],\n series: [[800000, 1200000, 1400000, 1300000], [200000, 400000, 500000, 300000], [160000, 290000, 410000, 600000]]\n}, {\n stackBars: true,\n axisY: {\n labelInterpolationFnc: function labelInterpolationFnc(value) {\n return value / 1000 + 'k';\n }\n },\n plugins: [Chartist.plugins.tooltip()]\n}).on('draw', function (data) {\n if (data.type === 'bar') {\n data.element.attr({\n style: 'stroke-width: 30px'\n });\n }\n}); //Horizontal bar chart\n\nnew Chartist.Bar('#horizontal-bar-chart', {\n labels: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],\n series: [[5, 4, 3, 7, 5, 10, 3], [3, 2, 9, 5, 4, 6, 4]]\n}, {\n seriesBarDistance: 10,\n reverseData: true,\n horizontalBars: true,\n axisY: {\n offset: 70\n },\n plugins: [Chartist.plugins.tooltip()]\n}); // Extreme responsive configuration\n\nnew Chartist.Bar('#extreme-chart', {\n labels: ['Quarter 1', 'Quarter 2', 'Quarter 3', 'Quarter 4'],\n series: [[5, 4, 3, 7], [3, 2, 9, 5], [1, 5, 8, 4], [2, 3, 4, 6], [4, 1, 2, 1]]\n}, {\n // Default mobile configuration\n stackBars: true,\n axisX: {\n labelInterpolationFnc: function labelInterpolationFnc(value) {\n return value.split(/\\s+/).map(function (word) {\n return word[0];\n }).join('');\n }\n },\n axisY: {\n offset: 20\n },\n plugins: [Chartist.plugins.tooltip()]\n}, [// Options override for media > 400px\n['screen and (min-width: 400px)', {\n reverseData: true,\n horizontalBars: true,\n axisX: {\n labelInterpolationFnc: Chartist.noop\n },\n axisY: {\n offset: 60\n }\n}], // Options override for media > 800px\n['screen and (min-width: 800px)', {\n stackBars: false,\n seriesBarDistance: 10\n}], // Options override for media > 1000px\n['screen and (min-width: 1000px)', {\n reverseData: false,\n horizontalBars: false,\n seriesBarDistance: 15\n}]]); //Distributed series\n\nnew Chartist.Bar('#distributed-series', {\n labels: ['XS', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL'],\n series: [20, 60, 120, 200, 180, 20, 10]\n}, {\n distributeSeries: true,\n plugins: [Chartist.plugins.tooltip()]\n}); //Label placement\n\nnew Chartist.Bar('#label-placement-chart', {\n labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\n series: [[5, 4, 3, 7, 5, 10, 3], [3, 2, 9, 5, 4, 6, 4]]\n}, {\n axisX: {\n // On the x-axis start means top and end means bottom\n position: 'start'\n },\n axisY: {\n // On the y-axis start means left and end means right\n position: 'end'\n },\n plugins: [Chartist.plugins.tooltip()]\n}); //Animating a Donut with Svg.animate\n\nvar chart = new Chartist.Pie('#animating-donut', {\n series: [10, 20, 50, 20, 5, 50, 15],\n labels: [1, 2, 3, 4, 5, 6, 7]\n}, {\n donut: true,\n showLabel: false,\n plugins: [Chartist.plugins.tooltip()]\n});\nchart.on('draw', function (data) {\n if (data.type === 'slice') {\n // Get the total path length in order to use for dash array animation\n var pathLength = data.element._node.getTotalLength(); // Set a dasharray that matches the path length as prerequisite to animate dashoffset\n\n\n data.element.attr({\n 'stroke-dasharray': pathLength + 'px ' + pathLength + 'px'\n }); // Create animation definition while also assigning an ID to the animation for later sync usage\n\n var animationDefinition = {\n 'stroke-dashoffset': {\n id: 'anim' + data.index,\n dur: 1000,\n from: -pathLength + 'px',\n to: '0px',\n easing: Chartist.Svg.Easing.easeOutQuint,\n // We need to use `fill: 'freeze'` otherwise our animation will fall back to initial (not visible)\n fill: 'freeze'\n }\n }; // If this was not the first slice, we need to time the animation so that it uses the end sync event of the previous animation\n\n if (data.index !== 0) {\n animationDefinition['stroke-dashoffset'].begin = 'anim' + (data.index - 1) + '.end';\n } // We need to set an initial value before the animation starts as we are not in guided mode which would do that for us\n\n\n data.element.attr({\n 'stroke-dashoffset': -pathLength + 'px'\n }); // We can't use guided mode as the animations need to rely on setting begin manually\n // See http://gionkunz.github.io/chartist-js/api-documentation.html#chartistsvg-function-animate\n\n data.element.animate(animationDefinition, false);\n }\n}); // For the sake of the example we update the chart every time it's created with a delay of 8 seconds\n\nchart.on('created', function () {\n if (window.__anim21278907124) {\n clearTimeout(window.__anim21278907124);\n window.__anim21278907124 = null;\n }\n\n window.__anim21278907124 = setTimeout(chart.update.bind(chart), 10000);\n}); //Simple pie chart\n\nvar data = {\n series: [5, 3, 4]\n};\n\nvar sum = function sum(a, b) {\n return a + b;\n};\n\nnew Chartist.Pie('#simple-pie', data, {\n labelInterpolationFnc: function labelInterpolationFnc(value) {\n return Math.round(value / data.series.reduce(sum) * 100) + '%';\n }\n}); //Pie chart with custom labels\n\nvar data = {\n labels: ['Bananas', 'Apples', 'Grapes'],\n series: [20, 15, 40]\n};\nvar options = {\n labelInterpolationFnc: function labelInterpolationFnc(value) {\n return value[0];\n }\n};\nvar responsiveOptions = [['screen and (min-width: 640px)', {\n chartPadding: 30,\n labelOffset: 100,\n labelDirection: 'explode',\n labelInterpolationFnc: function labelInterpolationFnc(value) {\n return value;\n }\n}], ['screen and (min-width: 1024px)', {\n labelOffset: 80,\n chartPadding: 20\n}]];\nnew Chartist.Pie('#pie-chart', data, options, responsiveOptions); //Gauge chart\n\nnew Chartist.Pie('#gauge-chart', {\n series: [20, 10, 30, 40]\n}, {\n donut: true,\n donutWidth: 60,\n startAngle: 270,\n total: 200,\n showLabel: false,\n plugins: [Chartist.plugins.tooltip()]\n}); // Different configuration for different series\n\nvar chart = new Chartist.Line('#different-series', {\n labels: ['1', '2', '3', '4', '5', '6', '7', '8'],\n // Naming the series with the series object array notation\n series: [{\n name: 'series-1',\n data: [5, 2, -4, 2, 0, -2, 5, -3]\n }, {\n name: 'series-2',\n data: [4, 3, 5, 3, 1, 3, 6, 4]\n }, {\n name: 'series-3',\n data: [2, 4, 3, 1, 4, 5, 3, 2]\n }]\n}, {\n fullWidth: true,\n // Within the series options you can use the series names\n // to specify configuration that will only be used for the\n // specific series.\n series: {\n 'series-1': {\n lineSmooth: Chartist.Interpolation.step()\n },\n 'series-2': {\n lineSmooth: Chartist.Interpolation.simple(),\n showArea: true\n },\n 'series-3': {\n showPoint: false\n }\n },\n plugins: [Chartist.plugins.tooltip()]\n}, [// You can even use responsive configuration overrides to\n// customize your series configuration even further!\n['screen and (max-width: 320px)', {\n series: {\n 'series-1': {\n lineSmooth: Chartist.Interpolation.none()\n },\n 'series-2': {\n lineSmooth: Chartist.Interpolation.none(),\n showArea: false\n },\n 'series-3': {\n lineSmooth: Chartist.Interpolation.none(),\n showPoint: true\n }\n }\n}]]); //SVG Animations chart\n\nvar chart = new Chartist.Line('#svg-dot-animation', {\n labels: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],\n series: [[12, 4, 2, 8, 5, 4, 6, 2, 3, 3, 4, 6], [4, 8, 9, 3, 7, 2, 10, 5, 8, 1, 7, 10]]\n}, {\n low: 0,\n showLine: false,\n axisX: {\n showLabel: false,\n offset: 0\n },\n axisY: {\n showLabel: false,\n offset: 0\n },\n plugins: [Chartist.plugins.tooltip()]\n}); // Let's put a sequence number aside so we can use it in the event callbacks\n\nvar seq = 0; // Once the chart is fully created we reset the sequence\n\nchart.on('created', function () {\n seq = 0;\n}); // On each drawn element by Chartist we use the Chartist.Svg API to trigger SMIL animations\n\nchart.on('draw', function (data) {\n if (data.type === 'point') {\n // If the drawn element is a line we do a simple opacity fade in. This could also be achieved using CSS3 animations.\n data.element.animate({\n opacity: {\n // The delay when we like to start the animation\n begin: seq++ * 80,\n // Duration of the animation\n dur: 500,\n // The value where the animation should start\n from: 0,\n // The value where it should end\n to: 1\n },\n x1: {\n begin: seq++ * 80,\n dur: 500,\n from: data.x - 100,\n to: data.x,\n // You can specify an easing function name or use easing functions from Chartist.Svg.Easing directly\n easing: Chartist.Svg.Easing.easeOutQuart\n }\n });\n }\n}); // For the sake of the example we update the chart every time it's created with a delay of 8 seconds\n\nchart.on('created', function () {\n if (window.__anim0987432598723) {\n clearTimeout(window.__anim0987432598723);\n window.__anim0987432598723 = null;\n }\n\n window.__anim0987432598723 = setTimeout(chart.update.bind(chart), 8000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly91Ym9sZC1sYXJhdmVsLy4vcmVzb3VyY2VzL2pzL3BhZ2VzL2NoYXJ0aXN0LmluaXQuanM/ZTEyYyJdLCJuYW1lcyI6WyJjaGFydCIsIkNoYXJ0aXN0IiwiTGluZSIsImxhYmVscyIsInNlcmllcyIsImxvdyIsInBsdWdpbnMiLCJ0b29sdGlwIiwic2VxIiwiZGVsYXlzIiwiZHVyYXRpb25zIiwib24iLCJkYXRhIiwidHlwZSIsImVsZW1lbnQiLCJhbmltYXRlIiwib3BhY2l0eSIsImJlZ2luIiwiZHVyIiwiZnJvbSIsInRvIiwiYXhpcyIsInkiLCJlYXNpbmciLCJ4IiwieDEiLCJ4MiIsInBvczFBbmltYXRpb24iLCJ1bml0cyIsInBvcyIsInBvczJBbmltYXRpb24iLCJhbmltYXRpb25zIiwid2luZG93IiwiX19leGFtcGxlQW5pbWF0ZVRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidXBkYXRlIiwiYmluZCIsImZ1bGxXaWR0aCIsImNoYXJ0UGFkZGluZyIsInJpZ2h0IiwidGltZXMiLCJuIiwiQXJyYXkiLCJhcHBseSIsIm1hcCIsIk1hdGgiLCJyYW5kb20iLCJyZWR1Y2UiLCJybmQiLCJpbmRleCIsInB1c2giLCJmb3JFYWNoIiwib3B0aW9ucyIsInNob3dMaW5lIiwiYXhpc1giLCJsYWJlbEludGVycG9sYXRpb25GbmMiLCJ2YWx1ZSIsInJlc3BvbnNpdmVPcHRpb25zIiwibmFtZSIsIiRjaGFydCIsIiQiLCIkdG9vbFRpcCIsImFwcGVuZCIsImZpbmQiLCJoaWRlIiwiJHBvaW50IiwiYXR0ciIsInNlcmllc05hbWUiLCJwYXJlbnQiLCJodG1sIiwic2hvdyIsImV2ZW50IiwiY3NzIiwibGVmdCIsIm9mZnNldFgiLCJvcmlnaW5hbEV2ZW50IiwibGF5ZXJYIiwid2lkdGgiLCJ0b3AiLCJvZmZzZXRZIiwibGF5ZXJZIiwiaGVpZ2h0Iiwic2hvd0FyZWEiLCJoaWdoIiwic2hvd1BvaW50Iiwic2hvd0xhYmVsIiwic2hvd0dyaWQiLCJkIiwicGF0aCIsImNsb25lIiwic2NhbGUiLCJ0cmFuc2xhdGUiLCJjaGFydFJlY3QiLCJzdHJpbmdpZnkiLCJTdmciLCJFYXNpbmciLCJlYXNlT3V0UXVpbnQiLCJsaW5lU21vb3RoIiwiSW50ZXJwb2xhdGlvbiIsInNpbXBsZSIsImRpdmlzb3IiLCJCYXIiLCJzZXJpZXNCYXJEaXN0YW5jZSIsIm9mZnNldCIsImF4aXNZIiwic2NhbGVNaW5TcGFjZSIsInN0YWNrQmFycyIsInN0eWxlIiwicmV2ZXJzZURhdGEiLCJob3Jpem9udGFsQmFycyIsInNwbGl0Iiwid29yZCIsImpvaW4iLCJub29wIiwiZGlzdHJpYnV0ZVNlcmllcyIsInBvc2l0aW9uIiwiUGllIiwiZG9udXQiLCJwYXRoTGVuZ3RoIiwiX25vZGUiLCJnZXRUb3RhbExlbmd0aCIsImFuaW1hdGlvbkRlZmluaXRpb24iLCJpZCIsImZpbGwiLCJfX2FuaW0yMTI3ODkwNzEyNCIsInN1bSIsImEiLCJiIiwicm91bmQiLCJsYWJlbE9mZnNldCIsImxhYmVsRGlyZWN0aW9uIiwiZG9udXRXaWR0aCIsInN0YXJ0QW5nbGUiLCJ0b3RhbCIsInN0ZXAiLCJub25lIiwiZWFzZU91dFF1YXJ0IiwiX19hbmltMDk4NzQzMjU5ODcyMyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBLElBQUlBLEtBQUssR0FBRyxJQUFJQyxRQUFRLENBQUNDLElBQWIsQ0FBa0Isa0JBQWxCLEVBQXNDO0FBQzlDQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsRUFBb0MsR0FBcEMsRUFBeUMsR0FBekMsRUFBOEMsSUFBOUMsRUFBb0QsSUFBcEQsRUFBMEQsSUFBMUQsQ0FEc0M7QUFFOUNDLEVBQUFBLE1BQU0sRUFBRSxDQUNKLENBQUMsRUFBRCxFQUFLLENBQUwsRUFBUSxDQUFSLEVBQVcsQ0FBWCxFQUFjLENBQWQsRUFBaUIsQ0FBakIsRUFBb0IsQ0FBcEIsRUFBdUIsQ0FBdkIsRUFBMEIsQ0FBMUIsRUFBNkIsQ0FBN0IsRUFBZ0MsQ0FBaEMsRUFBbUMsQ0FBbkMsQ0FESSxFQUVKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsQ0FBNUIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBbEMsQ0FGSSxFQUdKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsQ0FBNUIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBbEMsQ0FISSxFQUlKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsRUFBeUIsQ0FBekIsRUFBNEIsQ0FBNUIsRUFBK0IsQ0FBL0IsRUFBa0MsQ0FBbEMsQ0FKSTtBQUZzQyxDQUF0QyxFQVFUO0FBQ0tDLEVBQUFBLEdBQUcsRUFBRSxDQURWO0FBRUtDLEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFGZCxDQVJTLENBQVosQyxDQWVBOztBQUNBLElBQUlDLEdBQUcsR0FBRyxDQUFWO0FBQUEsSUFDSUMsTUFBTSxHQUFHLEVBRGI7QUFBQSxJQUVJQyxTQUFTLEdBQUcsR0FGaEIsQyxDQUlBOztBQUNBVixLQUFLLENBQUNXLEVBQU4sQ0FBUyxTQUFULEVBQW9CLFlBQVk7QUFDNUJILEVBQUFBLEdBQUcsR0FBRyxDQUFOO0FBQ0gsQ0FGRCxFLENBSUE7O0FBQ0FSLEtBQUssQ0FBQ1csRUFBTixDQUFTLE1BQVQsRUFBaUIsVUFBVUMsSUFBVixFQUFnQjtBQUM3QkosRUFBQUEsR0FBRzs7QUFFSCxNQUFJSSxJQUFJLENBQUNDLElBQUwsS0FBYyxNQUFsQixFQUEwQjtBQUN0QjtBQUNBRCxJQUFBQSxJQUFJLENBQUNFLE9BQUwsQ0FBYUMsT0FBYixDQUFxQjtBQUNqQkMsTUFBQUEsT0FBTyxFQUFFO0FBQ0w7QUFDQUMsUUFBQUEsS0FBSyxFQUFFVCxHQUFHLEdBQUdDLE1BQU4sR0FBZSxJQUZqQjtBQUdMO0FBQ0FTLFFBQUFBLEdBQUcsRUFBRVIsU0FKQTtBQUtMO0FBQ0FTLFFBQUFBLElBQUksRUFBRSxDQU5EO0FBT0w7QUFDQUMsUUFBQUEsRUFBRSxFQUFFO0FBUkM7QUFEUSxLQUFyQjtBQVlILEdBZEQsTUFjTyxJQUFJUixJQUFJLENBQUNDLElBQUwsS0FBYyxPQUFkLElBQXlCRCxJQUFJLENBQUNTLElBQUwsS0FBYyxHQUEzQyxFQUFnRDtBQUNuRFQsSUFBQUEsSUFBSSxDQUFDRSxPQUFMLENBQWFDLE9BQWIsQ0FBcUI7QUFDakJPLE1BQUFBLENBQUMsRUFBRTtBQUNDTCxRQUFBQSxLQUFLLEVBQUVULEdBQUcsR0FBR0MsTUFEZDtBQUVDUyxRQUFBQSxHQUFHLEVBQUVSLFNBRk47QUFHQ1MsUUFBQUEsSUFBSSxFQUFFUCxJQUFJLENBQUNVLENBQUwsR0FBUyxHQUhoQjtBQUlDRixRQUFBQSxFQUFFLEVBQUVSLElBQUksQ0FBQ1UsQ0FKVjtBQUtDO0FBQ0FDLFFBQUFBLE1BQU0sRUFBRTtBQU5UO0FBRGMsS0FBckI7QUFVSCxHQVhNLE1BV0EsSUFBSVgsSUFBSSxDQUFDQyxJQUFMLEtBQWMsT0FBZCxJQUF5QkQsSUFBSSxDQUFDUyxJQUFMLEtBQWMsR0FBM0MsRUFBZ0Q7QUFDbkRULElBQUFBLElBQUksQ0FBQ0UsT0FBTCxDQUFhQyxPQUFiLENBQXFCO0FBQ2pCUyxNQUFBQSxDQUFDLEVBQUU7QUFDQ1AsUUFBQUEsS0FBSyxFQUFFVCxHQUFHLEdBQUdDLE1BRGQ7QUFFQ1MsUUFBQUEsR0FBRyxFQUFFUixTQUZOO0FBR0NTLFFBQUFBLElBQUksRUFBRVAsSUFBSSxDQUFDWSxDQUFMLEdBQVMsR0FIaEI7QUFJQ0osUUFBQUEsRUFBRSxFQUFFUixJQUFJLENBQUNZLENBSlY7QUFLQ0QsUUFBQUEsTUFBTSxFQUFFO0FBTFQ7QUFEYyxLQUFyQjtBQVNILEdBVk0sTUFVQSxJQUFJWCxJQUFJLENBQUNDLElBQUwsS0FBYyxPQUFsQixFQUEyQjtBQUM5QkQsSUFBQUEsSUFBSSxDQUFDRSxPQUFMLENBQWFDLE9BQWIsQ0FBcUI7QUFDakJVLE1BQUFBLEVBQUUsRUFBRTtBQUNBUixRQUFBQSxLQUFLLEVBQUVULEdBQUcsR0FBR0MsTUFEYjtBQUVBUyxRQUFBQSxHQUFHLEVBQUVSLFNBRkw7QUFHQVMsUUFBQUEsSUFBSSxFQUFFUCxJQUFJLENBQUNZLENBQUwsR0FBUyxFQUhmO0FBSUFKLFFBQUFBLEVBQUUsRUFBRVIsSUFBSSxDQUFDWSxDQUpUO0FBS0FELFFBQUFBLE1BQU0sRUFBRTtBQUxSLE9BRGE7QUFRakJHLE1BQUFBLEVBQUUsRUFBRTtBQUNBVCxRQUFBQSxLQUFLLEVBQUVULEdBQUcsR0FBR0MsTUFEYjtBQUVBUyxRQUFBQSxHQUFHLEVBQUVSLFNBRkw7QUFHQVMsUUFBQUEsSUFBSSxFQUFFUCxJQUFJLENBQUNZLENBQUwsR0FBUyxFQUhmO0FBSUFKLFFBQUFBLEVBQUUsRUFBRVIsSUFBSSxDQUFDWSxDQUpUO0FBS0FELFFBQUFBLE1BQU0sRUFBRTtBQUxSLE9BUmE7QUFlakJQLE1BQUFBLE9BQU8sRUFBRTtBQUNMQyxRQUFBQSxLQUFLLEVBQUVULEdBQUcsR0FBR0MsTUFEUjtBQUVMUyxRQUFBQSxHQUFHLEVBQUVSLFNBRkE7QUFHTFMsUUFBQUEsSUFBSSxFQUFFLENBSEQ7QUFJTEMsUUFBQUEsRUFBRSxFQUFFLENBSkM7QUFLTEcsUUFBQUEsTUFBTSxFQUFFO0FBTEg7QUFmUSxLQUFyQjtBQXVCSCxHQXhCTSxNQXdCQSxJQUFJWCxJQUFJLENBQUNDLElBQUwsS0FBYyxNQUFsQixFQUEwQjtBQUM3QjtBQUNBLFFBQUljLGFBQWEsR0FBRztBQUNoQlYsTUFBQUEsS0FBSyxFQUFFVCxHQUFHLEdBQUdDLE1BREc7QUFFaEJTLE1BQUFBLEdBQUcsRUFBRVIsU0FGVztBQUdoQlMsTUFBQUEsSUFBSSxFQUFFUCxJQUFJLENBQUNBLElBQUksQ0FBQ1MsSUFBTCxDQUFVTyxLQUFWLENBQWdCQyxHQUFoQixHQUFzQixHQUF2QixDQUFKLEdBQWtDLEVBSHhCO0FBSWhCVCxNQUFBQSxFQUFFLEVBQUVSLElBQUksQ0FBQ0EsSUFBSSxDQUFDUyxJQUFMLENBQVVPLEtBQVYsQ0FBZ0JDLEdBQWhCLEdBQXNCLEdBQXZCLENBSlE7QUFLaEJOLE1BQUFBLE1BQU0sRUFBRTtBQUxRLEtBQXBCO0FBUUEsUUFBSU8sYUFBYSxHQUFHO0FBQ2hCYixNQUFBQSxLQUFLLEVBQUVULEdBQUcsR0FBR0MsTUFERztBQUVoQlMsTUFBQUEsR0FBRyxFQUFFUixTQUZXO0FBR2hCUyxNQUFBQSxJQUFJLEVBQUVQLElBQUksQ0FBQ0EsSUFBSSxDQUFDUyxJQUFMLENBQVVPLEtBQVYsQ0FBZ0JDLEdBQWhCLEdBQXNCLEdBQXZCLENBQUosR0FBa0MsR0FIeEI7QUFJaEJULE1BQUFBLEVBQUUsRUFBRVIsSUFBSSxDQUFDQSxJQUFJLENBQUNTLElBQUwsQ0FBVU8sS0FBVixDQUFnQkMsR0FBaEIsR0FBc0IsR0FBdkIsQ0FKUTtBQUtoQk4sTUFBQUEsTUFBTSxFQUFFO0FBTFEsS0FBcEI7QUFRQSxRQUFJUSxVQUFVLEdBQUcsRUFBakI7QUFDQUEsSUFBQUEsVUFBVSxDQUFDbkIsSUFBSSxDQUFDUyxJQUFMLENBQVVPLEtBQVYsQ0FBZ0JDLEdBQWhCLEdBQXNCLEdBQXZCLENBQVYsR0FBd0NGLGFBQXhDO0FBQ0FJLElBQUFBLFVBQVUsQ0FBQ25CLElBQUksQ0FBQ1MsSUFBTCxDQUFVTyxLQUFWLENBQWdCQyxHQUFoQixHQUFzQixHQUF2QixDQUFWLEdBQXdDQyxhQUF4QztBQUNBQyxJQUFBQSxVQUFVLENBQUMsU0FBRCxDQUFWLEdBQXdCO0FBQ3BCZCxNQUFBQSxLQUFLLEVBQUVULEdBQUcsR0FBR0MsTUFETztBQUVwQlMsTUFBQUEsR0FBRyxFQUFFUixTQUZlO0FBR3BCUyxNQUFBQSxJQUFJLEVBQUUsQ0FIYztBQUlwQkMsTUFBQUEsRUFBRSxFQUFFLENBSmdCO0FBS3BCRyxNQUFBQSxNQUFNLEVBQUU7QUFMWSxLQUF4QjtBQVFBWCxJQUFBQSxJQUFJLENBQUNFLE9BQUwsQ0FBYUMsT0FBYixDQUFxQmdCLFVBQXJCO0FBQ0g7QUFDSixDQTdGRCxFLENBK0ZBOztBQUNBL0IsS0FBSyxDQUFDVyxFQUFOLENBQVMsU0FBVCxFQUFvQixZQUFZO0FBQzVCLE1BQUlxQixNQUFNLENBQUNDLHVCQUFYLEVBQW9DO0FBQ2hDQyxJQUFBQSxZQUFZLENBQUNGLE1BQU0sQ0FBQ0MsdUJBQVIsQ0FBWjtBQUNBRCxJQUFBQSxNQUFNLENBQUNDLHVCQUFQLEdBQWlDLElBQWpDO0FBQ0g7O0FBQ0RELEVBQUFBLE1BQU0sQ0FBQ0MsdUJBQVAsR0FBaUNFLFVBQVUsQ0FBQ25DLEtBQUssQ0FBQ29DLE1BQU4sQ0FBYUMsSUFBYixDQUFrQnJDLEtBQWxCLENBQUQsRUFBMkIsS0FBM0IsQ0FBM0M7QUFDSCxDQU5ELEUsQ0FVQTs7QUFDQSxJQUFJQyxRQUFRLENBQUNDLElBQWIsQ0FBa0Isb0JBQWxCLEVBQXdDO0FBQ3BDQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxRQUFELEVBQVcsU0FBWCxFQUFzQixXQUF0QixFQUFtQyxVQUFuQyxFQUErQyxRQUEvQyxDQUQ0QjtBQUVwQ0MsRUFBQUEsTUFBTSxFQUFFLENBQ0osQ0FBQyxFQUFELEVBQUssQ0FBTCxFQUFRLENBQVIsRUFBVyxDQUFYLEVBQWMsQ0FBZCxDQURJLEVBRUosQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLEdBQVAsRUFBWSxDQUFaLEVBQWUsQ0FBZixDQUZJLEVBR0osQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEsQ0FBYixDQUhJO0FBRjRCLENBQXhDLEVBT0c7QUFDS2tDLEVBQUFBLFNBQVMsRUFBRSxJQURoQjtBQUVLQyxFQUFBQSxZQUFZLEVBQUU7QUFDVkMsSUFBQUEsS0FBSyxFQUFFO0FBREcsR0FGbkI7QUFLS2xDLEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFMZCxDQVBILEUsQ0FvQkE7O0FBQ0EsSUFBSWtDLEtBQUssR0FBRyxTQUFSQSxLQUFRLENBQVVDLENBQVYsRUFBYTtBQUNyQixTQUFPQyxLQUFLLENBQUNDLEtBQU4sQ0FBWSxJQUFaLEVBQWtCLElBQUlELEtBQUosQ0FBVUQsQ0FBVixDQUFsQixDQUFQO0FBQ0gsQ0FGRDs7QUFJQSxJQUFJOUIsSUFBSSxHQUFHNkIsS0FBSyxDQUFDLEVBQUQsQ0FBTCxDQUFVSSxHQUFWLENBQWNDLElBQUksQ0FBQ0MsTUFBbkIsRUFBMkJDLE1BQTNCLENBQWtDLFVBQVVwQyxJQUFWLEVBQWdCcUMsR0FBaEIsRUFBcUJDLEtBQXJCLEVBQTRCO0FBQ3JFdEMsRUFBQUEsSUFBSSxDQUFDVCxNQUFMLENBQVlnRCxJQUFaLENBQWlCRCxLQUFLLEdBQUcsQ0FBekI7QUFDQXRDLEVBQUFBLElBQUksQ0FBQ1IsTUFBTCxDQUFZZ0QsT0FBWixDQUFvQixVQUFVaEQsTUFBVixFQUFrQjtBQUNsQ0EsSUFBQUEsTUFBTSxDQUFDK0MsSUFBUCxDQUFZTCxJQUFJLENBQUNDLE1BQUwsS0FBZ0IsR0FBNUI7QUFDSCxHQUZEO0FBSUEsU0FBT25DLElBQVA7QUFDSCxDQVBVLEVBT1I7QUFDS1QsRUFBQUEsTUFBTSxFQUFFLEVBRGI7QUFFS0MsRUFBQUEsTUFBTSxFQUFFcUMsS0FBSyxDQUFDLENBQUQsQ0FBTCxDQUFTSSxHQUFULENBQWEsWUFBWTtBQUFFLFdBQU8sSUFBSUYsS0FBSixFQUFQO0FBQW9CLEdBQS9DO0FBRmIsQ0FQUSxDQUFYO0FBWUEsSUFBSVUsT0FBTyxHQUFHO0FBQ1ZDLEVBQUFBLFFBQVEsRUFBRSxLQURBO0FBRVZDLEVBQUFBLEtBQUssRUFBRTtBQUNIQyxJQUFBQSxxQkFBcUIsRUFBRSwrQkFBVUMsS0FBVixFQUFpQlAsS0FBakIsRUFBd0I7QUFDM0MsYUFBT0EsS0FBSyxHQUFHLEVBQVIsS0FBZSxDQUFmLEdBQW1CLE1BQU1PLEtBQXpCLEdBQWlDLElBQXhDO0FBQ0g7QUFIRTtBQUZHLENBQWQ7QUFTQSxJQUFJQyxpQkFBaUIsR0FBRyxDQUNwQixDQUFDLCtCQUFELEVBQWtDO0FBQzlCSCxFQUFBQSxLQUFLLEVBQUU7QUFDSEMsSUFBQUEscUJBQXFCLEVBQUUsK0JBQVVDLEtBQVYsRUFBaUJQLEtBQWpCLEVBQXdCO0FBQzNDLGFBQU9BLEtBQUssR0FBRyxDQUFSLEtBQWMsQ0FBZCxHQUFrQixNQUFNTyxLQUF4QixHQUFnQyxJQUF2QztBQUNIO0FBSEU7QUFEdUIsQ0FBbEMsQ0FEb0IsQ0FBeEI7QUFVQSxJQUFJeEQsUUFBUSxDQUFDQyxJQUFiLENBQWtCLGtCQUFsQixFQUFzQ1UsSUFBdEMsRUFBNEN5QyxPQUE1QyxFQUFxREssaUJBQXJELEUsQ0FNQTtBQUVBOztBQUVBLElBQUl6RCxRQUFRLENBQUNDLElBQWIsQ0FBa0Isc0JBQWxCLEVBQTBDO0FBQ3RDQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsQ0FEOEI7QUFFdENDLEVBQUFBLE1BQU0sRUFBRSxDQUNKO0FBQ0l1RCxJQUFBQSxJQUFJLEVBQUUsb0JBRFY7QUFFSS9DLElBQUFBLElBQUksRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCLEVBQWhCO0FBRlYsR0FESSxFQUtKO0FBQ0krQyxJQUFBQSxJQUFJLEVBQUUsZ0JBRFY7QUFFSS9DLElBQUFBLElBQUksRUFBRSxDQUFDLENBQUQsRUFBSSxLQUFKLEVBQVcsS0FBWCxFQUFrQixLQUFsQixFQUF5QixLQUF6QixFQUFnQyxLQUFoQztBQUZWLEdBTEk7QUFGOEIsQ0FBMUMsRUFhSTtBQUNJTixFQUFBQSxPQUFPLEVBQUUsQ0FDTEwsUUFBUSxDQUFDSyxPQUFULENBQWlCQyxPQUFqQixFQURLO0FBRGIsQ0FiSjtBQW9CQSxJQUFJcUQsTUFBTSxHQUFHQyxDQUFDLENBQUMsc0JBQUQsQ0FBZDtBQUVBLElBQUlDLFFBQVEsR0FBR0YsTUFBTSxDQUNoQkcsTUFEVSxDQUNILDZCQURHLEVBRVZDLElBRlUsQ0FFTCxVQUZLLEVBR1ZDLElBSFUsRUFBZjtBQUtBTCxNQUFNLENBQUNqRCxFQUFQLENBQVUsWUFBVixFQUF3QixXQUF4QixFQUFxQyxZQUFZO0FBQzdDLE1BQUl1RCxNQUFNLEdBQUdMLENBQUMsQ0FBQyxJQUFELENBQWQ7QUFBQSxNQUNJSixLQUFLLEdBQUdTLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLFVBQVosQ0FEWjtBQUFBLE1BRUlDLFVBQVUsR0FBR0YsTUFBTSxDQUFDRyxNQUFQLEdBQWdCRixJQUFoQixDQUFxQixnQkFBckIsQ0FGakI7QUFHQUwsRUFBQUEsUUFBUSxDQUFDUSxJQUFULENBQWNGLFVBQVUsR0FBRyxNQUFiLEdBQXNCWCxLQUFwQyxFQUEyQ2MsSUFBM0M7QUFDSCxDQUxEO0FBT0FYLE1BQU0sQ0FBQ2pELEVBQVAsQ0FBVSxZQUFWLEVBQXdCLFdBQXhCLEVBQXFDLFlBQVk7QUFDN0NtRCxFQUFBQSxRQUFRLENBQUNHLElBQVQ7QUFDSCxDQUZEO0FBSUFMLE1BQU0sQ0FBQ2pELEVBQVAsQ0FBVSxXQUFWLEVBQXVCLFVBQVU2RCxLQUFWLEVBQWlCO0FBQ3BDVixFQUFBQSxRQUFRLENBQUNXLEdBQVQsQ0FBYTtBQUNUQyxJQUFBQSxJQUFJLEVBQUUsQ0FBQ0YsS0FBSyxDQUFDRyxPQUFOLElBQWlCSCxLQUFLLENBQUNJLGFBQU4sQ0FBb0JDLE1BQXRDLElBQWdEZixRQUFRLENBQUNnQixLQUFULEtBQW1CLENBQW5FLEdBQXVFLEVBRHBFO0FBRVRDLElBQUFBLEdBQUcsRUFBRSxDQUFDUCxLQUFLLENBQUNRLE9BQU4sSUFBaUJSLEtBQUssQ0FBQ0ksYUFBTixDQUFvQkssTUFBdEMsSUFBZ0RuQixRQUFRLENBQUNvQixNQUFULEVBQWhELEdBQW9FO0FBRmhFLEdBQWI7QUFJSCxDQUxELEUsQ0FVQTs7QUFFQSxJQUFJakYsUUFBUSxDQUFDQyxJQUFiLENBQWtCLGtCQUFsQixFQUFzQztBQUNsQ0MsRUFBQUEsTUFBTSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsQ0FEMEI7QUFFbENDLEVBQUFBLE1BQU0sRUFBRSxDQUNKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEIsQ0FESTtBQUYwQixDQUF0QyxFQUtHO0FBQ0tDLEVBQUFBLEdBQUcsRUFBRSxDQURWO0FBRUs4RSxFQUFBQSxRQUFRLEVBQUUsSUFGZjtBQUdLN0UsRUFBQUEsT0FBTyxFQUFFLENBQ0xMLFFBQVEsQ0FBQ0ssT0FBVCxDQUFpQkMsT0FBakIsRUFESztBQUhkLENBTEgsRSxDQWNBOztBQUVBLElBQUlOLFFBQVEsQ0FBQ0MsSUFBYixDQUFrQixnQkFBbEIsRUFBb0M7QUFDaENDLEVBQUFBLE1BQU0sRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLEVBQXNCLENBQXRCLENBRHdCO0FBRWhDQyxFQUFBQSxNQUFNLEVBQUUsQ0FDSixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFDLENBQWQsRUFBaUIsQ0FBakIsRUFBb0IsQ0FBcEIsRUFBdUIsQ0FBdkIsQ0FESSxFQUVKLENBQUMsQ0FBQyxDQUFGLEVBQUssQ0FBQyxDQUFOLEVBQVMsQ0FBQyxDQUFWLEVBQWEsQ0FBQyxDQUFkLEVBQWlCLENBQUMsR0FBbEIsRUFBdUIsQ0FBQyxDQUF4QixFQUEyQixDQUFDLENBQTVCLEVBQStCLENBQUMsQ0FBaEMsQ0FGSSxFQUdKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsR0FBaEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBeEIsQ0FISSxFQUlKLENBQUMsR0FBRCxFQUFNLENBQU4sRUFBUyxDQUFULEVBQVksR0FBWixFQUFpQixDQUFqQixFQUFvQixHQUFwQixFQUF5QixDQUFDLENBQTFCLEVBQTZCLENBQUMsR0FBOUIsQ0FKSTtBQUZ3QixDQUFwQyxFQVFHO0FBQ0tnRixFQUFBQSxJQUFJLEVBQUUsQ0FEWDtBQUVLL0UsRUFBQUEsR0FBRyxFQUFFLENBQUMsQ0FGWDtBQUdLOEUsRUFBQUEsUUFBUSxFQUFFLElBSGY7QUFJSzdCLEVBQUFBLFFBQVEsRUFBRSxLQUpmO0FBS0srQixFQUFBQSxTQUFTLEVBQUUsS0FMaEI7QUFNSy9DLEVBQUFBLFNBQVMsRUFBRSxJQU5oQjtBQU9LaUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0grQixJQUFBQSxTQUFTLEVBQUUsS0FEUjtBQUVIQyxJQUFBQSxRQUFRLEVBQUU7QUFGUCxHQVBaO0FBV0tqRixFQUFBQSxPQUFPLEVBQUUsQ0FDTEwsUUFBUSxDQUFDSyxPQUFULENBQWlCQyxPQUFqQixFQURLO0FBWGQsQ0FSSCxFLENBNEJBOztBQUVBLElBQUlQLEtBQUssR0FBRyxJQUFJQyxRQUFRLENBQUNDLElBQWIsQ0FBa0IsZ0JBQWxCLEVBQW9DO0FBQzVDQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxLQUFELEVBQVEsS0FBUixFQUFlLEtBQWYsRUFBc0IsS0FBdEIsRUFBNkIsS0FBN0IsRUFBb0MsS0FBcEMsQ0FEb0M7QUFFNUNDLEVBQUFBLE1BQU0sRUFBRSxDQUNKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FESSxFQUVKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FGSSxFQUdKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsR0FBaEIsQ0FISTtBQUZvQyxDQUFwQyxFQU9UO0FBQ0tDLEVBQUFBLEdBQUcsRUFBRSxDQURWO0FBRUs4RSxFQUFBQSxRQUFRLEVBQUUsSUFGZjtBQUdLRSxFQUFBQSxTQUFTLEVBQUUsS0FIaEI7QUFJSy9DLEVBQUFBLFNBQVMsRUFBRTtBQUpoQixDQVBTLENBQVo7QUFjQXRDLEtBQUssQ0FBQ1csRUFBTixDQUFTLE1BQVQsRUFBaUIsVUFBVUMsSUFBVixFQUFnQjtBQUM3QixNQUFJQSxJQUFJLENBQUNDLElBQUwsS0FBYyxNQUFkLElBQXdCRCxJQUFJLENBQUNDLElBQUwsS0FBYyxNQUExQyxFQUFrRDtBQUM5Q0QsSUFBQUEsSUFBSSxDQUFDRSxPQUFMLENBQWFDLE9BQWIsQ0FBcUI7QUFDakJ5RSxNQUFBQSxDQUFDLEVBQUU7QUFDQ3ZFLFFBQUFBLEtBQUssRUFBRSxPQUFPTCxJQUFJLENBQUNzQyxLQURwQjtBQUVDaEMsUUFBQUEsR0FBRyxFQUFFLElBRk47QUFHQ0MsUUFBQUEsSUFBSSxFQUFFUCxJQUFJLENBQUM2RSxJQUFMLENBQVVDLEtBQVYsR0FBa0JDLEtBQWxCLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLEVBQThCQyxTQUE5QixDQUF3QyxDQUF4QyxFQUEyQ2hGLElBQUksQ0FBQ2lGLFNBQUwsQ0FBZVgsTUFBZixFQUEzQyxFQUFvRVksU0FBcEUsRUFIUDtBQUlDMUUsUUFBQUEsRUFBRSxFQUFFUixJQUFJLENBQUM2RSxJQUFMLENBQVVDLEtBQVYsR0FBa0JJLFNBQWxCLEVBSkw7QUFLQ3ZFLFFBQUFBLE1BQU0sRUFBRXRCLFFBQVEsQ0FBQzhGLEdBQVQsQ0FBYUMsTUFBYixDQUFvQkM7QUFMN0I7QUFEYyxLQUFyQjtBQVNIO0FBQ0osQ0FaRCxFLENBa0JBOztBQUVBLElBQUlqRyxLQUFLLEdBQUcsSUFBSUMsUUFBUSxDQUFDQyxJQUFiLENBQWtCLGlCQUFsQixFQUFxQztBQUM3Q0MsRUFBQUEsTUFBTSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsQ0FEcUM7QUFFN0NDLEVBQUFBLE1BQU0sRUFBRSxDQUNKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxFQUFQLEVBQVcsQ0FBWCxFQUFjLENBQWQsQ0FESSxFQUVKLENBQUMsRUFBRCxFQUFLLEVBQUwsRUFBUyxDQUFULEVBQVksQ0FBWixFQUFlLENBQWYsQ0FGSTtBQUZxQyxDQUFyQyxFQU1UO0FBQ0s7QUFDQTtBQUNBOEYsRUFBQUEsVUFBVSxFQUFFakcsUUFBUSxDQUFDa0csYUFBVCxDQUF1QkMsTUFBdkIsQ0FBOEI7QUFDdENDLElBQUFBLE9BQU8sRUFBRTtBQUQ2QixHQUE5QixDQUhqQjtBQU1LL0QsRUFBQUEsU0FBUyxFQUFFLElBTmhCO0FBT0tDLEVBQUFBLFlBQVksRUFBRTtBQUNWQyxJQUFBQSxLQUFLLEVBQUU7QUFERyxHQVBuQjtBQVVLbkMsRUFBQUEsR0FBRyxFQUFFLENBVlY7QUFXS0MsRUFBQUEsT0FBTyxFQUFFLENBQ0xMLFFBQVEsQ0FBQ0ssT0FBVCxDQUFpQkMsT0FBakIsRUFESztBQVhkLENBTlMsQ0FBWixDLENBMEJBOztBQUVBLElBQUlLLElBQUksR0FBRztBQUNQVCxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLElBQWIsRUFBbUIsSUFBbkIsRUFBeUIsSUFBekIsRUFBK0IsSUFBL0IsRUFBcUMsSUFBckMsRUFBMkMsSUFBM0MsRUFBaUQsSUFBakQsRUFBdUQsS0FBdkQsQ0FERDtBQUVQQyxFQUFBQSxNQUFNLEVBQUUsQ0FDSixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCLENBQUMsQ0FBakIsRUFBb0IsQ0FBQyxDQUFyQixFQUF3QixDQUFDLENBQXpCLEVBQTRCLENBQUMsQ0FBN0IsRUFBZ0MsQ0FBQyxDQUFqQyxDQURJO0FBRkQsQ0FBWDtBQU9BLElBQUlpRCxPQUFPLEdBQUc7QUFDVitCLEVBQUFBLElBQUksRUFBRSxFQURJO0FBRVYvRSxFQUFBQSxHQUFHLEVBQUUsQ0FBQyxFQUZJO0FBR1ZrRCxFQUFBQSxLQUFLLEVBQUU7QUFDSEMsSUFBQUEscUJBQXFCLEVBQUUsK0JBQVVDLEtBQVYsRUFBaUJQLEtBQWpCLEVBQXdCO0FBQzNDLGFBQU9BLEtBQUssR0FBRyxDQUFSLEtBQWMsQ0FBZCxHQUFrQk8sS0FBbEIsR0FBMEIsSUFBakM7QUFDSDtBQUhFLEdBSEc7QUFRVm5ELEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFSQyxDQUFkO0FBYUEsSUFBSU4sUUFBUSxDQUFDcUcsR0FBYixDQUFpQixlQUFqQixFQUFrQzFGLElBQWxDLEVBQXdDeUMsT0FBeEMsRSxDQUtBOztBQUVBLElBQUl6QyxJQUFJLEdBQUc7QUFDUFQsRUFBQUEsTUFBTSxFQUFFLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxLQUFmLEVBQXNCLEtBQXRCLEVBQTZCLEtBQTdCLEVBQW9DLEtBQXBDLEVBQTJDLEtBQTNDLEVBQWtELEtBQWxELEVBQXlELEtBQXpELEVBQWdFLEtBQWhFLEVBQXVFLEtBQXZFLEVBQThFLEtBQTlFLENBREQ7QUFFUEMsRUFBQUEsTUFBTSxFQUFFLENBQ0osQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEsQ0FBYixFQUFnQixFQUFoQixFQUFvQixDQUFwQixFQUF1QixDQUF2QixFQUEwQixDQUExQixFQUE2QixFQUE3QixFQUFpQyxDQUFqQyxFQUFvQyxDQUFwQyxDQURJLEVBRUosQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixFQUFzQixDQUF0QixFQUF5QixDQUF6QixFQUE0QixDQUE1QixFQUErQixDQUEvQixFQUFrQyxDQUFsQyxDQUZJO0FBRkQsQ0FBWDtBQVFBLElBQUlpRCxPQUFPLEdBQUc7QUFDVmtELEVBQUFBLGlCQUFpQixFQUFFO0FBRFQsQ0FBZDtBQUlBLElBQUk3QyxpQkFBaUIsR0FBRyxDQUNwQixDQUFDLCtCQUFELEVBQWtDO0FBQzlCNkMsRUFBQUEsaUJBQWlCLEVBQUUsQ0FEVztBQUU5QmhELEVBQUFBLEtBQUssRUFBRTtBQUNIQyxJQUFBQSxxQkFBcUIsRUFBRSwrQkFBVUMsS0FBVixFQUFpQjtBQUNwQyxhQUFPQSxLQUFLLENBQUMsQ0FBRCxDQUFaO0FBQ0g7QUFIRTtBQUZ1QixDQUFsQyxDQURvQixDQUF4QjtBQVdBLElBQUl4RCxRQUFRLENBQUNxRyxHQUFiLENBQWlCLG1CQUFqQixFQUFzQzFGLElBQXRDLEVBQTRDeUMsT0FBNUMsRUFBcURLLGlCQUFyRCxFLENBTUE7O0FBRUEsSUFBSXpELFFBQVEsQ0FBQ3FHLEdBQWIsQ0FBaUIsbUJBQWpCLEVBQXNDO0FBQ2xDbkcsRUFBQUEsTUFBTSxFQUFFLENBQUMsMkJBQUQsRUFBOEIsNEJBQTlCLEVBQTRELDJCQUE1RCxFQUF5Riw0QkFBekYsQ0FEMEI7QUFFbENDLEVBQUFBLE1BQU0sRUFBRSxDQUNKLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxLQUFmLEVBQXNCLEtBQXRCLENBREksRUFFSixDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsS0FBZixFQUFzQixLQUF0QixDQUZJLEVBR0osQ0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLEtBQWIsRUFBb0IsSUFBcEIsQ0FISTtBQUYwQixDQUF0QyxFQU9HO0FBQ0ttRyxFQUFBQSxpQkFBaUIsRUFBRSxFQUR4QjtBQUVLaEQsRUFBQUEsS0FBSyxFQUFFO0FBQ0hpRCxJQUFBQSxNQUFNLEVBQUU7QUFETCxHQUZaO0FBS0tDLEVBQUFBLEtBQUssRUFBRTtBQUNIRCxJQUFBQSxNQUFNLEVBQUUsRUFETDtBQUVIaEQsSUFBQUEscUJBQXFCLEVBQUUsK0JBQVVDLEtBQVYsRUFBaUI7QUFDcEMsYUFBT0EsS0FBSyxHQUFHLE1BQWY7QUFDSCxLQUpFO0FBS0hpRCxJQUFBQSxhQUFhLEVBQUU7QUFMWixHQUxaO0FBWUtwRyxFQUFBQSxPQUFPLEVBQUUsQ0FDTEwsUUFBUSxDQUFDSyxPQUFULENBQWlCQyxPQUFqQixFQURLO0FBWmQsQ0FQSCxFLENBMkJBOztBQUVBLElBQUlOLFFBQVEsQ0FBQ3FHLEdBQWIsQ0FBaUIsb0JBQWpCLEVBQXVDO0FBQ25DbkcsRUFBQUEsTUFBTSxFQUFFLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLENBRDJCO0FBRW5DQyxFQUFBQSxNQUFNLEVBQUUsQ0FDSixDQUFDLE1BQUQsRUFBUyxPQUFULEVBQWtCLE9BQWxCLEVBQTJCLE9BQTNCLENBREksRUFFSixDQUFDLE1BQUQsRUFBUyxNQUFULEVBQWlCLE1BQWpCLEVBQXlCLE1BQXpCLENBRkksRUFHSixDQUFDLE1BQUQsRUFBUyxNQUFULEVBQWlCLE1BQWpCLEVBQXlCLE1BQXpCLENBSEk7QUFGMkIsQ0FBdkMsRUFPRztBQUNLdUcsRUFBQUEsU0FBUyxFQUFFLElBRGhCO0FBRUtGLEVBQUFBLEtBQUssRUFBRTtBQUNIakQsSUFBQUEscUJBQXFCLEVBQUUsK0JBQVVDLEtBQVYsRUFBaUI7QUFDcEMsYUFBUUEsS0FBSyxHQUFHLElBQVQsR0FBaUIsR0FBeEI7QUFDSDtBQUhFLEdBRlo7QUFPS25ELEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFQZCxDQVBILEVBaUJPSSxFQWpCUCxDQWlCVSxNQWpCVixFQWlCa0IsVUFBVUMsSUFBVixFQUFnQjtBQUMxQixNQUFJQSxJQUFJLENBQUNDLElBQUwsS0FBYyxLQUFsQixFQUF5QjtBQUNyQkQsSUFBQUEsSUFBSSxDQUFDRSxPQUFMLENBQWFxRCxJQUFiLENBQWtCO0FBQ2R5QyxNQUFBQSxLQUFLLEVBQUU7QUFETyxLQUFsQjtBQUdIO0FBQ0osQ0F2QkwsRSxDQThCQTs7QUFFQSxJQUFJM0csUUFBUSxDQUFDcUcsR0FBYixDQUFpQix1QkFBakIsRUFBMEM7QUFDdENuRyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxRQUFELEVBQVcsU0FBWCxFQUFzQixXQUF0QixFQUFtQyxVQUFuQyxFQUErQyxRQUEvQyxFQUF5RCxVQUF6RCxFQUFxRSxRQUFyRSxDQUQ4QjtBQUV0Q0MsRUFBQUEsTUFBTSxFQUFFLENBQ0osQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEsQ0FBYixFQUFnQixFQUFoQixFQUFvQixDQUFwQixDQURJLEVBRUosQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUZJO0FBRjhCLENBQTFDLEVBTUc7QUFDS21HLEVBQUFBLGlCQUFpQixFQUFFLEVBRHhCO0FBRUtNLEVBQUFBLFdBQVcsRUFBRSxJQUZsQjtBQUdLQyxFQUFBQSxjQUFjLEVBQUUsSUFIckI7QUFJS0wsRUFBQUEsS0FBSyxFQUFFO0FBQ0hELElBQUFBLE1BQU0sRUFBRTtBQURMLEdBSlo7QUFPS2xHLEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFQZCxDQU5ILEUsQ0FzQkE7O0FBRUEsSUFBSU4sUUFBUSxDQUFDcUcsR0FBYixDQUFpQixnQkFBakIsRUFBbUM7QUFDL0JuRyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxXQUFELEVBQWMsV0FBZCxFQUEyQixXQUEzQixFQUF3QyxXQUF4QyxDQUR1QjtBQUUvQkMsRUFBQUEsTUFBTSxFQUFFLENBQ0osQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLENBREksRUFFSixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsQ0FGSSxFQUdKLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixDQUhJLEVBSUosQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLENBSkksRUFLSixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsQ0FMSTtBQUZ1QixDQUFuQyxFQVNHO0FBQ0s7QUFDQXVHLEVBQUFBLFNBQVMsRUFBRSxJQUZoQjtBQUdLcEQsRUFBQUEsS0FBSyxFQUFFO0FBQ0hDLElBQUFBLHFCQUFxQixFQUFFLCtCQUFVQyxLQUFWLEVBQWlCO0FBQ3BDLGFBQU9BLEtBQUssQ0FBQ3NELEtBQU4sQ0FBWSxLQUFaLEVBQW1CbEUsR0FBbkIsQ0FBdUIsVUFBVW1FLElBQVYsRUFBZ0I7QUFDMUMsZUFBT0EsSUFBSSxDQUFDLENBQUQsQ0FBWDtBQUNILE9BRk0sRUFFSkMsSUFGSSxDQUVDLEVBRkQsQ0FBUDtBQUdIO0FBTEUsR0FIWjtBQVVLUixFQUFBQSxLQUFLLEVBQUU7QUFDSEQsSUFBQUEsTUFBTSxFQUFFO0FBREwsR0FWWjtBQWFLbEcsRUFBQUEsT0FBTyxFQUFFLENBQ0xMLFFBQVEsQ0FBQ0ssT0FBVCxDQUFpQkMsT0FBakIsRUFESztBQWJkLENBVEgsRUF5Qk8sQ0FDQztBQUNBLENBQUMsK0JBQUQsRUFBa0M7QUFDOUJzRyxFQUFBQSxXQUFXLEVBQUUsSUFEaUI7QUFFOUJDLEVBQUFBLGNBQWMsRUFBRSxJQUZjO0FBRzlCdkQsRUFBQUEsS0FBSyxFQUFFO0FBQ0hDLElBQUFBLHFCQUFxQixFQUFFdkQsUUFBUSxDQUFDaUg7QUFEN0IsR0FIdUI7QUFNOUJULEVBQUFBLEtBQUssRUFBRTtBQUNIRCxJQUFBQSxNQUFNLEVBQUU7QUFETDtBQU51QixDQUFsQyxDQUZELEVBWUM7QUFDQSxDQUFDLCtCQUFELEVBQWtDO0FBQzlCRyxFQUFBQSxTQUFTLEVBQUUsS0FEbUI7QUFFOUJKLEVBQUFBLGlCQUFpQixFQUFFO0FBRlcsQ0FBbEMsQ0FiRCxFQWlCQztBQUNBLENBQUMsZ0NBQUQsRUFBbUM7QUFDL0JNLEVBQUFBLFdBQVcsRUFBRSxLQURrQjtBQUUvQkMsRUFBQUEsY0FBYyxFQUFFLEtBRmU7QUFHL0JQLEVBQUFBLGlCQUFpQixFQUFFO0FBSFksQ0FBbkMsQ0FsQkQsQ0F6QlAsRSxDQXFEQTs7QUFFQSxJQUFJdEcsUUFBUSxDQUFDcUcsR0FBYixDQUFpQixxQkFBakIsRUFBd0M7QUFDcENuRyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxJQUFELEVBQU8sR0FBUCxFQUFZLEdBQVosRUFBaUIsR0FBakIsRUFBc0IsSUFBdEIsRUFBNEIsS0FBNUIsRUFBbUMsTUFBbkMsQ0FENEI7QUFFcENDLEVBQUFBLE1BQU0sRUFBRSxDQUFDLEVBQUQsRUFBSyxFQUFMLEVBQVMsR0FBVCxFQUFjLEdBQWQsRUFBbUIsR0FBbkIsRUFBd0IsRUFBeEIsRUFBNEIsRUFBNUI7QUFGNEIsQ0FBeEMsRUFHRztBQUNLK0csRUFBQUEsZ0JBQWdCLEVBQUUsSUFEdkI7QUFFSzdHLEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFGZCxDQUhILEUsQ0FZQTs7QUFFQSxJQUFJTixRQUFRLENBQUNxRyxHQUFiLENBQWlCLHdCQUFqQixFQUEyQztBQUN2Q25HLEVBQUFBLE1BQU0sRUFBRSxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsS0FBZixFQUFzQixLQUF0QixFQUE2QixLQUE3QixFQUFvQyxLQUFwQyxFQUEyQyxLQUEzQyxDQUQrQjtBQUV2Q0MsRUFBQUEsTUFBTSxFQUFFLENBQ0osQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEsQ0FBYixFQUFnQixFQUFoQixFQUFvQixDQUFwQixDQURJLEVBRUosQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsRUFBVSxDQUFWLEVBQWEsQ0FBYixFQUFnQixDQUFoQixFQUFtQixDQUFuQixDQUZJO0FBRitCLENBQTNDLEVBTUc7QUFDS21ELEVBQUFBLEtBQUssRUFBRTtBQUNIO0FBQ0E2RCxJQUFBQSxRQUFRLEVBQUU7QUFGUCxHQURaO0FBS0tYLEVBQUFBLEtBQUssRUFBRTtBQUNIO0FBQ0FXLElBQUFBLFFBQVEsRUFBRTtBQUZQLEdBTFo7QUFTSzlHLEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFUZCxDQU5ILEUsQ0F1QkE7O0FBRUEsSUFBSVAsS0FBSyxHQUFHLElBQUlDLFFBQVEsQ0FBQ29ILEdBQWIsQ0FBaUIsa0JBQWpCLEVBQXFDO0FBQzdDakgsRUFBQUEsTUFBTSxFQUFFLENBQUMsRUFBRCxFQUFLLEVBQUwsRUFBUyxFQUFULEVBQWEsRUFBYixFQUFpQixDQUFqQixFQUFvQixFQUFwQixFQUF3QixFQUF4QixDQURxQztBQUU3Q0QsRUFBQUEsTUFBTSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkI7QUFGcUMsQ0FBckMsRUFHVDtBQUNLbUgsRUFBQUEsS0FBSyxFQUFFLElBRFo7QUFFS2hDLEVBQUFBLFNBQVMsRUFBRSxLQUZoQjtBQUdLaEYsRUFBQUEsT0FBTyxFQUFFLENBQ0xMLFFBQVEsQ0FBQ0ssT0FBVCxDQUFpQkMsT0FBakIsRUFESztBQUhkLENBSFMsQ0FBWjtBQVdBUCxLQUFLLENBQUNXLEVBQU4sQ0FBUyxNQUFULEVBQWlCLFVBQVVDLElBQVYsRUFBZ0I7QUFDN0IsTUFBSUEsSUFBSSxDQUFDQyxJQUFMLEtBQWMsT0FBbEIsRUFBMkI7QUFDdkI7QUFDQSxRQUFJMEcsVUFBVSxHQUFHM0csSUFBSSxDQUFDRSxPQUFMLENBQWEwRyxLQUFiLENBQW1CQyxjQUFuQixFQUFqQixDQUZ1QixDQUl2Qjs7O0FBQ0E3RyxJQUFBQSxJQUFJLENBQUNFLE9BQUwsQ0FBYXFELElBQWIsQ0FBa0I7QUFDZCwwQkFBb0JvRCxVQUFVLEdBQUcsS0FBYixHQUFxQkEsVUFBckIsR0FBa0M7QUFEeEMsS0FBbEIsRUFMdUIsQ0FTdkI7O0FBQ0EsUUFBSUcsbUJBQW1CLEdBQUc7QUFDdEIsMkJBQXFCO0FBQ2pCQyxRQUFBQSxFQUFFLEVBQUUsU0FBUy9HLElBQUksQ0FBQ3NDLEtBREQ7QUFFakJoQyxRQUFBQSxHQUFHLEVBQUUsSUFGWTtBQUdqQkMsUUFBQUEsSUFBSSxFQUFFLENBQUNvRyxVQUFELEdBQWMsSUFISDtBQUlqQm5HLFFBQUFBLEVBQUUsRUFBRSxLQUphO0FBS2pCRyxRQUFBQSxNQUFNLEVBQUV0QixRQUFRLENBQUM4RixHQUFULENBQWFDLE1BQWIsQ0FBb0JDLFlBTFg7QUFNakI7QUFDQTJCLFFBQUFBLElBQUksRUFBRTtBQVBXO0FBREMsS0FBMUIsQ0FWdUIsQ0FzQnZCOztBQUNBLFFBQUloSCxJQUFJLENBQUNzQyxLQUFMLEtBQWUsQ0FBbkIsRUFBc0I7QUFDbEJ3RSxNQUFBQSxtQkFBbUIsQ0FBQyxtQkFBRCxDQUFuQixDQUF5Q3pHLEtBQXpDLEdBQWlELFVBQVVMLElBQUksQ0FBQ3NDLEtBQUwsR0FBYSxDQUF2QixJQUE0QixNQUE3RTtBQUNILEtBekJzQixDQTJCdkI7OztBQUNBdEMsSUFBQUEsSUFBSSxDQUFDRSxPQUFMLENBQWFxRCxJQUFiLENBQWtCO0FBQ2QsMkJBQXFCLENBQUNvRCxVQUFELEdBQWM7QUFEckIsS0FBbEIsRUE1QnVCLENBZ0N2QjtBQUNBOztBQUNBM0csSUFBQUEsSUFBSSxDQUFDRSxPQUFMLENBQWFDLE9BQWIsQ0FBcUIyRyxtQkFBckIsRUFBMEMsS0FBMUM7QUFDSDtBQUNKLENBckNELEUsQ0F1Q0E7O0FBQ0ExSCxLQUFLLENBQUNXLEVBQU4sQ0FBUyxTQUFULEVBQW9CLFlBQVk7QUFDNUIsTUFBSXFCLE1BQU0sQ0FBQzZGLGlCQUFYLEVBQThCO0FBQzFCM0YsSUFBQUEsWUFBWSxDQUFDRixNQUFNLENBQUM2RixpQkFBUixDQUFaO0FBQ0E3RixJQUFBQSxNQUFNLENBQUM2RixpQkFBUCxHQUEyQixJQUEzQjtBQUNIOztBQUNEN0YsRUFBQUEsTUFBTSxDQUFDNkYsaUJBQVAsR0FBMkIxRixVQUFVLENBQUNuQyxLQUFLLENBQUNvQyxNQUFOLENBQWFDLElBQWIsQ0FBa0JyQyxLQUFsQixDQUFELEVBQTJCLEtBQTNCLENBQXJDO0FBQ0gsQ0FORCxFLENBV0E7O0FBRUEsSUFBSVksSUFBSSxHQUFHO0FBQ1BSLEVBQUFBLE1BQU0sRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUDtBQURELENBQVg7O0FBSUEsSUFBSTBILEdBQUcsR0FBRyxTQUFOQSxHQUFNLENBQVVDLENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUFFLFNBQU9ELENBQUMsR0FBR0MsQ0FBWDtBQUFjLENBQTFDOztBQUVBLElBQUkvSCxRQUFRLENBQUNvSCxHQUFiLENBQWlCLGFBQWpCLEVBQWdDekcsSUFBaEMsRUFBc0M7QUFDbEM0QyxFQUFBQSxxQkFBcUIsRUFBRSwrQkFBVUMsS0FBVixFQUFpQjtBQUNwQyxXQUFPWCxJQUFJLENBQUNtRixLQUFMLENBQVd4RSxLQUFLLEdBQUc3QyxJQUFJLENBQUNSLE1BQUwsQ0FBWTRDLE1BQVosQ0FBbUI4RSxHQUFuQixDQUFSLEdBQWtDLEdBQTdDLElBQW9ELEdBQTNEO0FBQ0g7QUFIaUMsQ0FBdEMsRSxDQVNBOztBQUVBLElBQUlsSCxJQUFJLEdBQUc7QUFDUFQsRUFBQUEsTUFBTSxFQUFFLENBQUMsU0FBRCxFQUFZLFFBQVosRUFBc0IsUUFBdEIsQ0FERDtBQUVQQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxFQUFELEVBQUssRUFBTCxFQUFTLEVBQVQ7QUFGRCxDQUFYO0FBS0EsSUFBSWlELE9BQU8sR0FBRztBQUNWRyxFQUFBQSxxQkFBcUIsRUFBRSwrQkFBVUMsS0FBVixFQUFpQjtBQUNwQyxXQUFPQSxLQUFLLENBQUMsQ0FBRCxDQUFaO0FBQ0g7QUFIUyxDQUFkO0FBTUEsSUFBSUMsaUJBQWlCLEdBQUcsQ0FDcEIsQ0FBQywrQkFBRCxFQUFrQztBQUM5Qm5CLEVBQUFBLFlBQVksRUFBRSxFQURnQjtBQUU5QjJGLEVBQUFBLFdBQVcsRUFBRSxHQUZpQjtBQUc5QkMsRUFBQUEsY0FBYyxFQUFFLFNBSGM7QUFJOUIzRSxFQUFBQSxxQkFBcUIsRUFBRSwrQkFBVUMsS0FBVixFQUFpQjtBQUNwQyxXQUFPQSxLQUFQO0FBQ0g7QUFONkIsQ0FBbEMsQ0FEb0IsRUFTcEIsQ0FBQyxnQ0FBRCxFQUFtQztBQUMvQnlFLEVBQUFBLFdBQVcsRUFBRSxFQURrQjtBQUUvQjNGLEVBQUFBLFlBQVksRUFBRTtBQUZpQixDQUFuQyxDQVRvQixDQUF4QjtBQWVBLElBQUl0QyxRQUFRLENBQUNvSCxHQUFiLENBQWlCLFlBQWpCLEVBQStCekcsSUFBL0IsRUFBcUN5QyxPQUFyQyxFQUE4Q0ssaUJBQTlDLEUsQ0FJQTs7QUFFQSxJQUFJekQsUUFBUSxDQUFDb0gsR0FBYixDQUFpQixjQUFqQixFQUFpQztBQUM3QmpILEVBQUFBLE1BQU0sRUFBRSxDQUFDLEVBQUQsRUFBSyxFQUFMLEVBQVMsRUFBVCxFQUFhLEVBQWI7QUFEcUIsQ0FBakMsRUFFRztBQUNLa0gsRUFBQUEsS0FBSyxFQUFFLElBRFo7QUFFS2MsRUFBQUEsVUFBVSxFQUFFLEVBRmpCO0FBR0tDLEVBQUFBLFVBQVUsRUFBRSxHQUhqQjtBQUlLQyxFQUFBQSxLQUFLLEVBQUUsR0FKWjtBQUtLaEQsRUFBQUEsU0FBUyxFQUFFLEtBTGhCO0FBTUtoRixFQUFBQSxPQUFPLEVBQUUsQ0FDTEwsUUFBUSxDQUFDSyxPQUFULENBQWlCQyxPQUFqQixFQURLO0FBTmQsQ0FGSCxFLENBaUJBOztBQUVBLElBQUlQLEtBQUssR0FBRyxJQUFJQyxRQUFRLENBQUNDLElBQWIsQ0FBa0IsbUJBQWxCLEVBQXVDO0FBQy9DQyxFQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsRUFBb0MsR0FBcEMsQ0FEdUM7QUFFL0M7QUFDQUMsRUFBQUEsTUFBTSxFQUFFLENBQUM7QUFDTHVELElBQUFBLElBQUksRUFBRSxVQUREO0FBRUwvQyxJQUFBQSxJQUFJLEVBQUUsQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQUMsQ0FBUixFQUFXLENBQVgsRUFBYyxDQUFkLEVBQWlCLENBQUMsQ0FBbEIsRUFBcUIsQ0FBckIsRUFBd0IsQ0FBQyxDQUF6QjtBQUZELEdBQUQsRUFHTDtBQUNDK0MsSUFBQUEsSUFBSSxFQUFFLFVBRFA7QUFFQy9DLElBQUFBLElBQUksRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLENBQW5CLEVBQXNCLENBQXRCO0FBRlAsR0FISyxFQU1MO0FBQ0MrQyxJQUFBQSxJQUFJLEVBQUUsVUFEUDtBQUVDL0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLEVBQVUsQ0FBVixFQUFhLENBQWIsRUFBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkIsRUFBc0IsQ0FBdEI7QUFGUCxHQU5LO0FBSHVDLENBQXZDLEVBYVQ7QUFDSzBCLEVBQUFBLFNBQVMsRUFBRSxJQURoQjtBQUVLO0FBQ0E7QUFDQTtBQUNBbEMsRUFBQUEsTUFBTSxFQUFFO0FBQ0osZ0JBQVk7QUFDUjhGLE1BQUFBLFVBQVUsRUFBRWpHLFFBQVEsQ0FBQ2tHLGFBQVQsQ0FBdUJvQyxJQUF2QjtBQURKLEtBRFI7QUFJSixnQkFBWTtBQUNSckMsTUFBQUEsVUFBVSxFQUFFakcsUUFBUSxDQUFDa0csYUFBVCxDQUF1QkMsTUFBdkIsRUFESjtBQUVSakIsTUFBQUEsUUFBUSxFQUFFO0FBRkYsS0FKUjtBQVFKLGdCQUFZO0FBQ1JFLE1BQUFBLFNBQVMsRUFBRTtBQURIO0FBUlIsR0FMYjtBQWlCSy9FLEVBQUFBLE9BQU8sRUFBRSxDQUNMTCxRQUFRLENBQUNLLE9BQVQsQ0FBaUJDLE9BQWpCLEVBREs7QUFqQmQsQ0FiUyxFQWlDTCxDQUNDO0FBQ0E7QUFDQSxDQUFDLCtCQUFELEVBQWtDO0FBQzlCSCxFQUFBQSxNQUFNLEVBQUU7QUFDSixnQkFBWTtBQUNSOEYsTUFBQUEsVUFBVSxFQUFFakcsUUFBUSxDQUFDa0csYUFBVCxDQUF1QnFDLElBQXZCO0FBREosS0FEUjtBQUlKLGdCQUFZO0FBQ1J0QyxNQUFBQSxVQUFVLEVBQUVqRyxRQUFRLENBQUNrRyxhQUFULENBQXVCcUMsSUFBdkIsRUFESjtBQUVSckQsTUFBQUEsUUFBUSxFQUFFO0FBRkYsS0FKUjtBQVFKLGdCQUFZO0FBQ1JlLE1BQUFBLFVBQVUsRUFBRWpHLFFBQVEsQ0FBQ2tHLGFBQVQsQ0FBdUJxQyxJQUF2QixFQURKO0FBRVJuRCxNQUFBQSxTQUFTLEVBQUU7QUFGSDtBQVJSO0FBRHNCLENBQWxDLENBSEQsQ0FqQ0ssQ0FBWixDLENBd0RBOztBQUVBLElBQUlyRixLQUFLLEdBQUcsSUFBSUMsUUFBUSxDQUFDQyxJQUFiLENBQWtCLG9CQUFsQixFQUF3QztBQUNoREMsRUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLEVBQStCLEdBQS9CLEVBQW9DLEdBQXBDLEVBQXlDLEdBQXpDLEVBQThDLElBQTlDLEVBQW9ELElBQXBELEVBQTBELElBQTFELENBRHdDO0FBRWhEQyxFQUFBQSxNQUFNLEVBQUUsQ0FDSixDQUFDLEVBQUQsRUFBSyxDQUFMLEVBQVEsQ0FBUixFQUFXLENBQVgsRUFBYyxDQUFkLEVBQWlCLENBQWpCLEVBQW9CLENBQXBCLEVBQXVCLENBQXZCLEVBQTBCLENBQTFCLEVBQTZCLENBQTdCLEVBQWdDLENBQWhDLEVBQW1DLENBQW5DLENBREksRUFFSixDQUFDLENBQUQsRUFBSSxDQUFKLEVBQU8sQ0FBUCxFQUFVLENBQVYsRUFBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CLEVBQW5CLEVBQXVCLENBQXZCLEVBQTBCLENBQTFCLEVBQTZCLENBQTdCLEVBQWdDLENBQWhDLEVBQW1DLEVBQW5DLENBRkk7QUFGd0MsQ0FBeEMsRUFNVDtBQUNLQyxFQUFBQSxHQUFHLEVBQUUsQ0FEVjtBQUVLaUQsRUFBQUEsUUFBUSxFQUFFLEtBRmY7QUFHS0MsRUFBQUEsS0FBSyxFQUFFO0FBQ0grQixJQUFBQSxTQUFTLEVBQUUsS0FEUjtBQUVIa0IsSUFBQUEsTUFBTSxFQUFFO0FBRkwsR0FIWjtBQU9LQyxFQUFBQSxLQUFLLEVBQUU7QUFDSG5CLElBQUFBLFNBQVMsRUFBRSxLQURSO0FBRUhrQixJQUFBQSxNQUFNLEVBQUU7QUFGTCxHQVBaO0FBV0tsRyxFQUFBQSxPQUFPLEVBQUUsQ0FDTEwsUUFBUSxDQUFDSyxPQUFULENBQWlCQyxPQUFqQixFQURLO0FBWGQsQ0FOUyxDQUFaLEMsQ0FzQkE7O0FBQ0EsSUFBSUMsR0FBRyxHQUFHLENBQVYsQyxDQUVBOztBQUNBUixLQUFLLENBQUNXLEVBQU4sQ0FBUyxTQUFULEVBQW9CLFlBQVk7QUFDNUJILEVBQUFBLEdBQUcsR0FBRyxDQUFOO0FBQ0gsQ0FGRCxFLENBSUE7O0FBQ0FSLEtBQUssQ0FBQ1csRUFBTixDQUFTLE1BQVQsRUFBaUIsVUFBVUMsSUFBVixFQUFnQjtBQUM3QixNQUFJQSxJQUFJLENBQUNDLElBQUwsS0FBYyxPQUFsQixFQUEyQjtBQUN2QjtBQUNBRCxJQUFBQSxJQUFJLENBQUNFLE9BQUwsQ0FBYUMsT0FBYixDQUFxQjtBQUNqQkMsTUFBQUEsT0FBTyxFQUFFO0FBQ0w7QUFDQUMsUUFBQUEsS0FBSyxFQUFFVCxHQUFHLEtBQUssRUFGVjtBQUdMO0FBQ0FVLFFBQUFBLEdBQUcsRUFBRSxHQUpBO0FBS0w7QUFDQUMsUUFBQUEsSUFBSSxFQUFFLENBTkQ7QUFPTDtBQUNBQyxRQUFBQSxFQUFFLEVBQUU7QUFSQyxPQURRO0FBV2pCSyxNQUFBQSxFQUFFLEVBQUU7QUFDQVIsUUFBQUEsS0FBSyxFQUFFVCxHQUFHLEtBQUssRUFEZjtBQUVBVSxRQUFBQSxHQUFHLEVBQUUsR0FGTDtBQUdBQyxRQUFBQSxJQUFJLEVBQUVQLElBQUksQ0FBQ1ksQ0FBTCxHQUFTLEdBSGY7QUFJQUosUUFBQUEsRUFBRSxFQUFFUixJQUFJLENBQUNZLENBSlQ7QUFLQTtBQUNBRCxRQUFBQSxNQUFNLEVBQUV0QixRQUFRLENBQUM4RixHQUFULENBQWFDLE1BQWIsQ0FBb0J5QztBQU41QjtBQVhhLEtBQXJCO0FBb0JIO0FBQ0osQ0F4QkQsRSxDQTBCQTs7QUFDQXpJLEtBQUssQ0FBQ1csRUFBTixDQUFTLFNBQVQsRUFBb0IsWUFBWTtBQUM1QixNQUFJcUIsTUFBTSxDQUFDMEcsbUJBQVgsRUFBZ0M7QUFDNUJ4RyxJQUFBQSxZQUFZLENBQUNGLE1BQU0sQ0FBQzBHLG1CQUFSLENBQVo7QUFDQTFHLElBQUFBLE1BQU0sQ0FBQzBHLG1CQUFQLEdBQTZCLElBQTdCO0FBQ0g7O0FBQ0QxRyxFQUFBQSxNQUFNLENBQUMwRyxtQkFBUCxHQUE2QnZHLFVBQVUsQ0FBQ25DLEtBQUssQ0FBQ29DLE1BQU4sQ0FBYUMsSUFBYixDQUFrQnJDLEtBQWxCLENBQUQsRUFBMkIsSUFBM0IsQ0FBdkM7QUFDSCxDQU5EIiwic291cmNlc0NvbnRlbnQiOlsiLypcblRlbXBsYXRlIE5hbWU6IFVib2xkIC0gUmVzcG9uc2l2ZSBCb290c3RyYXAgNCBBZG1pbiBEYXNoYm9hcmRcbkF1dGhvcjogQ29kZXJUaGVtZXNcbldlYnNpdGU6IGh0dHBzOi8vY29kZXJ0aGVtZXMuY29tL1xuQ29udGFjdDogc3VwcG9ydEBjb2RlcnRoZW1lcy5jb21cbkZpbGU6IENoYXJ0aXN0IGNoYXJ0c1xuKi9cblxuLy9zbWlsLWFuaW1hdGlvbnMgQ2hhcnRcblxudmFyIGNoYXJ0ID0gbmV3IENoYXJ0aXN0LkxpbmUoJyNzbWlsLWFuaW1hdGlvbnMnLCB7XG4gICAgbGFiZWxzOiBbJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5JywgJzEwJywgJzExJywgJzEyJ10sXG4gICAgc2VyaWVzOiBbXG4gICAgICAgIFsxMiwgOSwgNywgOCwgNSwgNCwgNiwgMiwgMywgMywgNCwgNl0sXG4gICAgICAgIFs0LCA1LCAzLCA3LCAzLCA1LCA1LCAzLCA0LCA0LCA1LCA1XSxcbiAgICAgICAgWzUsIDMsIDQsIDUsIDYsIDMsIDMsIDQsIDUsIDYsIDMsIDRdLFxuICAgICAgICBbMywgNCwgNSwgNiwgNywgNiwgNCwgNSwgNiwgNywgNiwgM11cbiAgICBdXG59LCB7XG4gICAgICAgIGxvdzogMCxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgICAgQ2hhcnRpc3QucGx1Z2lucy50b29sdGlwKClcbiAgICAgICAgXVxuICAgIH0pO1xuXG4vLyBMZXQncyBwdXQgYSBzZXF1ZW5jZSBudW1iZXIgYXNpZGUgc28gd2UgY2FuIHVzZSBpdCBpbiB0aGUgZXZlbnQgY2FsbGJhY2tzXG52YXIgc2VxID0gMCxcbiAgICBkZWxheXMgPSA4MCxcbiAgICBkdXJhdGlvbnMgPSA1MDA7XG5cbi8vIE9uY2UgdGhlIGNoYXJ0IGlzIGZ1bGx5IGNyZWF0ZWQgd2UgcmVzZXQgdGhlIHNlcXVlbmNlXG5jaGFydC5vbignY3JlYXRlZCcsIGZ1bmN0aW9uICgpIHtcbiAgICBzZXEgPSAwO1xufSk7XG5cbi8vIE9uIGVhY2ggZHJhd24gZWxlbWVudCBieSBDaGFydGlzdCB3ZSB1c2UgdGhlIENoYXJ0aXN0LlN2ZyBBUEkgdG8gdHJpZ2dlciBTTUlMIGFuaW1hdGlvbnNcbmNoYXJ0Lm9uKCdkcmF3JywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBzZXErKztcblxuICAgIGlmIChkYXRhLnR5cGUgPT09ICdsaW5lJykge1xuICAgICAgICAvLyBJZiB0aGUgZHJhd24gZWxlbWVudCBpcyBhIGxpbmUgd2UgZG8gYSBzaW1wbGUgb3BhY2l0eSBmYWRlIGluLiBUaGlzIGNvdWxkIGFsc28gYmUgYWNoaWV2ZWQgdXNpbmcgQ1NTMyBhbmltYXRpb25zLlxuICAgICAgICBkYXRhLmVsZW1lbnQuYW5pbWF0ZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIGRlbGF5IHdoZW4gd2UgbGlrZSB0byBzdGFydCB0aGUgYW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgYmVnaW46IHNlcSAqIGRlbGF5cyArIDEwMDAsXG4gICAgICAgICAgICAgICAgLy8gRHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvblxuICAgICAgICAgICAgICAgIGR1cjogZHVyYXRpb25zLFxuICAgICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSB3aGVyZSB0aGUgYW5pbWF0aW9uIHNob3VsZCBzdGFydFxuICAgICAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICAgICAgLy8gVGhlIHZhbHVlIHdoZXJlIGl0IHNob3VsZCBlbmRcbiAgICAgICAgICAgICAgICB0bzogMVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gJ2xhYmVsJyAmJiBkYXRhLmF4aXMgPT09ICd4Jykge1xuICAgICAgICBkYXRhLmVsZW1lbnQuYW5pbWF0ZSh7XG4gICAgICAgICAgICB5OiB7XG4gICAgICAgICAgICAgICAgYmVnaW46IHNlcSAqIGRlbGF5cyxcbiAgICAgICAgICAgICAgICBkdXI6IGR1cmF0aW9ucyxcbiAgICAgICAgICAgICAgICBmcm9tOiBkYXRhLnkgKyAxMDAsXG4gICAgICAgICAgICAgICAgdG86IGRhdGEueSxcbiAgICAgICAgICAgICAgICAvLyBXZSBjYW4gc3BlY2lmeSBhbiBlYXNpbmcgZnVuY3Rpb24gZnJvbSBDaGFydGlzdC5TdmcuRWFzaW5nXG4gICAgICAgICAgICAgICAgZWFzaW5nOiAnZWFzZU91dFF1YXJ0J1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gJ2xhYmVsJyAmJiBkYXRhLmF4aXMgPT09ICd5Jykge1xuICAgICAgICBkYXRhLmVsZW1lbnQuYW5pbWF0ZSh7XG4gICAgICAgICAgICB4OiB7XG4gICAgICAgICAgICAgICAgYmVnaW46IHNlcSAqIGRlbGF5cyxcbiAgICAgICAgICAgICAgICBkdXI6IGR1cmF0aW9ucyxcbiAgICAgICAgICAgICAgICBmcm9tOiBkYXRhLnggLSAxMDAsXG4gICAgICAgICAgICAgICAgdG86IGRhdGEueCxcbiAgICAgICAgICAgICAgICBlYXNpbmc6ICdlYXNlT3V0UXVhcnQnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAncG9pbnQnKSB7XG4gICAgICAgIGRhdGEuZWxlbWVudC5hbmltYXRlKHtcbiAgICAgICAgICAgIHgxOiB7XG4gICAgICAgICAgICAgICAgYmVnaW46IHNlcSAqIGRlbGF5cyxcbiAgICAgICAgICAgICAgICBkdXI6IGR1cmF0aW9ucyxcbiAgICAgICAgICAgICAgICBmcm9tOiBkYXRhLnggLSAxMCxcbiAgICAgICAgICAgICAgICB0bzogZGF0YS54LFxuICAgICAgICAgICAgICAgIGVhc2luZzogJ2Vhc2VPdXRRdWFydCdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB4Mjoge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBzZXEgKiBkZWxheXMsXG4gICAgICAgICAgICAgICAgZHVyOiBkdXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgZnJvbTogZGF0YS54IC0gMTAsXG4gICAgICAgICAgICAgICAgdG86IGRhdGEueCxcbiAgICAgICAgICAgICAgICBlYXNpbmc6ICdlYXNlT3V0UXVhcnQnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3BhY2l0eToge1xuICAgICAgICAgICAgICAgIGJlZ2luOiBzZXEgKiBkZWxheXMsXG4gICAgICAgICAgICAgICAgZHVyOiBkdXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICAgICAgICB0bzogMSxcbiAgICAgICAgICAgICAgICBlYXNpbmc6ICdlYXNlT3V0UXVhcnQnXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAnZ3JpZCcpIHtcbiAgICAgICAgLy8gVXNpbmcgZGF0YS5heGlzIHdlIGdldCB4IG9yIHkgd2hpY2ggd2UgY2FuIHVzZSB0byBjb25zdHJ1Y3Qgb3VyIGFuaW1hdGlvbiBkZWZpbml0aW9uIG9iamVjdHNcbiAgICAgICAgdmFyIHBvczFBbmltYXRpb24gPSB7XG4gICAgICAgICAgICBiZWdpbjogc2VxICogZGVsYXlzLFxuICAgICAgICAgICAgZHVyOiBkdXJhdGlvbnMsXG4gICAgICAgICAgICBmcm9tOiBkYXRhW2RhdGEuYXhpcy51bml0cy5wb3MgKyAnMSddIC0gMzAsXG4gICAgICAgICAgICB0bzogZGF0YVtkYXRhLmF4aXMudW5pdHMucG9zICsgJzEnXSxcbiAgICAgICAgICAgIGVhc2luZzogJ2Vhc2VPdXRRdWFydCdcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgcG9zMkFuaW1hdGlvbiA9IHtcbiAgICAgICAgICAgIGJlZ2luOiBzZXEgKiBkZWxheXMsXG4gICAgICAgICAgICBkdXI6IGR1cmF0aW9ucyxcbiAgICAgICAgICAgIGZyb206IGRhdGFbZGF0YS5heGlzLnVuaXRzLnBvcyArICcyJ10gLSAxMDAsXG4gICAgICAgICAgICB0bzogZGF0YVtkYXRhLmF4aXMudW5pdHMucG9zICsgJzInXSxcbiAgICAgICAgICAgIGVhc2luZzogJ2Vhc2VPdXRRdWFydCdcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgYW5pbWF0aW9ucyA9IHt9O1xuICAgICAgICBhbmltYXRpb25zW2RhdGEuYXhpcy51bml0cy5wb3MgKyAnMSddID0gcG9zMUFuaW1hdGlvbjtcbiAgICAgICAgYW5pbWF0aW9uc1tkYXRhLmF4aXMudW5pdHMucG9zICsgJzInXSA9IHBvczJBbmltYXRpb247XG4gICAgICAgIGFuaW1hdGlvbnNbJ29wYWNpdHknXSA9IHtcbiAgICAgICAgICAgIGJlZ2luOiBzZXEgKiBkZWxheXMsXG4gICAgICAgICAgICBkdXI6IGR1cmF0aW9ucyxcbiAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICB0bzogMSxcbiAgICAgICAgICAgIGVhc2luZzogJ2Vhc2VPdXRRdWFydCdcbiAgICAgICAgfTtcblxuICAgICAgICBkYXRhLmVsZW1lbnQuYW5pbWF0ZShhbmltYXRpb25zKTtcbiAgICB9XG59KTtcblxuLy8gRm9yIHRoZSBzYWtlIG9mIHRoZSBleGFtcGxlIHdlIHVwZGF0ZSB0aGUgY2hhcnQgZXZlcnkgdGltZSBpdCdzIGNyZWF0ZWQgd2l0aCBhIGRlbGF5IG9mIDEwIHNlY29uZHNcbmNoYXJ0Lm9uKCdjcmVhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGlmICh3aW5kb3cuX19leGFtcGxlQW5pbWF0ZVRpbWVvdXQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHdpbmRvdy5fX2V4YW1wbGVBbmltYXRlVGltZW91dCk7XG4gICAgICAgIHdpbmRvdy5fX2V4YW1wbGVBbmltYXRlVGltZW91dCA9IG51bGw7XG4gICAgfVxuICAgIHdpbmRvdy5fX2V4YW1wbGVBbmltYXRlVGltZW91dCA9IHNldFRpbWVvdXQoY2hhcnQudXBkYXRlLmJpbmQoY2hhcnQpLCAxMjAwMCk7XG59KTtcblxuXG5cbi8vU2ltcGxlIGxpbmUgY2hhcnRcbm5ldyBDaGFydGlzdC5MaW5lKCcjc2ltcGxlLWxpbmUtY2hhcnQnLCB7XG4gICAgbGFiZWxzOiBbJ01vbmRheScsICdUdWVzZGF5JywgJ1dlZG5lc2RheScsICdUaHVyc2RheScsICdGcmlkYXknXSxcbiAgICBzZXJpZXM6IFtcbiAgICAgICAgWzEyLCA5LCA3LCA4LCA1XSxcbiAgICAgICAgWzIsIDEsIDMuNSwgNywgM10sXG4gICAgICAgIFsxLCAzLCA0LCA1LCA2XVxuICAgIF1cbn0sIHtcbiAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxuICAgICAgICBjaGFydFBhZGRpbmc6IHtcbiAgICAgICAgICAgIHJpZ2h0OiA0MFxuICAgICAgICB9LFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSk7XG5cblxuXG5cbi8vTGluZSBTY2F0dGVyIERpYWdyYW1cbnZhciB0aW1lcyA9IGZ1bmN0aW9uIChuKSB7XG4gICAgcmV0dXJuIEFycmF5LmFwcGx5KG51bGwsIG5ldyBBcnJheShuKSk7XG59O1xuXG52YXIgZGF0YSA9IHRpbWVzKDUyKS5tYXAoTWF0aC5yYW5kb20pLnJlZHVjZShmdW5jdGlvbiAoZGF0YSwgcm5kLCBpbmRleCkge1xuICAgIGRhdGEubGFiZWxzLnB1c2goaW5kZXggKyAxKTtcbiAgICBkYXRhLnNlcmllcy5mb3JFYWNoKGZ1bmN0aW9uIChzZXJpZXMpIHtcbiAgICAgICAgc2VyaWVzLnB1c2goTWF0aC5yYW5kb20oKSAqIDEwMClcbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xufSwge1xuICAgICAgICBsYWJlbHM6IFtdLFxuICAgICAgICBzZXJpZXM6IHRpbWVzKDQpLm1hcChmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgQXJyYXkoKSB9KVxuICAgIH0pO1xuXG52YXIgb3B0aW9ucyA9IHtcbiAgICBzaG93TGluZTogZmFsc2UsXG4gICAgYXhpc1g6IHtcbiAgICAgICAgbGFiZWxJbnRlcnBvbGF0aW9uRm5jOiBmdW5jdGlvbiAodmFsdWUsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXggJSAxMyA9PT0gMCA/ICdXJyArIHZhbHVlIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbnZhciByZXNwb25zaXZlT3B0aW9ucyA9IFtcbiAgICBbJ3NjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpJywge1xuICAgICAgICBheGlzWDoge1xuICAgICAgICAgICAgbGFiZWxJbnRlcnBvbGF0aW9uRm5jOiBmdW5jdGlvbiAodmFsdWUsIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4ICUgNCA9PT0gMCA/ICdXJyArIHZhbHVlIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1dXG5dO1xuXG5uZXcgQ2hhcnRpc3QuTGluZSgnI3NjYXR0ZXItZGlhZ3JhbScsIGRhdGEsIG9wdGlvbnMsIHJlc3BvbnNpdmVPcHRpb25zKTtcblxuXG5cblxuXG4vL0xpbmUgY2hhcnQgd2l0aCB0b29sdGlwc1xuXG4vL0xpbmUgY2hhcnQgd2l0aCB0b29sdGlwc1xuXG5uZXcgQ2hhcnRpc3QuTGluZSgnI2xpbmUtY2hhcnQtdG9vbHRpcHMnLCB7XG4gICAgbGFiZWxzOiBbJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2J10sXG4gICAgc2VyaWVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdGaWJvbmFjY2kgc2VxdWVuY2UnLFxuICAgICAgICAgICAgZGF0YTogWzEsIDIsIDMsIDUsIDgsIDEzXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnR29sZGVuIHNlY3Rpb24nLFxuICAgICAgICAgICAgZGF0YTogWzEsIDEuNjE4LCAyLjYxOCwgNC4yMzYsIDYuODU0LCAxMS4wOV1cbiAgICAgICAgfVxuICAgIF1cbn0sXG4gICAge1xuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfVxuKTtcblxudmFyICRjaGFydCA9ICQoJyNsaW5lLWNoYXJ0LXRvb2x0aXBzJyk7XG5cbnZhciAkdG9vbFRpcCA9ICRjaGFydFxuICAgIC5hcHBlbmQoJzxkaXYgY2xhc3M9XCJ0b29sdGlwXCI+PC9kaXY+JylcbiAgICAuZmluZCgnLnRvb2x0aXAnKVxuICAgIC5oaWRlKCk7XG5cbiRjaGFydC5vbignbW91c2VlbnRlcicsICcuY3QtcG9pbnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyICRwb2ludCA9ICQodGhpcyksXG4gICAgICAgIHZhbHVlID0gJHBvaW50LmF0dHIoJ2N0OnZhbHVlJyksXG4gICAgICAgIHNlcmllc05hbWUgPSAkcG9pbnQucGFyZW50KCkuYXR0cignY3Q6c2VyaWVzLW5hbWUnKTtcbiAgICAkdG9vbFRpcC5odG1sKHNlcmllc05hbWUgKyAnPGJyPicgKyB2YWx1ZSkuc2hvdygpO1xufSk7XG5cbiRjaGFydC5vbignbW91c2VsZWF2ZScsICcuY3QtcG9pbnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgJHRvb2xUaXAuaGlkZSgpO1xufSk7XG5cbiRjaGFydC5vbignbW91c2Vtb3ZlJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgJHRvb2xUaXAuY3NzKHtcbiAgICAgICAgbGVmdDogKGV2ZW50Lm9mZnNldFggfHwgZXZlbnQub3JpZ2luYWxFdmVudC5sYXllclgpIC0gJHRvb2xUaXAud2lkdGgoKSAvIDIgLSAxMCxcbiAgICAgICAgdG9wOiAoZXZlbnQub2Zmc2V0WSB8fCBldmVudC5vcmlnaW5hbEV2ZW50LmxheWVyWSkgLSAkdG9vbFRpcC5oZWlnaHQoKSAtIDQwXG4gICAgfSk7XG59KTtcblxuXG5cblxuLy9MaW5lIGNoYXJ0IHdpdGggYXJlYVxuXG5uZXcgQ2hhcnRpc3QuTGluZSgnI2NoYXJ0LXdpdGgtYXJlYScsIHtcbiAgICBsYWJlbHM6IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSxcbiAgICBzZXJpZXM6IFtcbiAgICAgICAgWzUsIDksIDcsIDgsIDUsIDMsIDUsIDRdXG4gICAgXVxufSwge1xuICAgICAgICBsb3c6IDAsXG4gICAgICAgIHNob3dBcmVhOiB0cnVlLFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSk7XG5cblxuLy9CaS1wb2xhciBMaW5lIGNoYXJ0IHdpdGggYXJlYSBvbmx5XG5cbm5ldyBDaGFydGlzdC5MaW5lKCcjYmktcG9sYXItbGluZScsIHtcbiAgICBsYWJlbHM6IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4XSxcbiAgICBzZXJpZXM6IFtcbiAgICAgICAgWzEsIDIsIDMsIDEsIC0yLCAwLCAxLCAwXSxcbiAgICAgICAgWy0yLCAtMSwgLTIsIC0xLCAtMi41LCAtMSwgLTIsIC0xXSxcbiAgICAgICAgWzAsIDAsIDAsIDEsIDIsIDIuNSwgMiwgMV0sXG4gICAgICAgIFsyLjUsIDIsIDEsIDAuNSwgMSwgMC41LCAtMSwgLTIuNV1cbiAgICBdXG59LCB7XG4gICAgICAgIGhpZ2g6IDMsXG4gICAgICAgIGxvdzogLTMsXG4gICAgICAgIHNob3dBcmVhOiB0cnVlLFxuICAgICAgICBzaG93TGluZTogZmFsc2UsXG4gICAgICAgIHNob3dQb2ludDogZmFsc2UsXG4gICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcbiAgICAgICAgYXhpc1g6IHtcbiAgICAgICAgICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgICAgICAgICBzaG93R3JpZDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgICAgQ2hhcnRpc3QucGx1Z2lucy50b29sdGlwKClcbiAgICAgICAgXVxuICAgIH0pO1xuXG5cblxuXG5cbi8vU1ZHIFBhdGggYW5pbWF0aW9uXG5cbnZhciBjaGFydCA9IG5ldyBDaGFydGlzdC5MaW5lKCcjc3ZnLWFuaW1hdGlvbicsIHtcbiAgICBsYWJlbHM6IFsnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXSxcbiAgICBzZXJpZXM6IFtcbiAgICAgICAgWzEsIDUsIDIsIDUsIDQsIDNdLFxuICAgICAgICBbMiwgMywgNCwgOCwgMSwgMl0sXG4gICAgICAgIFs1LCA0LCAzLCAyLCAxLCAwLjVdXG4gICAgXVxufSwge1xuICAgICAgICBsb3c6IDAsXG4gICAgICAgIHNob3dBcmVhOiB0cnVlLFxuICAgICAgICBzaG93UG9pbnQ6IGZhbHNlLFxuICAgICAgICBmdWxsV2lkdGg6IHRydWVcbiAgICB9KTtcblxuY2hhcnQub24oJ2RyYXcnLCBmdW5jdGlvbiAoZGF0YSkge1xuICAgIGlmIChkYXRhLnR5cGUgPT09ICdsaW5lJyB8fCBkYXRhLnR5cGUgPT09ICdhcmVhJykge1xuICAgICAgICBkYXRhLmVsZW1lbnQuYW5pbWF0ZSh7XG4gICAgICAgICAgICBkOiB7XG4gICAgICAgICAgICAgICAgYmVnaW46IDIwMDAgKiBkYXRhLmluZGV4LFxuICAgICAgICAgICAgICAgIGR1cjogMjAwMCxcbiAgICAgICAgICAgICAgICBmcm9tOiBkYXRhLnBhdGguY2xvbmUoKS5zY2FsZSgxLCAwKS50cmFuc2xhdGUoMCwgZGF0YS5jaGFydFJlY3QuaGVpZ2h0KCkpLnN0cmluZ2lmeSgpLFxuICAgICAgICAgICAgICAgIHRvOiBkYXRhLnBhdGguY2xvbmUoKS5zdHJpbmdpZnkoKSxcbiAgICAgICAgICAgICAgICBlYXNpbmc6IENoYXJ0aXN0LlN2Zy5FYXNpbmcuZWFzZU91dFF1aW50XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn0pO1xuXG5cblxuXG5cbi8vTGluZSBJbnRlcnBvbGF0aW9uIC8gU21vb3RoaW5nXG5cbnZhciBjaGFydCA9IG5ldyBDaGFydGlzdC5MaW5lKCcjbGluZS1zbW9vdGhpbmcnLCB7XG4gICAgbGFiZWxzOiBbMSwgMiwgMywgNCwgNV0sXG4gICAgc2VyaWVzOiBbXG4gICAgICAgIFsxLCA1LCAxMCwgMCwgMV0sXG4gICAgICAgIFsxMCwgMTUsIDAsIDEsIDJdXG4gICAgXVxufSwge1xuICAgICAgICAvLyBSZW1vdmUgdGhpcyBjb25maWd1cmF0aW9uIHRvIHNlZSB0aGF0IGNoYXJ0IHJlbmRlcmVkIHdpdGggY2FyZGluYWwgc3BsaW5lIGludGVycG9sYXRpb25cbiAgICAgICAgLy8gU29tZXRpbWVzLCBvbiBsYXJnZSBqdW1wcyBpbiBkYXRhIHZhbHVlcywgaXQncyBiZXR0ZXIgdG8gdXNlIHNpbXBsZSBzbW9vdGhpbmcuXG4gICAgICAgIGxpbmVTbW9vdGg6IENoYXJ0aXN0LkludGVycG9sYXRpb24uc2ltcGxlKHtcbiAgICAgICAgICAgIGRpdmlzb3I6IDJcbiAgICAgICAgfSksXG4gICAgICAgIGZ1bGxXaWR0aDogdHJ1ZSxcbiAgICAgICAgY2hhcnRQYWRkaW5nOiB7XG4gICAgICAgICAgICByaWdodDogMjBcbiAgICAgICAgfSxcbiAgICAgICAgbG93OiAwLFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSk7XG5cblxuXG5cblxuLy9CaS1wb2xhciBiYXIgY2hhcnRcblxudmFyIGRhdGEgPSB7XG4gICAgbGFiZWxzOiBbJ1cxJywgJ1cyJywgJ1czJywgJ1c0JywgJ1c1JywgJ1c2JywgJ1c3JywgJ1c4JywgJ1c5JywgJ1cxMCddLFxuICAgIHNlcmllczogW1xuICAgICAgICBbMSwgMiwgNCwgOCwgNiwgLTIsIC0xLCAtNCwgLTYsIC0yXVxuICAgIF1cbn07XG5cbnZhciBvcHRpb25zID0ge1xuICAgIGhpZ2g6IDEwLFxuICAgIGxvdzogLTEwLFxuICAgIGF4aXNYOiB7XG4gICAgICAgIGxhYmVsSW50ZXJwb2xhdGlvbkZuYzogZnVuY3Rpb24gKHZhbHVlLCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4ICUgMiA9PT0gMCA/IHZhbHVlIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgcGx1Z2luczogW1xuICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgIF1cbn07XG5cbm5ldyBDaGFydGlzdC5CYXIoJyNiaS1wb2xhci1iYXInLCBkYXRhLCBvcHRpb25zKTtcblxuXG5cblxuLy9PdmVybGFwcGluZyBiYXJzIG9uIG1vYmlsZVxuXG52YXIgZGF0YSA9IHtcbiAgICBsYWJlbHM6IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01haScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXSxcbiAgICBzZXJpZXM6IFtcbiAgICAgICAgWzUsIDQsIDMsIDcsIDUsIDEwLCAzLCA0LCA4LCAxMCwgNiwgOF0sXG4gICAgICAgIFszLCAyLCA5LCA1LCA0LCA2LCA0LCA2LCA3LCA4LCA3LCA0XVxuICAgIF1cbn07XG5cbnZhciBvcHRpb25zID0ge1xuICAgIHNlcmllc0JhckRpc3RhbmNlOiAxMFxufTtcblxudmFyIHJlc3BvbnNpdmVPcHRpb25zID0gW1xuICAgIFsnc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2NDBweCknLCB7XG4gICAgICAgIHNlcmllc0JhckRpc3RhbmNlOiA1LFxuICAgICAgICBheGlzWDoge1xuICAgICAgICAgICAgbGFiZWxJbnRlcnBvbGF0aW9uRm5jOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XVxuXTtcblxubmV3IENoYXJ0aXN0LkJhcignI292ZXJsYXBwaW5nLWJhcnMnLCBkYXRhLCBvcHRpb25zLCByZXNwb25zaXZlT3B0aW9ucyk7XG5cblxuXG5cblxuLy9NdWx0aS1saW5lIGxhYmVsc1xuXG5uZXcgQ2hhcnRpc3QuQmFyKCcjbXVsdGktbGluZS1jaGFydCcsIHtcbiAgICBsYWJlbHM6IFsnRmlyc3QgcXVhcnRlciBvZiB0aGUgeWVhcicsICdTZWNvbmQgcXVhcnRlciBvZiB0aGUgeWVhcicsICdUaGlyZCBxdWFydGVyIG9mIHRoZSB5ZWFyJywgJ0ZvdXJ0aCBxdWFydGVyIG9mIHRoZSB5ZWFyJ10sXG4gICAgc2VyaWVzOiBbXG4gICAgICAgIFs2MDAwMCwgNDAwMDAsIDgwMDAwLCA3MDAwMF0sXG4gICAgICAgIFs0MDAwMCwgMzAwMDAsIDcwMDAwLCA2NTAwMF0sXG4gICAgICAgIFs4MDAwLCAzMDAwLCAxMDAwMCwgNjAwMF1cbiAgICBdXG59LCB7XG4gICAgICAgIHNlcmllc0JhckRpc3RhbmNlOiAxMCxcbiAgICAgICAgYXhpc1g6IHtcbiAgICAgICAgICAgIG9mZnNldDogNjBcbiAgICAgICAgfSxcbiAgICAgICAgYXhpc1k6IHtcbiAgICAgICAgICAgIG9mZnNldDogODAsXG4gICAgICAgICAgICBsYWJlbEludGVycG9sYXRpb25GbmM6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSArICcgQ0hGJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNjYWxlTWluU3BhY2U6IDE1XG4gICAgICAgIH0sXG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgIENoYXJ0aXN0LnBsdWdpbnMudG9vbHRpcCgpXG4gICAgICAgIF1cbiAgICB9KTtcblxuXG5cblxuLy9TdGFja2VkIGJhciBjaGFydFxuXG5uZXcgQ2hhcnRpc3QuQmFyKCcjc3RhY2tlZC1iYXItY2hhcnQnLCB7XG4gICAgbGFiZWxzOiBbJ1ExJywgJ1EyJywgJ1EzJywgJ1E0J10sXG4gICAgc2VyaWVzOiBbXG4gICAgICAgIFs4MDAwMDAsIDEyMDAwMDAsIDE0MDAwMDAsIDEzMDAwMDBdLFxuICAgICAgICBbMjAwMDAwLCA0MDAwMDAsIDUwMDAwMCwgMzAwMDAwXSxcbiAgICAgICAgWzE2MDAwMCwgMjkwMDAwLCA0MTAwMDAsIDYwMDAwMF1cbiAgICBdXG59LCB7XG4gICAgICAgIHN0YWNrQmFyczogdHJ1ZSxcbiAgICAgICAgYXhpc1k6IHtcbiAgICAgICAgICAgIGxhYmVsSW50ZXJwb2xhdGlvbkZuYzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSAvIDEwMDApICsgJ2snO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSkub24oJ2RyYXcnLCBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICBpZiAoZGF0YS50eXBlID09PSAnYmFyJykge1xuICAgICAgICAgICAgZGF0YS5lbGVtZW50LmF0dHIoe1xuICAgICAgICAgICAgICAgIHN0eWxlOiAnc3Ryb2tlLXdpZHRoOiAzMHB4J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuXG5cblxuXG5cbi8vSG9yaXpvbnRhbCBiYXIgY2hhcnRcblxubmV3IENoYXJ0aXN0LkJhcignI2hvcml6b250YWwtYmFyLWNoYXJ0Jywge1xuICAgIGxhYmVsczogWydNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5JywgJ1N1bmRheSddLFxuICAgIHNlcmllczogW1xuICAgICAgICBbNSwgNCwgMywgNywgNSwgMTAsIDNdLFxuICAgICAgICBbMywgMiwgOSwgNSwgNCwgNiwgNF1cbiAgICBdXG59LCB7XG4gICAgICAgIHNlcmllc0JhckRpc3RhbmNlOiAxMCxcbiAgICAgICAgcmV2ZXJzZURhdGE6IHRydWUsXG4gICAgICAgIGhvcml6b250YWxCYXJzOiB0cnVlLFxuICAgICAgICBheGlzWToge1xuICAgICAgICAgICAgb2Zmc2V0OiA3MFxuICAgICAgICB9LFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSk7XG5cblxuXG5cblxuLy8gRXh0cmVtZSByZXNwb25zaXZlIGNvbmZpZ3VyYXRpb25cblxubmV3IENoYXJ0aXN0LkJhcignI2V4dHJlbWUtY2hhcnQnLCB7XG4gICAgbGFiZWxzOiBbJ1F1YXJ0ZXIgMScsICdRdWFydGVyIDInLCAnUXVhcnRlciAzJywgJ1F1YXJ0ZXIgNCddLFxuICAgIHNlcmllczogW1xuICAgICAgICBbNSwgNCwgMywgN10sXG4gICAgICAgIFszLCAyLCA5LCA1XSxcbiAgICAgICAgWzEsIDUsIDgsIDRdLFxuICAgICAgICBbMiwgMywgNCwgNl0sXG4gICAgICAgIFs0LCAxLCAyLCAxXVxuICAgIF1cbn0sIHtcbiAgICAgICAgLy8gRGVmYXVsdCBtb2JpbGUgY29uZmlndXJhdGlvblxuICAgICAgICBzdGFja0JhcnM6IHRydWUsXG4gICAgICAgIGF4aXNYOiB7XG4gICAgICAgICAgICBsYWJlbEludGVycG9sYXRpb25GbmM6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgvXFxzKy8pLm1hcChmdW5jdGlvbiAod29yZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd29yZFswXTtcbiAgICAgICAgICAgICAgICB9KS5qb2luKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYXhpc1k6IHtcbiAgICAgICAgICAgIG9mZnNldDogMjBcbiAgICAgICAgfSxcbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgICAgQ2hhcnRpc3QucGx1Z2lucy50b29sdGlwKClcbiAgICAgICAgXVxuICAgIH0sIFtcbiAgICAgICAgLy8gT3B0aW9ucyBvdmVycmlkZSBmb3IgbWVkaWEgPiA0MDBweFxuICAgICAgICBbJ3NjcmVlbiBhbmQgKG1pbi13aWR0aDogNDAwcHgpJywge1xuICAgICAgICAgICAgcmV2ZXJzZURhdGE6IHRydWUsXG4gICAgICAgICAgICBob3Jpem9udGFsQmFyczogdHJ1ZSxcbiAgICAgICAgICAgIGF4aXNYOiB7XG4gICAgICAgICAgICAgICAgbGFiZWxJbnRlcnBvbGF0aW9uRm5jOiBDaGFydGlzdC5ub29wXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXhpc1k6IHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDYwXG4gICAgICAgICAgICB9XG4gICAgICAgIH1dLFxuICAgICAgICAvLyBPcHRpb25zIG92ZXJyaWRlIGZvciBtZWRpYSA+IDgwMHB4XG4gICAgICAgIFsnc2NyZWVuIGFuZCAobWluLXdpZHRoOiA4MDBweCknLCB7XG4gICAgICAgICAgICBzdGFja0JhcnM6IGZhbHNlLFxuICAgICAgICAgICAgc2VyaWVzQmFyRGlzdGFuY2U6IDEwXG4gICAgICAgIH1dLFxuICAgICAgICAvLyBPcHRpb25zIG92ZXJyaWRlIGZvciBtZWRpYSA+IDEwMDBweFxuICAgICAgICBbJ3NjcmVlbiBhbmQgKG1pbi13aWR0aDogMTAwMHB4KScsIHtcbiAgICAgICAgICAgIHJldmVyc2VEYXRhOiBmYWxzZSxcbiAgICAgICAgICAgIGhvcml6b250YWxCYXJzOiBmYWxzZSxcbiAgICAgICAgICAgIHNlcmllc0JhckRpc3RhbmNlOiAxNVxuICAgICAgICB9XVxuICAgIF0pO1xuXG5cblxuXG4vL0Rpc3RyaWJ1dGVkIHNlcmllc1xuXG5uZXcgQ2hhcnRpc3QuQmFyKCcjZGlzdHJpYnV0ZWQtc2VyaWVzJywge1xuICAgIGxhYmVsczogWydYUycsICdTJywgJ00nLCAnTCcsICdYTCcsICdYWEwnLCAnWFhYTCddLFxuICAgIHNlcmllczogWzIwLCA2MCwgMTIwLCAyMDAsIDE4MCwgMjAsIDEwXVxufSwge1xuICAgICAgICBkaXN0cmlidXRlU2VyaWVzOiB0cnVlLFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSk7XG5cblxuXG4vL0xhYmVsIHBsYWNlbWVudFxuXG5uZXcgQ2hhcnRpc3QuQmFyKCcjbGFiZWwtcGxhY2VtZW50LWNoYXJ0Jywge1xuICAgIGxhYmVsczogWydNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCcsICdTdW4nXSxcbiAgICBzZXJpZXM6IFtcbiAgICAgICAgWzUsIDQsIDMsIDcsIDUsIDEwLCAzXSxcbiAgICAgICAgWzMsIDIsIDksIDUsIDQsIDYsIDRdXG4gICAgXVxufSwge1xuICAgICAgICBheGlzWDoge1xuICAgICAgICAgICAgLy8gT24gdGhlIHgtYXhpcyBzdGFydCBtZWFucyB0b3AgYW5kIGVuZCBtZWFucyBib3R0b21cbiAgICAgICAgICAgIHBvc2l0aW9uOiAnc3RhcnQnXG4gICAgICAgIH0sXG4gICAgICAgIGF4aXNZOiB7XG4gICAgICAgICAgICAvLyBPbiB0aGUgeS1heGlzIHN0YXJ0IG1lYW5zIGxlZnQgYW5kIGVuZCBtZWFucyByaWdodFxuICAgICAgICAgICAgcG9zaXRpb246ICdlbmQnXG4gICAgICAgIH0sXG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgIENoYXJ0aXN0LnBsdWdpbnMudG9vbHRpcCgpXG4gICAgICAgIF1cbiAgICB9KTtcblxuXG5cblxuLy9BbmltYXRpbmcgYSBEb251dCB3aXRoIFN2Zy5hbmltYXRlXG5cbnZhciBjaGFydCA9IG5ldyBDaGFydGlzdC5QaWUoJyNhbmltYXRpbmctZG9udXQnLCB7XG4gICAgc2VyaWVzOiBbMTAsIDIwLCA1MCwgMjAsIDUsIDUwLCAxNV0sXG4gICAgbGFiZWxzOiBbMSwgMiwgMywgNCwgNSwgNiwgN11cbn0sIHtcbiAgICAgICAgZG9udXQ6IHRydWUsXG4gICAgICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgIENoYXJ0aXN0LnBsdWdpbnMudG9vbHRpcCgpXG4gICAgICAgIF1cbiAgICB9KTtcblxuY2hhcnQub24oJ2RyYXcnLCBmdW5jdGlvbiAoZGF0YSkge1xuICAgIGlmIChkYXRhLnR5cGUgPT09ICdzbGljZScpIHtcbiAgICAgICAgLy8gR2V0IHRoZSB0b3RhbCBwYXRoIGxlbmd0aCBpbiBvcmRlciB0byB1c2UgZm9yIGRhc2ggYXJyYXkgYW5pbWF0aW9uXG4gICAgICAgIHZhciBwYXRoTGVuZ3RoID0gZGF0YS5lbGVtZW50Ll9ub2RlLmdldFRvdGFsTGVuZ3RoKCk7XG5cbiAgICAgICAgLy8gU2V0IGEgZGFzaGFycmF5IHRoYXQgbWF0Y2hlcyB0aGUgcGF0aCBsZW5ndGggYXMgcHJlcmVxdWlzaXRlIHRvIGFuaW1hdGUgZGFzaG9mZnNldFxuICAgICAgICBkYXRhLmVsZW1lbnQuYXR0cih7XG4gICAgICAgICAgICAnc3Ryb2tlLWRhc2hhcnJheSc6IHBhdGhMZW5ndGggKyAncHggJyArIHBhdGhMZW5ndGggKyAncHgnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhbmltYXRpb24gZGVmaW5pdGlvbiB3aGlsZSBhbHNvIGFzc2lnbmluZyBhbiBJRCB0byB0aGUgYW5pbWF0aW9uIGZvciBsYXRlciBzeW5jIHVzYWdlXG4gICAgICAgIHZhciBhbmltYXRpb25EZWZpbml0aW9uID0ge1xuICAgICAgICAgICAgJ3N0cm9rZS1kYXNob2Zmc2V0Jzoge1xuICAgICAgICAgICAgICAgIGlkOiAnYW5pbScgKyBkYXRhLmluZGV4LFxuICAgICAgICAgICAgICAgIGR1cjogMTAwMCxcbiAgICAgICAgICAgICAgICBmcm9tOiAtcGF0aExlbmd0aCArICdweCcsXG4gICAgICAgICAgICAgICAgdG86ICcwcHgnLFxuICAgICAgICAgICAgICAgIGVhc2luZzogQ2hhcnRpc3QuU3ZnLkVhc2luZy5lYXNlT3V0UXVpbnQsXG4gICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byB1c2UgYGZpbGw6ICdmcmVlemUnYCBvdGhlcndpc2Ugb3VyIGFuaW1hdGlvbiB3aWxsIGZhbGwgYmFjayB0byBpbml0aWFsIChub3QgdmlzaWJsZSlcbiAgICAgICAgICAgICAgICBmaWxsOiAnZnJlZXplJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIElmIHRoaXMgd2FzIG5vdCB0aGUgZmlyc3Qgc2xpY2UsIHdlIG5lZWQgdG8gdGltZSB0aGUgYW5pbWF0aW9uIHNvIHRoYXQgaXQgdXNlcyB0aGUgZW5kIHN5bmMgZXZlbnQgb2YgdGhlIHByZXZpb3VzIGFuaW1hdGlvblxuICAgICAgICBpZiAoZGF0YS5pbmRleCAhPT0gMCkge1xuICAgICAgICAgICAgYW5pbWF0aW9uRGVmaW5pdGlvblsnc3Ryb2tlLWRhc2hvZmZzZXQnXS5iZWdpbiA9ICdhbmltJyArIChkYXRhLmluZGV4IC0gMSkgKyAnLmVuZCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBuZWVkIHRvIHNldCBhbiBpbml0aWFsIHZhbHVlIGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cyBhcyB3ZSBhcmUgbm90IGluIGd1aWRlZCBtb2RlIHdoaWNoIHdvdWxkIGRvIHRoYXQgZm9yIHVzXG4gICAgICAgIGRhdGEuZWxlbWVudC5hdHRyKHtcbiAgICAgICAgICAgICdzdHJva2UtZGFzaG9mZnNldCc6IC1wYXRoTGVuZ3RoICsgJ3B4J1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBXZSBjYW4ndCB1c2UgZ3VpZGVkIG1vZGUgYXMgdGhlIGFuaW1hdGlvbnMgbmVlZCB0byByZWx5IG9uIHNldHRpbmcgYmVnaW4gbWFudWFsbHlcbiAgICAgICAgLy8gU2VlIGh0dHA6Ly9naW9ua3Vuei5naXRodWIuaW8vY2hhcnRpc3QtanMvYXBpLWRvY3VtZW50YXRpb24uaHRtbCNjaGFydGlzdHN2Zy1mdW5jdGlvbi1hbmltYXRlXG4gICAgICAgIGRhdGEuZWxlbWVudC5hbmltYXRlKGFuaW1hdGlvbkRlZmluaXRpb24sIGZhbHNlKTtcbiAgICB9XG59KTtcblxuLy8gRm9yIHRoZSBzYWtlIG9mIHRoZSBleGFtcGxlIHdlIHVwZGF0ZSB0aGUgY2hhcnQgZXZlcnkgdGltZSBpdCdzIGNyZWF0ZWQgd2l0aCBhIGRlbGF5IG9mIDggc2Vjb25kc1xuY2hhcnQub24oJ2NyZWF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHdpbmRvdy5fX2FuaW0yMTI3ODkwNzEyNCkge1xuICAgICAgICBjbGVhclRpbWVvdXQod2luZG93Ll9fYW5pbTIxMjc4OTA3MTI0KTtcbiAgICAgICAgd2luZG93Ll9fYW5pbTIxMjc4OTA3MTI0ID0gbnVsbDtcbiAgICB9XG4gICAgd2luZG93Ll9fYW5pbTIxMjc4OTA3MTI0ID0gc2V0VGltZW91dChjaGFydC51cGRhdGUuYmluZChjaGFydCksIDEwMDAwKTtcbn0pO1xuXG5cblxuXG4vL1NpbXBsZSBwaWUgY2hhcnRcblxudmFyIGRhdGEgPSB7XG4gICAgc2VyaWVzOiBbNSwgMywgNF1cbn07XG5cbnZhciBzdW0gPSBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSArIGIgfTtcblxubmV3IENoYXJ0aXN0LlBpZSgnI3NpbXBsZS1waWUnLCBkYXRhLCB7XG4gICAgbGFiZWxJbnRlcnBvbGF0aW9uRm5jOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgLyBkYXRhLnNlcmllcy5yZWR1Y2Uoc3VtKSAqIDEwMCkgKyAnJSc7XG4gICAgfVxufSk7XG5cblxuXG5cbi8vUGllIGNoYXJ0IHdpdGggY3VzdG9tIGxhYmVsc1xuXG52YXIgZGF0YSA9IHtcbiAgICBsYWJlbHM6IFsnQmFuYW5hcycsICdBcHBsZXMnLCAnR3JhcGVzJ10sXG4gICAgc2VyaWVzOiBbMjAsIDE1LCA0MF1cbn07XG5cbnZhciBvcHRpb25zID0ge1xuICAgIGxhYmVsSW50ZXJwb2xhdGlvbkZuYzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZVswXVxuICAgIH1cbn07XG5cbnZhciByZXNwb25zaXZlT3B0aW9ucyA9IFtcbiAgICBbJ3NjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpJywge1xuICAgICAgICBjaGFydFBhZGRpbmc6IDMwLFxuICAgICAgICBsYWJlbE9mZnNldDogMTAwLFxuICAgICAgICBsYWJlbERpcmVjdGlvbjogJ2V4cGxvZGUnLFxuICAgICAgICBsYWJlbEludGVycG9sYXRpb25GbmM6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfV0sXG4gICAgWydzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjRweCknLCB7XG4gICAgICAgIGxhYmVsT2Zmc2V0OiA4MCxcbiAgICAgICAgY2hhcnRQYWRkaW5nOiAyMFxuICAgIH1dXG5dO1xuXG5uZXcgQ2hhcnRpc3QuUGllKCcjcGllLWNoYXJ0JywgZGF0YSwgb3B0aW9ucywgcmVzcG9uc2l2ZU9wdGlvbnMpO1xuXG5cblxuLy9HYXVnZSBjaGFydFxuXG5uZXcgQ2hhcnRpc3QuUGllKCcjZ2F1Z2UtY2hhcnQnLCB7XG4gICAgc2VyaWVzOiBbMjAsIDEwLCAzMCwgNDBdXG59LCB7XG4gICAgICAgIGRvbnV0OiB0cnVlLFxuICAgICAgICBkb251dFdpZHRoOiA2MCxcbiAgICAgICAgc3RhcnRBbmdsZTogMjcwLFxuICAgICAgICB0b3RhbDogMjAwLFxuICAgICAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSk7XG5cblxuXG5cblxuLy8gRGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gZm9yIGRpZmZlcmVudCBzZXJpZXNcblxudmFyIGNoYXJ0ID0gbmV3IENoYXJ0aXN0LkxpbmUoJyNkaWZmZXJlbnQtc2VyaWVzJywge1xuICAgIGxhYmVsczogWycxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnXSxcbiAgICAvLyBOYW1pbmcgdGhlIHNlcmllcyB3aXRoIHRoZSBzZXJpZXMgb2JqZWN0IGFycmF5IG5vdGF0aW9uXG4gICAgc2VyaWVzOiBbe1xuICAgICAgICBuYW1lOiAnc2VyaWVzLTEnLFxuICAgICAgICBkYXRhOiBbNSwgMiwgLTQsIDIsIDAsIC0yLCA1LCAtM11cbiAgICB9LCB7XG4gICAgICAgIG5hbWU6ICdzZXJpZXMtMicsXG4gICAgICAgIGRhdGE6IFs0LCAzLCA1LCAzLCAxLCAzLCA2LCA0XVxuICAgIH0sIHtcbiAgICAgICAgbmFtZTogJ3Nlcmllcy0zJyxcbiAgICAgICAgZGF0YTogWzIsIDQsIDMsIDEsIDQsIDUsIDMsIDJdXG4gICAgfV1cbn0sIHtcbiAgICAgICAgZnVsbFdpZHRoOiB0cnVlLFxuICAgICAgICAvLyBXaXRoaW4gdGhlIHNlcmllcyBvcHRpb25zIHlvdSBjYW4gdXNlIHRoZSBzZXJpZXMgbmFtZXNcbiAgICAgICAgLy8gdG8gc3BlY2lmeSBjb25maWd1cmF0aW9uIHRoYXQgd2lsbCBvbmx5IGJlIHVzZWQgZm9yIHRoZVxuICAgICAgICAvLyBzcGVjaWZpYyBzZXJpZXMuXG4gICAgICAgIHNlcmllczoge1xuICAgICAgICAgICAgJ3Nlcmllcy0xJzoge1xuICAgICAgICAgICAgICAgIGxpbmVTbW9vdGg6IENoYXJ0aXN0LkludGVycG9sYXRpb24uc3RlcCgpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ3Nlcmllcy0yJzoge1xuICAgICAgICAgICAgICAgIGxpbmVTbW9vdGg6IENoYXJ0aXN0LkludGVycG9sYXRpb24uc2ltcGxlKCksXG4gICAgICAgICAgICAgICAgc2hvd0FyZWE6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAnc2VyaWVzLTMnOiB7XG4gICAgICAgICAgICAgICAgc2hvd1BvaW50OiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSwgW1xuICAgICAgICAvLyBZb3UgY2FuIGV2ZW4gdXNlIHJlc3BvbnNpdmUgY29uZmlndXJhdGlvbiBvdmVycmlkZXMgdG9cbiAgICAgICAgLy8gY3VzdG9taXplIHlvdXIgc2VyaWVzIGNvbmZpZ3VyYXRpb24gZXZlbiBmdXJ0aGVyIVxuICAgICAgICBbJ3NjcmVlbiBhbmQgKG1heC13aWR0aDogMzIwcHgpJywge1xuICAgICAgICAgICAgc2VyaWVzOiB7XG4gICAgICAgICAgICAgICAgJ3Nlcmllcy0xJzoge1xuICAgICAgICAgICAgICAgICAgICBsaW5lU21vb3RoOiBDaGFydGlzdC5JbnRlcnBvbGF0aW9uLm5vbmUoKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ3Nlcmllcy0yJzoge1xuICAgICAgICAgICAgICAgICAgICBsaW5lU21vb3RoOiBDaGFydGlzdC5JbnRlcnBvbGF0aW9uLm5vbmUoKSxcbiAgICAgICAgICAgICAgICAgICAgc2hvd0FyZWE6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnc2VyaWVzLTMnOiB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVTbW9vdGg6IENoYXJ0aXN0LkludGVycG9sYXRpb24ubm9uZSgpLFxuICAgICAgICAgICAgICAgICAgICBzaG93UG9pbnQ6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1dXG4gICAgXSk7XG5cblxuXG5cbi8vU1ZHIEFuaW1hdGlvbnMgY2hhcnRcblxudmFyIGNoYXJ0ID0gbmV3IENoYXJ0aXN0LkxpbmUoJyNzdmctZG90LWFuaW1hdGlvbicsIHtcbiAgICBsYWJlbHM6IFsnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknLCAnMTAnLCAnMTEnLCAnMTInXSxcbiAgICBzZXJpZXM6IFtcbiAgICAgICAgWzEyLCA0LCAyLCA4LCA1LCA0LCA2LCAyLCAzLCAzLCA0LCA2XSxcbiAgICAgICAgWzQsIDgsIDksIDMsIDcsIDIsIDEwLCA1LCA4LCAxLCA3LCAxMF1cbiAgICBdXG59LCB7XG4gICAgICAgIGxvdzogMCxcbiAgICAgICAgc2hvd0xpbmU6IGZhbHNlLFxuICAgICAgICBheGlzWDoge1xuICAgICAgICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcbiAgICAgICAgICAgIG9mZnNldDogMFxuICAgICAgICB9LFxuICAgICAgICBheGlzWToge1xuICAgICAgICAgICAgc2hvd0xhYmVsOiBmYWxzZSxcbiAgICAgICAgICAgIG9mZnNldDogMFxuICAgICAgICB9LFxuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICBDaGFydGlzdC5wbHVnaW5zLnRvb2x0aXAoKVxuICAgICAgICBdXG4gICAgfSk7XG5cbi8vIExldCdzIHB1dCBhIHNlcXVlbmNlIG51bWJlciBhc2lkZSBzbyB3ZSBjYW4gdXNlIGl0IGluIHRoZSBldmVudCBjYWxsYmFja3NcbnZhciBzZXEgPSAwO1xuXG4vLyBPbmNlIHRoZSBjaGFydCBpcyBmdWxseSBjcmVhdGVkIHdlIHJlc2V0IHRoZSBzZXF1ZW5jZVxuY2hhcnQub24oJ2NyZWF0ZWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgc2VxID0gMDtcbn0pO1xuXG4vLyBPbiBlYWNoIGRyYXduIGVsZW1lbnQgYnkgQ2hhcnRpc3Qgd2UgdXNlIHRoZSBDaGFydGlzdC5TdmcgQVBJIHRvIHRyaWdnZXIgU01JTCBhbmltYXRpb25zXG5jaGFydC5vbignZHJhdycsIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgaWYgKGRhdGEudHlwZSA9PT0gJ3BvaW50Jykge1xuICAgICAgICAvLyBJZiB0aGUgZHJhd24gZWxlbWVudCBpcyBhIGxpbmUgd2UgZG8gYSBzaW1wbGUgb3BhY2l0eSBmYWRlIGluLiBUaGlzIGNvdWxkIGFsc28gYmUgYWNoaWV2ZWQgdXNpbmcgQ1NTMyBhbmltYXRpb25zLlxuICAgICAgICBkYXRhLmVsZW1lbnQuYW5pbWF0ZSh7XG4gICAgICAgICAgICBvcGFjaXR5OiB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIGRlbGF5IHdoZW4gd2UgbGlrZSB0byBzdGFydCB0aGUgYW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgYmVnaW46IHNlcSsrICogODAsXG4gICAgICAgICAgICAgICAgLy8gRHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvblxuICAgICAgICAgICAgICAgIGR1cjogNTAwLFxuICAgICAgICAgICAgICAgIC8vIFRoZSB2YWx1ZSB3aGVyZSB0aGUgYW5pbWF0aW9uIHNob3VsZCBzdGFydFxuICAgICAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICAgICAgLy8gVGhlIHZhbHVlIHdoZXJlIGl0IHNob3VsZCBlbmRcbiAgICAgICAgICAgICAgICB0bzogMVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHgxOiB7XG4gICAgICAgICAgICAgICAgYmVnaW46IHNlcSsrICogODAsXG4gICAgICAgICAgICAgICAgZHVyOiA1MDAsXG4gICAgICAgICAgICAgICAgZnJvbTogZGF0YS54IC0gMTAwLFxuICAgICAgICAgICAgICAgIHRvOiBkYXRhLngsXG4gICAgICAgICAgICAgICAgLy8gWW91IGNhbiBzcGVjaWZ5IGFuIGVhc2luZyBmdW5jdGlvbiBuYW1lIG9yIHVzZSBlYXNpbmcgZnVuY3Rpb25zIGZyb20gQ2hhcnRpc3QuU3ZnLkVhc2luZyBkaXJlY3RseVxuICAgICAgICAgICAgICAgIGVhc2luZzogQ2hhcnRpc3QuU3ZnLkVhc2luZy5lYXNlT3V0UXVhcnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufSk7XG5cbi8vIEZvciB0aGUgc2FrZSBvZiB0aGUgZXhhbXBsZSB3ZSB1cGRhdGUgdGhlIGNoYXJ0IGV2ZXJ5IHRpbWUgaXQncyBjcmVhdGVkIHdpdGggYSBkZWxheSBvZiA4IHNlY29uZHNcbmNoYXJ0Lm9uKCdjcmVhdGVkJywgZnVuY3Rpb24gKCkge1xuICAgIGlmICh3aW5kb3cuX19hbmltMDk4NzQzMjU5ODcyMykge1xuICAgICAgICBjbGVhclRpbWVvdXQod2luZG93Ll9fYW5pbTA5ODc0MzI1OTg3MjMpO1xuICAgICAgICB3aW5kb3cuX19hbmltMDk4NzQzMjU5ODcyMyA9IG51bGw7XG4gICAgfVxuICAgIHdpbmRvdy5fX2FuaW0wOTg3NDMyNTk4NzIzID0gc2V0VGltZW91dChjaGFydC51cGRhdGUuYmluZChjaGFydCksIDgwMDApO1xufSk7XG5cbiJdLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvcGFnZXMvY2hhcnRpc3QuaW5pdC5qcy5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/pages/chartist.init.js\n");
/***/ })
/******/ });
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
/******/ var __webpack_exports__ = {};
/******/ __webpack_modules__["./resources/js/pages/chartist.init.js"]();
/******/
/******/ })()
;